From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A1336C48BC3 for ; Tue, 20 Feb 2024 08:47:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 53F6510E228; Tue, 20 Feb 2024 08:47:30 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="jZcvnZ/6"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by gabe.freedesktop.org (Postfix) with ESMTPS id 582F710E227 for ; Tue, 20 Feb 2024 08:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1708418849; x=1739954849; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=YuPp/Zb1eUcxzxsFuCPJ19xL1PPaqzJYiqK4WzqJmvc=; b=jZcvnZ/6FJhjNGG21i/ntxVvd3IyCHaYoIHp8xXUPx2QtGZNi9TwpPAX r0/alDoMg7twWDQo4bCMr2/DiAW8qEJkQtkqtUtVhuiRLw0U9l4GQHRWY 06h40mhBFNtlt0nVAo5ji0gmnHoVYxlI8FMDj/73nRuYaklONfRGUV0O2 k1ZM8yLC8OMspgs8n7LX8VqbJPIvXoeQvxFF0MwS+qmfxjwXeaOb5p0dB AmD7IM7sViG5D3ZBuqVlec0OMOJus3IQu2XBK57Ko78ap5AtjaTuegZ8z dygvYb9sOEuZjLhf+42R9Kq6ppxhXKLKszaZlb47di3rssOWIDl5FeRoZ A==; X-IronPort-AV: E=McAfee;i="6600,9927,10989"; a="2390191" X-IronPort-AV: E=Sophos;i="6.06,172,1705392000"; d="scan'208";a="2390191" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2024 00:47:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,172,1705392000"; d="scan'208";a="9340402" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Feb 2024 00:47:29 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 20 Feb 2024 00:47:28 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 20 Feb 2024 00:47:28 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 20 Feb 2024 00:47:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bseenvt7phLyXSGbsm1T4vEYTaoRlJVeu3cp3gc7RKG9tDFugg4yAxq1QAaLajyKvnP9WZR2Pr5tb2zGuxxv7ZjjZ/M3RqO4ov+Sal+HJNtvssIfDNlh9d2LAfuxvocy2g4VlToCfRLZ8Fsno7gPBA4ycO8Phck+liNh9Um9bu/Am5sfzF+//uGXOy4NmR9O5v90mMJbCzc+dWatR+kyJ9llKjvaDByPe9G+sWagWD8m68AcxEJ8cq37dQrhcjEuyqa/gyKequdcgRDM+4hW34UKYK6aUWgoBtYUqwp5tnMPXLBlFNzKKpm6TrE0+bwRsFaXLSe6V8HsItVk1nBpVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YuPp/Zb1eUcxzxsFuCPJ19xL1PPaqzJYiqK4WzqJmvc=; b=BbRVip/comRC8gBELnPPNFSugI69MoAgySQcZp39YwsCYe9JcmPp/TIV9PiHkbu/5bKdYdOdzcL3qjzLYk8i84svrnnpLiJ4SM8PqbRDgJxfHN/1FfjO9Qrk5RQDVWaTWEFnOaLUS3zzoEhSKbZcbQ0S2sfusmPJfVzPRpYmOqADys422P2ghFGtOisREcg63FUzo3bXa2iqpO7IAhK23b42yeVCVpbtwjE9cnF1vxXgoKtvpEkTYW0H30uQyTPxUJE4Nh09mCwGjLngK2PnOGZk4ZVzsdcFE6vNx5lQeUQCyVKU4PJb08C7qS4T8cOPyv5DAYaGV9FgoQslp5ev5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB6019.namprd11.prod.outlook.com (2603:10b6:8:60::5) by PH8PR11MB7023.namprd11.prod.outlook.com (2603:10b6:510:221::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Tue, 20 Feb 2024 08:47:25 +0000 Received: from DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::dde1:91ce:98c6:d737]) by DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::dde1:91ce:98c6:d737%7]) with mapi id 15.20.7292.036; Tue, 20 Feb 2024 08:47:25 +0000 From: "Hogander, Jouni" To: "Joshi, Kunal1" , "igt-dev@lists.freedesktop.org" CC: "Murthy, Arun R" , "Manna, Animesh" Subject: Re: [PATCH i-g-t 1/3] lib/igt_psr: modify library to support multiple PSR/PR outputs Thread-Topic: [PATCH i-g-t 1/3] lib/igt_psr: modify library to support multiple PSR/PR outputs Thread-Index: AQHaY1AUa3sFsHTEekm3qsQrnkTonrES7DgA Date: Tue, 20 Feb 2024 08:47:25 +0000 Message-ID: <55ca41b7a024bbc6e182b32d5ced4287a7beef85.camel@intel.com> References: <20240219163333.2339647-1-kunal1.joshi@intel.com> <20240219163333.2339647-2-kunal1.joshi@intel.com> In-Reply-To: <20240219163333.2339647-2-kunal1.joshi@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB6019:EE_|PH8PR11MB7023:EE_ x-ms-office365-filtering-correlation-id: 684235fd-443e-41ca-2501-08dc31f0900f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3GM4DbXNV6qLrFVjgydTRa5S4u0q7PtKY3/A31cHI+xFkJO+E9M86FjUZIxu2OtBzQ+MibHpYK2y0ZzEvaQYs+Irajlu39Qo/EVIhGw8AkeY4Za+uzXFM6Z5vqlGchkyNzDMH/v8/tPMGrYPppkBeDMBzfRJAG0426dRlv33XLSFLjvpGS36g6LeuvM5/mEhuB0/iHbZT5IfZmKQSynxeq7d3h7vHWXpO7K3IN8TN9dEidyZi00Xvtkgzt/mO6bNr9JxrxJXdlWFOs1DBgQOMldEOTzTBAbKTY6raanvtevstSywHLXojf3/fPawlsMjMO5kk+km7Ltg1CNIgyIPiSbfyRlDEeySh4OzjkdK4Wg58db+eNVyy4Ll3XHvsnpgzhinhx5sQq8+ymhtN0j3qhzKTux93NemBDclZw/C7T29wjlLkoyJ9lmkNXdSzZtqu9bVcF0hIGI1MRJ09UIcyLXVi3ZTd41L3VoLAMD5tlYs36cbAbob5XXt4ddpHxks6u82M7pFg6HeuVq16pSblgbewhjDxrJVispA0uedp2L9fz47uHNqEbXQcrz1NX0X1XiU0FQQ7HVtCr9ncAO7QYYInulQq8ZKAsMvCC3wfksaBWtgx0E8+btim3BTV+Ux x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6019.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U1lvMUh1QXA5T3ZSRUFDSnJIT210UUZ5Q3pFcHFrcU9aUU1oOXptak1CU3Jw?= =?utf-8?B?OWxKbG9XOTJJU3RWUm1DQlJGN3VIeWxIU0Z0UGFnV0EvM2ExZmQ0WkN5ODVy?= =?utf-8?B?MTNkTGxLV2YzcjNEeXhDeDA1VHpJZ1Nvb3dtUXBkb2szMmpXL1krZk1ja3U0?= =?utf-8?B?Y1MwUkR5bkg2L1hMdDdwb3JZN0ZCSWVBdEw0bC9zZEs3TXlERWMrOSsxWmY2?= =?utf-8?B?UTZCT3ladkhyRGU1RVZYd2RmSlFlc3NKaytZOXJCSVJWQlE4V0NOR0I2ZVdO?= =?utf-8?B?UTI5bkRXMUZEQ1BZVERQRnZBRVZHTnNEQW1aSWpOOGl6L3VramxIdkhxak5Q?= =?utf-8?B?UHRVWlFGQTBGWUFDUTl2U003Q3dqVFVVa3loeUJ3c1UvaU1vcGNDT0pZbjBq?= =?utf-8?B?dHNDOFd0VzZrK0J2TmVxd1Jva0M2c2VpVHZWeWEvVis5V0pyUDNzZ20vVWRj?= =?utf-8?B?Q214M0xEWitqR0lqaUtkenZ3MnZ1UXhvMVhGQWdDdUVIY2FWbzVJMFQ0SUJj?= =?utf-8?B?ZmtSd3FmaE40dUdXVWhrMnRoZnA5UUJtajNDSU41V0hvOGcrYjE5WTJqdVpr?= =?utf-8?B?WjZpMHN2byt4eVArY1gyeUZSeGx3MGhoczZRaE90ejllOTZoSmd0aUhDN0JU?= =?utf-8?B?MW9QbkRZRmplZ3JkWVZ3S3o0N1dCSHVlakFHeC8vU3ZJYzF4RnBKTm8zSXNw?= =?utf-8?B?VGpnSytCOHg0QzdlSktpZEZCNXVtMGtUeWhqZ3ZTME43TFpxeU5PdlBEWkZ3?= =?utf-8?B?cCtSMnVrQjNsblpMUjVxa2Z4U2xNWDBJQytPMnNsVzRDZ09vajZ4L2hBR3p1?= =?utf-8?B?eTdDNm8yRFRxK3ZmbHRlNDdGaVZOdzErMlpvdDhXTFczVWNWZGtoamhWOVZF?= =?utf-8?B?L3c0UVplMEdDdWpyNm02MTZjblFYeG90d01YbldtQmExem5UYWppYzlBNEhu?= =?utf-8?B?a3N6a2ZDU00rcUgyUHBub3hhNzVYUmdCTTR1L3hrZ24zS1B1cGpHZEpubEpE?= =?utf-8?B?L3pVRnZYcCs2cmI0Q29xcTJUbVMyaHdOWlVXZ3YxcE9mblU2ckw1S3hzbXpa?= =?utf-8?B?dmd0WktSY2dJajVjUHIySlFaTmxGdmhrcHhiTGo2ZWhxdWhyTG5xVThEQTZw?= =?utf-8?B?Nko4R0pqRDVXUFlTcDJWU0x3MVRwZ2tuVkxObkFmYmF1QURpa3Q0T3hQOG8v?= =?utf-8?B?aElDeEZsV2VxS1lqeVJiTU5PeWd4SWhtMklVSVgxaUpCV2tkYlg4OU1VNEEr?= =?utf-8?B?UjhvKzFWek5hRW5IWXo2VCtIaTB5cUx6QWlGRUhQQmhWOW1RQmxSU0VzTU9K?= =?utf-8?B?MENPbmVBZ1cvNWZUVDVqc1l5czVDcnVkajZ1UU1BWjVTQTE4akZXbEh1TVZy?= =?utf-8?B?MUtSdzkrM3FqMVhvWlN3OUdzN0Y3V1VlS0Z2Skd0Z3FsWFdtanZEakZmUkRW?= =?utf-8?B?ZURSQ3dqSVJ2SnJlb2Zlcjh2d3lqWm1WNEFIT3FDc1VPWGRZWHBTMWtwSVNO?= =?utf-8?B?WklaeFhCcTY4YW5nekVLWXlsWXFkMHcvYnpxMlducEh5MnpPNmFEMDR3eCtW?= =?utf-8?B?bXJWaGNzYVdPM2pySmZKRTQveDVXTzJCVGwvZVFINW43SWJNM2E4YlU1STZI?= =?utf-8?B?NEVRWTFITk5CVEdTMWYzR0Ntb2VrNm1nVnNIK21tYzNzRmYrZjlZRHpDdGhI?= =?utf-8?B?VUlKYUlRT1c5TVVkbFFsY20yUTJkdkpOQ0RZREZteGdsWWhwMEsva2NrVG91?= =?utf-8?B?dHlUZjRhV1lGdTZqSzdxNXZhZFptcE15MmtNR1Z3aEptbUt5ZWNDcGJFZnB3?= =?utf-8?B?VUozQm9mUEVGcGtMY1VjRkx0OTRlb0tnN28xRmdXalV3WkpEWmZuK3BrQmpt?= =?utf-8?B?VVd4djAwMHlrekZNcUUvK1BUUmFrUVJTOXI2NG9YdHllVzd4Y01QRTJ4dnNI?= =?utf-8?B?cTFRU3huTDk5NUFwRlJ1RndodDVLcldGZTYwbXVob1d3ZXBmYWsxam96Z1ZZ?= =?utf-8?B?QUJnODVIbXhnaE1pa0c4azdvc2h0cHlxdk92dURPR2JIR2h1dm9DZlF4Tkkw?= =?utf-8?B?MlRHT3BJTzdqZUs4RXc1SmU0bDlVYnA3YlF2dGd1S2dOZWozM0hiQ0RVR1lY?= =?utf-8?B?cVJqcThrcVp2NmNpNXBzK1BybmhCSTRhaXlSOWR2b01pZ0daVHNaQWJaaFEv?= =?utf-8?B?VFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <9C0CDABCD0AC1541B523FC6D95C02D5F@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6019.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 684235fd-443e-41ca-2501-08dc31f0900f X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2024 08:47:25.8288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: iPNX2f5Sx0jcPrzMX3KS7s1sJLT/C93h+KfVCpyubL21hDJ3n7XDE2Hd8GKVfIT2+o+VX1QTWirnIQtvBXb5twRLxHZR06qJ+oERmzdfNiY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB7023 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" T24gTW9uLCAyMDI0LTAyLTE5IGF0IDIyOjAzICswNTMwLCBLdW5hbCBKb3NoaSB3cm90ZToKPiBX ZSBjYW4gaGF2ZSBtdWx0aXBsZSBwYW5lbHMgY29ubmVjdGVkIHRvIHRoZSBzeXN0ZW0gc28gUFNS Cj4gaW5mb3JtYXRpb24KPiBzaG91bGQgYmUgZXhwb3NlZCBwZXIgb3V0cHV0LiBjaGFuZ2VzIHBy b3ZpZGUgc3VwcG9ydCBmb3IgbXVsdGlwbGUKPiBQU1IvUFIgdG8gYmUgdGVzdGVkIHNpbXVsdGFu ZW91c2x5Lgo+IAo+IHYyOiBVc2UgbWFjcm8gaW5zdGVhZCBvZiBmdW5jdGlvbiAoSm91bmkpCj4g djM6IGtlZXAgcHNyX2VuYWJsZSBpbiBpZ3RfZml4dHVyZSAoSm91bmkpCj4gCj4gQ2M6IEpvdW5p IEjDtmdhbmRlciA8am91bmkuaG9nYW5kZXJAaW50ZWwuY29tPgo+IENjOiBBbmltZXNoIE1hbm5h IDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4KPiBDYzogQXJ1biBSIE11cnRoeSA8YXJ1bi5yLm11 cnRoeUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogS3VuYWwgSm9zaGkgPGt1bmFsMS5qb3No aUBpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogSm91bmkgSMO2Z2FuZGVyIDxqb3VuaS5ob2dhbmRl ckBpbnRlbC5jb20+Cj4gLS0tCj4gwqBsaWIvaWd0X3Bzci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA3NiArKysrKysrKysrKysrKy0tLS0tLS0t LS0KPiAtLQo+IMKgbGliL2lndF9wc3IuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHwgMTQgKystLS0KPiDCoHRlc3RzL2ludGVsL2ttc19kaXJ0eWZi LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQo+IMKgdGVzdHMvaW50ZWwva21z X2ZiY29uX2ZidC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQo+IMKgdGVzdHMvaW50 ZWwva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgfMKgIDQgKy0KPiDCoHRlc3RzL2ludGVsL2tt c19wbV9kYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2ICstCj4gwqB0ZXN0 cy9pbnRlbC9rbXNfcHNyLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0 ICstCj4gwqB0ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDUgKy0KPiDCoHRlc3RzL2ludGVsL2ttc19wc3IyX3N1LmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgMiArLQo+IMKgdGVzdHMvaW50ZWwva21zX3Bzcl9zdHJlc3NfdGVzdC5j wqDCoMKgwqDCoCB8wqAgNCArLQo+IMKgdGVzdHMva21zX2FzeW5jX2ZsaXBzLmPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKy0KPiDCoHRlc3RzL2ttc19jdXJzb3JfbGVnYWN5 LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQo+IMKgMTIgZmlsZXMgY2hhbmdl ZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xp Yi9pZ3RfcHNyLmMgYi9saWIvaWd0X3Bzci5jCj4gaW5kZXggYWMyMTRmY2ZjLi5jYWQ4Y2NlMDUg MTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9wc3IuYwo+ICsrKyBiL2xpYi9pZ3RfcHNyLmMKPiBAQCAt MjcsNiArMjcsMTAgQEAKPiDCoCNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiDCoCNpbmNsdWRlIDxl cnJuby5oPgo+IMKgCj4gKyNkZWZpbmUgU0VUX0RFQlVHRlNfUEFUSChvdXRwdXQsIHBhdGgpIFwK PiArwqDCoMKgwqDCoMKgwqBzcHJpbnRmKHBhdGgsICIlcyVzJXMiLCBvdXRwdXQgPyBvdXRwdXQt Pm5hbWUgOiAiIiwgb3V0cHV0ID8KPiAiLyIgOiAiIiwgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb3V0cHV0ID8gImk5MTVfcHNyX3N0YXR1cyIgOgo+ ICJpOTE1X2VkcF9wc3Jfc3RhdHVzIikKPiArCj4gwqBib29sIHBzcl9kaXNhYmxlZF9jaGVjayhp bnQgZGVidWdmc19mZCkKPiDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgY2hhciBidWZbUFNSX1NUQVRV U19NQVhfTEVOXTsKPiBAQCAtMzcsMTEgKzQxLDEzIEBAIGJvb2wgcHNyX2Rpc2FibGVkX2NoZWNr KGludCBkZWJ1Z2ZzX2ZkKQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gc3Ryc3RyKGJ1ZiwgIlBT UiBtb2RlOiBkaXNhYmxlZFxuIik7Cj4gwqB9Cj4gwqAKPiAtYm9vbCBwc3IyX3NlbGVjdGl2ZV9m ZXRjaF9jaGVjayhpbnQgZGVidWdmc19mZCkKPiArYm9vbCBwc3IyX3NlbGVjdGl2ZV9mZXRjaF9j aGVjayhpbnQgZGVidWdmc19mZCwgaWd0X291dHB1dF90Cj4gKm91dHB1dCkKPiDCoHsKPiDCoMKg wqDCoMKgwqDCoMKgY2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVOXTsKPiArwqDCoMKgwqDCoMKg wqBjaGFyIGRlYnVnZnNfZmlsZVsxMjhdID0gezB9Owo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaWd0 X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGVidWdmc19mZCwgImk5MTVfZWRwX3Bzcl9zdGF0dXMiLAo+ IGJ1ZiwKPiArwqDCoMKgwqDCoMKgwqBTRVRfREVCVUdGU19QQVRIKG91dHB1dCwgZGVidWdmc19m aWxlKTsKPiArwqDCoMKgwqDCoMKgwqBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2Zk LCBkZWJ1Z2ZzX2ZpbGUsIGJ1ZiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc2l6ZW9mKGJ1ZikpOwo+IMKgCj4gwqDCoMKg wqDCoMKgwqDCoHJldHVybiBzdHJzdHIoYnVmLCAiUFNSMiBzZWxlY3RpdmUgZmV0Y2g6IGVuYWJs ZWQiKTsKPiBAQCAtNTQsMTEgKzYwLDcgQEAgc3RhdGljIGJvb2wgcHNyX2FjdGl2ZV9jaGVjayhp bnQgZGVidWdmc19mZCwgZW51bQo+IHBzcl9tb2RlIG1vZGUsIGlndF9vdXRwdXRfdCAqbwo+IMKg wqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpzdGF0ZSA9IChtb2RlID09IFBTUl9NT0RFXzEgfHwg bW9kZSA9PSBQUl9NT0RFKSA/Cj4gIlNSREVOVCIgOiAiREVFUF9TTEVFUCI7Cj4gwqDCoMKgwqDC oMKgwqDCoGludCByZXQ7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpZiAob3V0cHV0KQo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcHJpbnRmKGRlYnVnZnNfZmlsZSwgIiVzL2k5MTVf cHNyX3N0YXR1cyIsIG91dHB1dC0KPiA+bmFtZSk7Cj4gLcKgwqDCoMKgwqDCoMKgZWxzZQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcHJpbnRmKGRlYnVnZnNfZmlsZSwgIiVzIiwg Imk5MTVfZWRwX3Bzcl9zdGF0dXMiKTsKPiAtCj4gK8KgwqDCoMKgwqDCoMKgU0VUX0RFQlVHRlNf UEFUSChvdXRwdXQsIGRlYnVnZnNfZmlsZSk7Cj4gwqDCoMKgwqDCoMKgwqDCoHJldCA9IGlndF9k ZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRlYnVnZnNfZmQsIGRlYnVnZnNfZmlsZSwKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYnVmLCBzaXplb2YoYnVmKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmIChyZXQgPCAwKSB7 Cj4gQEAgLTkwLDEzICs5MiwxOCBAQCBib29sIHBzcl9sb25nX3dhaXRfdXBkYXRlKGludCBkZWJ1 Z2ZzX2ZkLCBlbnVtCj4gcHNyX21vZGUgbW9kZSwgaWd0X291dHB1dF90ICpvdXRwCj4gwqDCoMKg wqDCoMKgwqDCoHJldHVybiBpZ3Rfd2FpdCghcHNyX2FjdGl2ZV9jaGVjayhkZWJ1Z2ZzX2ZkLCBt b2RlLCBvdXRwdXQpLAo+IDUwMCwgMTApOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBzc2l6ZV90IHBz cl93cml0ZShpbnQgZGVidWdmc19mZCwgY29uc3QgY2hhciAqYnVmKQo+ICtzdGF0aWMgc3NpemVf dCBwc3Jfd3JpdGUoaW50IGRlYnVnZnNfZmQsIGNvbnN0IGNoYXIgKmJ1ZiwKPiBpZ3Rfb3V0cHV0 X3QgKm91dHB1dCkKPiDCoHsKPiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKgwqDCoMKgwqDCoCAq IEZJWE1FOiBDdXJyZW50bHkgd2UgZG9uJ3QgaGF2ZSBzZXBhcmF0ZSBwc3JfZGVidWcgZmlsZSBm b3IKPiBlYWNoIG91dHB1dC4KPiArwqDCoMKgwqDCoMKgwqAgKiBzbywgd2UgYXJlIHVzaW5nIGk5 MTVfZWRwX3Bzcl9kZWJ1ZyBmaWxlIGZvciBhbGwgb3V0cHV0cy4KPiArwqDCoMKgwqDCoMKgwqAg KiBMYXRlciB3ZSBuZWVkIHRvIGFkZCBzdXBwb3J0IGZvciBzZXBhcmF0ZSBwc3JfZGVidWcgZmls ZQo+IGZvciBlYWNoIG91dHB1dC4KPiArwqDCoMKgwqDCoMKgwqAgKi8KPiDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIGlndF9zeXNmc193cml0ZShkZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNyX2RlYnVn IiwgYnVmLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cmxlbihidWYpKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RybGVuKGJ1ZikpOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbnQgaGFz X3Bzcl9kZWJ1Z2ZzKGludCBkZWJ1Z2ZzX2ZkKQo+ICtzdGF0aWMgaW50IGhhc19wc3JfZGVidWdm cyhpbnQgZGVidWdmc19mZCwgaWd0X291dHB1dF90ICpvdXRwdXQpCj4gwqB7Cj4gwqDCoMKgwqDC oMKgwqDCoGludCByZXQ7Cj4gwqAKPiBAQCAtMTA1LDcgKzExMiw3IEBAIHN0YXRpYyBpbnQgaGFz X3Bzcl9kZWJ1Z2ZzKGludCBkZWJ1Z2ZzX2ZkKQo+IMKgwqDCoMKgwqDCoMKgwqAgKiBMZWdhY3kg bW9kZSB3aWxsIHJldHVybiBPSyBoZXJlLCBkZWJ1Z2ZzIGFwaSB3aWxsIHJldHVybiAtCj4gRUlO VkFMLgo+IMKgwqDCoMKgwqDCoMKgwqAgKiAtRU5PREVWIGlzIHJldHVybmVkIHdoZW4gUFNSIGlz IHVuYXZhaWxhYmxlLgo+IMKgwqDCoMKgwqDCoMKgwqAgKi8KPiAtwqDCoMKgwqDCoMKgwqByZXQg PSBwc3Jfd3JpdGUoZGVidWdmc19mZCwgIjB4ZiIpOwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IHBz cl93cml0ZShkZWJ1Z2ZzX2ZkLCAiMHhmIiwgb3V0cHV0KTsKPiDCoMKgwqDCoMKgwqDCoMKgaWYg KHJldCA9PSAtRUlOVkFMKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlcnJu byA9IDA7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiBAQCAt MTEzLDcgKzEyMCw3IEBAIHN0YXRpYyBpbnQgaGFzX3Bzcl9kZWJ1Z2ZzKGludCBkZWJ1Z2ZzX2Zk KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiDCoAo+IMKg wqDCoMKgwqDCoMKgwqAvKiBsZWdhY3kgZGVidWdmcyBhcGksIHdlIGVuYWJsZWQgaXJxcyBieSB3 cml0aW5nLCBkaXNhYmxlCj4gdGhlbS4gKi8KPiAtwqDCoMKgwqDCoMKgwqBwc3Jfd3JpdGUoZGVi dWdmc19mZCwgIjAiKTsKPiArwqDCoMKgwqDCoMKgwqBwc3Jfd3JpdGUoZGVidWdmc19mZCwgIjAi LCBvdXRwdXQpOwo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVJTlZBTDsKPiDCoH0KPiDCoAo+ IEBAIC0xMzQsMTQgKzE0MSwxNCBAQCBzdGF0aWMgaW50IHBzcl9yZXN0b3JlX2RlYnVnZnNfZmQg PSAtMTsKPiDCoAo+IMKgc3RhdGljIHZvaWQgcmVzdG9yZV9wc3JfZGVidWdmcyhpbnQgc2lnKQo+ IMKgewo+IC3CoMKgwqDCoMKgwqDCoHBzcl93cml0ZShwc3JfcmVzdG9yZV9kZWJ1Z2ZzX2ZkLCAi MCIpOwo+ICvCoMKgwqDCoMKgwqDCoHBzcl93cml0ZShwc3JfcmVzdG9yZV9kZWJ1Z2ZzX2ZkLCAi MCIsIE5VTEwpOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBib29sIHBzcl9zZXQoaW50IGRldmljZSwg aW50IGRlYnVnZnNfZmQsIGludCBtb2RlKQo+ICtzdGF0aWMgYm9vbCBwc3Jfc2V0KGludCBkZXZp Y2UsIGludCBkZWJ1Z2ZzX2ZkLCBpbnQgbW9kZSwKPiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiDC oHsKPiDCoMKgwqDCoMKgwqDCoMKgaW50IHJldDsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoHJldCA9 IGhhc19wc3JfZGVidWdmcyhkZWJ1Z2ZzX2ZkKTsKPiArwqDCoMKgwqDCoMKgwqByZXQgPSBoYXNf cHNyX2RlYnVnZnMoZGVidWdmc19mZCwgb3V0cHV0KTsKPiDCoMKgwqDCoMKgwqDCoMKgaWYgKHJl dCA9PSAtRU5PREVWKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc2tp cCgiUFNSIG5vdCBhdmFpbGFibGVcbiIpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIGZhbHNlOwo+IEBAIC0xNzksNyArMTg2LDcgQEAgc3RhdGljIGJvb2wgcHNyX3Nl dChpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCwKPiBpbnQgbW9kZSkKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZWJ1Z192YWwgPSAiMHgxIjsKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXQgPSBwc3Jfd3JpdGUoZGVidWdmc19mZCwgZGVidWdfdmFsKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gcHNyX3dyaXRlKGRlYnVnZnNfZmQs IGRlYnVnX3ZhbCwgb3V0cHV0KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGln dF9yZXF1aXJlX2YocmV0ID4gMCwgIlBTUjIgU0YgZmVhdHVyZSBub3QKPiBhdmFpbGFibGVcbiIp Owo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiBAQCAtMTkzLDE1ICsyMDAsMTUgQEAgc3RhdGlj IGJvb2wgcHNyX3NldChpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCwKPiBpbnQgbW9kZSkKPiDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IC1ib29sIHBzcl9lbmFibGUo aW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUgbW9kZSkKPiArYm9vbCBw c3JfZW5hYmxlKGludCBkZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlIG1vZGUs Cj4gaWd0X291dHB1dF90ICpvdXRwdXQpCj4gwqB7Cj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIHBz cl9zZXQoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCBtb2RlKTsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4g cHNyX3NldChkZXZpY2UsIGRlYnVnZnNfZmQsIG1vZGUsIG91dHB1dCk7Cj4gwqB9Cj4gwqAKPiAt Ym9vbCBwc3JfZGlzYWJsZShpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCkKPiArYm9vbCBwc3Jf ZGlzYWJsZShpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCwgaWd0X291dHB1dF90ICpvdXRwdXQp Cj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoC8qIEFueSBtb2RlIGRpZmZlcmVudCB0aGFuIFBTUl9N T0RFXzEvMiB3aWxsIGRpc2FibGUgUFNSICovCj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuIHBzcl9z ZXQoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCAtMSk7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHBzcl9z ZXQoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCAtMSwgb3V0cHV0KTsKPiDCoH0KPiDCoAo+IMKgYm9vbCBw c3Jfc2lua19zdXBwb3J0KGludCBkZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2Rl Cj4gbW9kZSwgaWd0X291dHB1dF90ICpvdXRwdXQpCj4gQEAgLTIxMSwxMSArMjE4LDcgQEAgYm9v bCBwc3Jfc2lua19zdXBwb3J0KGludCBkZXZpY2UsIGludAo+IGRlYnVnZnNfZmQsIGVudW0gcHNy X21vZGUgbW9kZSwgaWd0X291dHB1dAo+IMKgwqDCoMKgwqDCoMKgwqBjaGFyIGJ1ZltQU1JfU1RB VFVTX01BWF9MRU5dOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgcmV0Owo+IMKgCj4gLcKgwqDCoMKg wqDCoMKgaWYgKG91dHB1dCkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ByaW50 ZihkZWJ1Z2ZzX2ZpbGUsICIlcy9pOTE1X3Bzcl9zdGF0dXMiLCBvdXRwdXQtCj4gPm5hbWUpOwo+ IC3CoMKgwqDCoMKgwqDCoGVsc2UKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3By aW50ZihkZWJ1Z2ZzX2ZpbGUsICIlcyIsICJpOTE1X2VkcF9wc3Jfc3RhdHVzIik7Cj4gLQo+ICvC oMKgwqDCoMKgwqDCoFNFVF9ERUJVR0ZTX1BBVEgob3V0cHV0LCBkZWJ1Z2ZzX2ZpbGUpOwo+IMKg wqDCoMKgwqDCoMKgwqByZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2ZkLCBk ZWJ1Z2ZzX2ZpbGUsIGJ1ZiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplb2YoYnVmKSk7Cj4gwqDC oMKgwqDCoMKgwqDCoGlmIChyZXQgPCAxKQo+IEBAIC0zMDUsNyArMzA4LDcgQEAgdm9pZCBwc3Jf cHJpbnRfZGVidWdmcyhpbnQgZGVidWdmc19mZCkKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X2luZm8o IiVzIiwgYnVmKTsKPiDCoH0KPiDCoAo+IC1ib29sIGk5MTVfcHNyMl9zZWxlY3RpdmVfZmV0Y2hf Y2hlY2soaW50IGRybV9mZCkKPiArYm9vbCBpOTE1X3BzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNr KGludCBkcm1fZmQsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQpCj4gwqB7Cj4gwqDCoMKgwqDCoMKg wqDCoGludCBkZWJ1Z2ZzX2ZkOwo+IMKgwqDCoMKgwqDCoMKgwqBib29sIHJldDsKPiBAQCAtMzE0 LDcgKzMxNyw3IEBAIGJvb2wgaTkxNV9wc3IyX3NlbGVjdGl2ZV9mZXRjaF9jaGVjayhpbnQgZHJt X2ZkKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoGRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZHJtX2ZkKTsK PiAtwqDCoMKgwqDCoMKgwqByZXQgPSBwc3IyX3NlbGVjdGl2ZV9mZXRjaF9jaGVjayhkZWJ1Z2Zz X2ZkKTsKPiArwqDCoMKgwqDCoMKgwqByZXQgPSBwc3IyX3NlbGVjdGl2ZV9mZXRjaF9jaGVjayhk ZWJ1Z2ZzX2ZkLCBvdXRwdXQpOwo+IMKgwqDCoMKgwqDCoMKgwqBjbG9zZShkZWJ1Z2ZzX2ZkKTsK PiDCoAo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Owo+IEBAIC0zMzEsNyArMzM0LDcgQEAg Ym9vbCBpOTE1X3BzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNrKGludCBkcm1fZmQpCj4gwqAgKiBS ZXR1cm5zOgo+IMKgICogVHJ1ZSBpZiBQU1IgbW9kZSBjaGFuZ2VkIHRvIFBTUjEsIGZhbHNlIG90 aGVyd2lzZS4KPiDCoCAqLwo+IC1ib29sIGk5MTVfcHNyMl9zZWxfZmV0Y2hfdG9fcHNyMShpbnQg ZHJtX2ZkKQo+ICtib29sIGk5MTVfcHNyMl9zZWxfZmV0Y2hfdG9fcHNyMShpbnQgZHJtX2ZkLCBp Z3Rfb3V0cHV0X3QgKm91dHB1dCkKPiDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgaW50IGRlYnVnZnNf ZmQ7Cj4gwqDCoMKgwqDCoMKgwqDCoGJvb2wgcmV0ID0gZmFsc2U7Cj4gQEAgLTM0MCw4ICszNDMs OCBAQCBib29sIGk5MTVfcHNyMl9zZWxfZmV0Y2hfdG9fcHNyMShpbnQgZHJtX2ZkKQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiDCoAo+IMKgwqDCoMKgwqDC oMKgwqBkZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRybV9mZCk7Cj4gLcKgwqDCoMKgwqDC oMKgaWYgKHBzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNrKGRlYnVnZnNfZmQpKSB7Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBzcl9zZXQoZHJtX2ZkLCBkZWJ1Z2ZzX2ZkLCBQU1Jf TU9ERV8xKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAocHNyMl9zZWxlY3RpdmVfZmV0Y2hfY2hlY2so ZGVidWdmc19mZCwgb3V0cHV0KSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBw c3Jfc2V0KGRybV9mZCwgZGVidWdmc19mZCwgUFNSX01PREVfMSwgb3V0cHV0KTsKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IHRydWU7Cj4gwqDCoMKgwqDCoMKgwqDCoH0K PiDCoAo+IEBAIC0zNTUsMTIgKzM1OCwxMiBAQCBib29sIGk5MTVfcHNyMl9zZWxfZmV0Y2hfdG9f cHNyMShpbnQgZHJtX2ZkKQo+IMKgICogUmVzdG9yZSBQU1IyIHNlbGVjdGl2ZSBmZXRjaCBhZnRl ciB0ZXN0cyB3ZXJlIGV4ZWN1dGVkLCB0aGlzCj4gZnVuY3Rpb24gc2hvdWxkCj4gwqAgKiBvbmx5 IGJlIGNhbGxlZCBpZiBpOTE1X3BzcjJfc2VsX2ZldGNoX3RvX3BzcjEoKSByZXR1cm5lZCB0cnVl Lgo+IMKgICovCj4gLXZvaWQgaTkxNV9wc3IyX3NlbF9mZXRjaF9yZXN0b3JlKGludCBkcm1fZmQp Cj4gK3ZvaWQgaTkxNV9wc3IyX3NlbF9mZXRjaF9yZXN0b3JlKGludCBkcm1fZmQsIGlndF9vdXRw dXRfdCAqb3V0cHV0KQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBpbnQgZGVidWdmc19mZDsKPiDC oAo+IMKgwqDCoMKgwqDCoMKgwqBkZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRybV9mZCk7 Cj4gLcKgwqDCoMKgwqDCoMKgcHNyX3NldChkcm1fZmQsIGRlYnVnZnNfZmQsIFBTUl9NT0RFXzJf U0VMX0ZFVENIKTsKPiArwqDCoMKgwqDCoMKgwqBwc3Jfc2V0KGRybV9mZCwgZGVidWdmc19mZCwg UFNSX01PREVfMl9TRUxfRkVUQ0gsIG91dHB1dCk7Cj4gwqDCoMKgwqDCoMKgwqDCoGNsb3NlKGRl YnVnZnNfZmQpOwo+IMKgfQo+IMKgCj4gQEAgLTM2OSwxNiArMzcyLDE3IEBAIHZvaWQgaTkxNV9w c3IyX3NlbF9mZXRjaF9yZXN0b3JlKGludCBkcm1fZmQpCj4gwqAgKgo+IMKgICogUmV0dXJuIHRo ZSBjdXJyZW50IFBTUiBtb2RlLgo+IMKgICovCj4gLWVudW0gcHNyX21vZGUgcHNyX2dldF9tb2Rl KGludCBkZWJ1Z2ZzX2ZkKQo+ICtlbnVtIHBzcl9tb2RlIHBzcl9nZXRfbW9kZShpbnQgZGVidWdm c19mZCwgaWd0X291dHB1dF90ICpvdXRwdXQpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGNoYXIg YnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07Cj4gK8KgwqDCoMKgwqDCoMKgY2hhciBkZWJ1Z2ZzX2Zp bGVbMTI4XSA9IHswfTsKPiDCoMKgwqDCoMKgwqDCoMKgaW50IHJldDsKPiDCoAo+IC0KPiAtwqDC oMKgwqDCoMKgwqByZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2ZkLAo+ICJp OTE1X2VkcF9wc3Jfc3RhdHVzIiwgYnVmLAo+ICvCoMKgwqDCoMKgwqDCoFNFVF9ERUJVR0ZTX1BB VEgob3V0cHV0LCBkZWJ1Z2ZzX2ZpbGUpOwo+ICvCoMKgwqDCoMKgwqDCoHJldCA9IGlndF9kZWJ1 Z2ZzX3NpbXBsZV9yZWFkKGRlYnVnZnNfZmQsIGRlYnVnZnNfZmlsZSwgYnVmLAo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHNpemVvZihidWYpKTsKPiDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCA8IDApIHsK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2luZm8oIkNvdWxkIG5vdCByZWFk IGk5MTVfZWRwX3Bzcl9zdGF0dXM6ICVzXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfaW5mbygiQ291bGQgbm90IHJlYWQgcHNyIHN0YXR1czogJXNcbiIsCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cmVycm9yKC1yZXQp KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBQU1JfRElTQUJMRUQ7 Cj4gwqDCoMKgwqDCoMKgwqDCoH0KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9wc3IuaCBiL2xpYi9p Z3RfcHNyLmgKPiBpbmRleCA4MmE0ZThjNWUuLjM3MmJlZjJiMiAxMDA2NDQKPiAtLS0gYS9saWIv aWd0X3Bzci5oCj4gKysrIGIvbGliL2lndF9wc3IuaAo+IEBAIC00NiwyMSArNDYsMjEgQEAgZW51 bSBmYmNfbW9kZSB7Cj4gwqB9Owo+IMKgCj4gwqBib29sIHBzcl9kaXNhYmxlZF9jaGVjayhpbnQg ZGVidWdmc19mZCk7Cj4gLWJvb2wgcHNyMl9zZWxlY3RpdmVfZmV0Y2hfY2hlY2soaW50IGRlYnVn ZnNfZmQpOwo+ICtib29sIHBzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNrKGludCBkZWJ1Z2ZzX2Zk LCBpZ3Rfb3V0cHV0X3QKPiAqb3V0cHV0KTsKPiDCoGJvb2wgcHNyX3dhaXRfZW50cnkoaW50IGRl YnVnZnNfZmQsIGVudW0gcHNyX21vZGUgbW9kZSwgaWd0X291dHB1dF90Cj4gKm91dHB1dCk7Cj4g wqBib29sIHBzcl93YWl0X3VwZGF0ZShpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSBtb2Rl LAo+IGlndF9vdXRwdXRfdCAqb3V0cHV0KTsKPiDCoGJvb2wgcHNyX2xvbmdfd2FpdF91cGRhdGUo aW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUgbW9kZSwKPiBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCk7Cj4gLWJvb2wgcHNyX2VuYWJsZShpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCwgZW51bSBw c3JfbW9kZSk7Cj4gLWJvb2wgcHNyX2Rpc2FibGUoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQp Owo+ICtib29sIHBzcl9lbmFibGUoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQsIGVudW0gcHNy X21vZGUsCj4gaWd0X291dHB1dF90ICpvdXRwdXQpOwo+ICtib29sIHBzcl9kaXNhYmxlKGludCBk ZXZpY2UsIGludCBkZWJ1Z2ZzX2ZkLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCk7Cj4gwqBib29sIHBz cl9zaW5rX3N1cHBvcnQoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUK PiBtb2RlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCk7Cj4gwqBib29sIHBzcjJfd2FpdF9zdShpbnQg ZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpOwo+IMKgdm9pZCBwc3JfcHJpbnRf ZGVidWdmcyhpbnQgZGVidWdmc19mZCk7Cj4gLWVudW0gcHNyX21vZGUgcHNyX2dldF9tb2RlKGlu dCBkZWJ1Z2ZzX2ZkKTsKPiArZW51bSBwc3JfbW9kZSBwc3JfZ2V0X21vZGUoaW50IGRlYnVnZnNf ZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0KTsKPiDCoAo+IC1ib29sIGk5MTVfcHNyMl9zZWxlY3Rp dmVfZmV0Y2hfY2hlY2soaW50IGRybV9mZCk7Cj4gK2Jvb2wgaTkxNV9wc3IyX3NlbGVjdGl2ZV9m ZXRjaF9jaGVjayhpbnQgZHJtX2ZkLCBpZ3Rfb3V0cHV0X3QKPiAqb3V0cHV0KTsKPiDCoAo+IC1i b29sIGk5MTVfcHNyMl9zZWxfZmV0Y2hfdG9fcHNyMShpbnQgZHJtX2ZkKTsKPiAtdm9pZCBpOTE1 X3BzcjJfc2VsX2ZldGNoX3Jlc3RvcmUoaW50IGRybV9mZCk7Cj4gK2Jvb2wgaTkxNV9wc3IyX3Nl bF9mZXRjaF90b19wc3IxKGludCBkcm1fZmQsIGlndF9vdXRwdXRfdCAqb3V0cHV0KTsKPiArdm9p ZCBpOTE1X3BzcjJfc2VsX2ZldGNoX3Jlc3RvcmUoaW50IGRybV9mZCwgaWd0X291dHB1dF90ICpv dXRwdXQpOwo+IMKgYm9vbCBpc19wc3JfZW5hYmxlX3Bvc3NpYmxlKGludCBkcm1fZmQsIGVudW0g cHNyX21vZGUgbW9kZSk7Cj4gwqAKPiDCoCNlbmRpZgo+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRl bC9rbXNfZGlydHlmYi5jIGIvdGVzdHMvaW50ZWwva21zX2RpcnR5ZmIuYwo+IGluZGV4IDI2Yjgy ZTUwYS4uYzI0MTFjODI0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ludGVsL2ttc19kaXJ0eWZiLmMK PiArKysgYi90ZXN0cy9pbnRlbC9rbXNfZGlydHlmYi5jCj4gQEAgLTEyNyw3ICsxMjcsNyBAQCBz dGF0aWMgdm9pZCBlbmFibGVfZmVhdHVyZShkYXRhX3QgKmRhdGEpCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9mYmNfZW5hYmxlKGRhdGEtPmRybV9mZCk7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgY2FzZSBG RUFUVVJFX1BTUjoKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHNyX2VuYWJsZShk YXRhLT5kcm1fZmQsIGRhdGEtPmRlYnVnZnNfZmQsCj4gUFNSX01PREVfMSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBzcl9lbmFibGUoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kZWJ1 Z2ZzX2ZkLAo+IFBTUl9NT0RFXzEsIE5VTEwpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgYnJlYWs7Cj4gwqDCoMKgwqDCoMKgwqDCoGNhc2UgRkVBVFVSRV9EUlJTOgo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZHJyc19lbmFibGUoZGF0YS0+ZHJtX2Zk LCBkYXRhLT5waXBlKTsKPiBAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2Zl YXR1cmUoZGF0YV90ICpkYXRhKQo+IMKgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0dXJlcyhkYXRh X3QgKmRhdGEpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGludGVsX2ZiY19kaXNhYmxlKGRhdGEt PmRybV9mZCk7Cj4gLcKgwqDCoMKgwqDCoMKgcHNyX2Rpc2FibGUoZGF0YS0+ZHJtX2ZkLCBkYXRh LT5kZWJ1Z2ZzX2ZkKTsKPiArwqDCoMKgwqDCoMKgwqBwc3JfZGlzYWJsZShkYXRhLT5kcm1fZmQs IGRhdGEtPmRlYnVnZnNfZmQsIE5VTEwpOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9kcnJzX2Rp c2FibGUoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5waXBlKTsKPiDCoH0KPiDCoAo+IGRpZmYgLS1naXQg YS90ZXN0cy9pbnRlbC9rbXNfZmJjb25fZmJ0LmMKPiBiL3Rlc3RzL2ludGVsL2ttc19mYmNvbl9m YnQuYwo+IGluZGV4IDkwNDg0ZGNjZi4uNzFlNDJmMTljIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2lu dGVsL2ttc19mYmNvbl9mYnQuYwo+ICsrKyBiL3Rlc3RzL2ludGVsL2ttc19mYmNvbl9mYnQuYwo+ IEBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0dXJlcyhpbnQgZGV2 aWNlLCBpbnQKPiBkZWJ1Z2ZzX2ZkKQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc2V0X21v ZHVsZV9wYXJhbV9pbnQoZGV2aWNlLCAiZW5hYmxlX2ZiYyIsIDApOwo+IMKgwqDCoMKgwqDCoMKg wqBpZiAocHNyX3Npbmtfc3VwcG9ydChkZXZpY2UsIGRlYnVnZnNfZmQsIFBTUl9NT0RFXzEsIE5V TEwpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwc3JfZGlzYWJsZShkZXZpY2Us IGRlYnVnZnNfZmQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwc3JfZGlzYWJs ZShkZXZpY2UsIGRlYnVnZnNfZmQsIE5VTEwpOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW5saW5l IHZvaWQgZmJjX21vZHBhcmFtX2VuYWJsZShpbnQgZGV2aWNlLCBpbnQgZGVidWdmc19mZCkKPiBA QCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmYmNfbW9kcGFyYW1fZW5hYmxl KGludAo+IGRldmljZSwgaW50IGRlYnVnZnNfZmQpCj4gwqAKPiDCoHN0YXRpYyBpbmxpbmUgdm9p ZCBwc3JfZGVidWdmc19lbmFibGUoaW50IGRldmljZSwgaW50IGRlYnVnZnNfZmQpCj4gwqB7Cj4g LcKgwqDCoMKgwqDCoMKgcHNyX2VuYWJsZShkZXZpY2UsIGRlYnVnZnNfZmQsIFBTUl9NT0RFXzEp Owo+ICvCoMKgwqDCoMKgwqDCoHBzcl9lbmFibGUoZGV2aWNlLCBkZWJ1Z2ZzX2ZkLCBQU1JfTU9E RV8xLCBOVUxMKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgZmJjX3NraXBzX29uX2ZiY29u KGludCBkZWJ1Z2ZzX2ZkKQo+IGRpZmYgLS1naXQgYS90ZXN0cy9pbnRlbC9rbXNfZnJvbnRidWZm ZXJfdHJhY2tpbmcuYwo+IGIvdGVzdHMvaW50ZWwva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMK PiBpbmRleCA5MTJjY2EzZjguLjAyMzg0MzE2MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ICsrKyBiL3Rlc3RzL2ludGVsL2ttc19mcm9udGJ1 ZmZlcl90cmFja2luZy5jCj4gQEAgLTIyMzQsNyArMjIzNCw3IEBAIHN0YXRpYyBib29sIGRpc2Fi bGVfZmVhdHVyZXMoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0KQo+IMKgwqDCoMKgwqDCoMKg wqBpbnRlbF9mYmNfZGlzYWJsZShkcm0uZmQpOwo+IMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9kcnJz X2Rpc2FibGUoZHJtLmZkLCBwcmltX21vZGVfcGFyYW1zLnBpcGUpOwo+IMKgCj4gLcKgwqDCoMKg wqDCoMKgcmV0dXJuIHBzci5jYW5fdGVzdCA/IHBzcl9kaXNhYmxlKGRybS5mZCwgZHJtLmRlYnVn ZnMpIDoKPiBmYWxzZTsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcHNyLmNhbl90ZXN0ID8gcHNy X2Rpc2FibGUoZHJtLmZkLCBkcm0uZGVidWdmcywgTlVMTCkKPiA6IGZhbHNlOwo+IMKgfQo+IMKg Cj4gwqBzdGF0aWMgdm9pZCAqYnVzeV90aHJlYWRfZnVuYyh2b2lkICpkYXRhKQo+IEBAIC0yODY3 LDcgKzI4NjcsNyBAQCBzdGF0aWMgYm9vbCBlbmFibGVfZmVhdHVyZXNfZm9yX3Rlc3QoY29uc3QK PiBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAodC0+ZmVhdHVyZSAm IEZFQVRVUkVfRkJDKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZmJj X2VuYWJsZShkcm0uZmQpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAodC0+ZmVhdHVyZSAmIEZFQVRV UkVfUFNSKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBwc3JfZW5hYmxl KGRybS5mZCwgZHJtLmRlYnVnZnMsIFBTUl9NT0RFXzEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByZXQgPSBwc3JfZW5hYmxlKGRybS5mZCwgZHJtLmRlYnVnZnMsIFBTUl9NT0RF XzEsCj4gTlVMTCk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmICh0LT5mZWF0dXJlICYgRkVBVFVSRV9E UlJTKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50ZWxfZHJyc19lbmFibGUo ZHJtLmZkLCBwcmltX21vZGVfcGFyYW1zLnBpcGUpOwo+IMKgCj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ludGVsL2ttc19wbV9kYy5jIGIvdGVzdHMvaW50ZWwva21zX3BtX2RjLmMKPiBpbmRleCAwZDU4 MjRlNjcuLjdkZWViZjgzZCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNfcG1fZGMuYwo+ ICsrKyBiL3Rlc3RzL2ludGVsL2ttc19wbV9kYy5jCj4gQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0 aWMgdm9pZCByZXF1aXJlX2RjX2NvdW50ZXIoaW50IGRlYnVnZnNfZmQsCj4gaW50IGRjX2ZsYWcp Cj4gwqBzdGF0aWMgdm9pZCBzZXR1cF9kYzNjbyhkYXRhX3QgKmRhdGEpCj4gwqB7Cj4gwqDCoMKg wqDCoMKgwqDCoGRhdGEtPm9wX3Bzcl9tb2RlID0gUFNSX01PREVfMjsKPiAtwqDCoMKgwqDCoMKg wqBwc3JfZW5hYmxlKGRhdGEtPmRybV9mZCwgZGF0YS0+ZGVidWdmc19mZCwgZGF0YS0KPiA+b3Bf cHNyX21vZGUpOwo+ICvCoMKgwqDCoMKgwqDCoHBzcl9lbmFibGUoZGF0YS0+ZHJtX2ZkLCBkYXRh LT5kZWJ1Z2ZzX2ZkLCBkYXRhLT5vcF9wc3JfbW9kZSwKPiBOVUxMKTsKPiDCoMKgwqDCoMKgwqDC oMKgaWd0X3JlcXVpcmVfZihwc3Jfd2FpdF9lbnRyeShkYXRhLT5kZWJ1Z2ZzX2ZkLCBkYXRhLQo+ ID5vcF9wc3JfbW9kZSwgTlVMTCksCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJQU1IyIGlzIG5vdCBlbmFibGVkXG4iKTsKPiDCoH0KPiBAQCAtNjY1LDcgKzY2 NSw3IEBAIGlndF9tYWluCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVx dWlyZShwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+IGRhdGEuZGVidWdmc19mZCwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzEsIE5VTEwpKTsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3BfcHNyX21vZGUgPSBQU1JfTU9ERV8x Owo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwc3JfZW5hYmxlKGRhdGEuZHJtX2Zk LCBkYXRhLmRlYnVnZnNfZmQsCj4gZGF0YS5vcF9wc3JfbW9kZSk7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHBzcl9lbmFibGUoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdmc19mZCwK PiBkYXRhLm9wX3Bzcl9tb2RlLCBOVUxMKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHRlc3RfZGNfc3RhdGVfcHNyKCZkYXRhLCBDSEVDS19EQzUpOwo+IMKgwqDCoMKgwqDCoMKg wqB9Cj4gwqAKPiBAQCAtNjc1LDcgKzY3NSw3IEBAIGlndF9tYWluCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZShwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2Zk LAo+IGRhdGEuZGVidWdmc19mZCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBT Ul9NT0RFXzEsIE5VTEwpKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEu b3BfcHNyX21vZGUgPSBQU1JfTU9ERV8xOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBwc3JfZW5hYmxlKGRhdGEuZHJtX2ZkLCBkYXRhLmRlYnVnZnNfZmQsCj4gZGF0YS5vcF9wc3Jf bW9kZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBzcl9lbmFibGUoZGF0YS5k cm1fZmQsIGRhdGEuZGVidWdmc19mZCwKPiBkYXRhLm9wX3Bzcl9tb2RlLCBOVUxMKTsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlX2YoaWd0X3BtX3BjOF9wbHVz X3Jlc2lkZW5jaWVzX2VuYWJsZWQoZGF0Cj4gYS5tc3JfZmQpLAo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlBDOCsgcmVzaWRlbmNp ZXMgbm90IHN1cHBvcnRlZFxuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp ZiAoaW50ZWxfZGlzcGxheV92ZXIoZGF0YS5kZXZpZCkgPj0gMTQpCj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2ludGVsL2ttc19wc3IuYyBiL3Rlc3RzL2ludGVsL2ttc19wc3IuYwo+IGluZGV4IDUyMWQ0 YzcwOC4uMzgyMmIzMDgxIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2ludGVsL2ttc19wc3IuYwo+ICsr KyBiL3Rlc3RzL2ludGVsL2ttc19wc3IuYwo+IEBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIGJv b2wgcHNyX2VuYWJsZV9pZl9lbmFibGVkKGRhdGFfdCAqZGF0YSkKPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGlndF9za2lwKCJlbmFibGVfcHNyIG1vZHBhcmFtIGRvZXNuJ3QgYWxs b3cgcHNyIG1vZGUKPiAlZFxuIiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZGF0YS0+b3BfcHNyX21vZGUpOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKg cmV0dXJuIHBzcl9lbmFibGUoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kZWJ1Z2ZzX2ZkLCBkYXRhLQo+ ID5vcF9wc3JfbW9kZSk7Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHBzcl9lbmFibGUoZGF0YS0+ ZHJtX2ZkLCBkYXRhLT5kZWJ1Z2ZzX2ZkLCBkYXRhLQo+ID5vcF9wc3JfbW9kZSwgZGF0YS0+b3V0 cHV0KTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGlubGluZSB2b2lkIG1hbnVhbChjb25zdCBjaGFy ICpleHBlY3RlZCkKPiBAQCAtNjU4LDYgKzY1OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfY2xlYW51 cChkYXRhX3QgKmRhdGEpCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X3JlbW92ZV9mYihkYXRh LT5kcm1fZmQsICZkYXRhLT5mYl9ncmVlbik7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9yZW1vdmVf ZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfd2hpdGUpOwo+ICvCoMKgwqDCoMKgwqDCoHBzcl9k aXNhYmxlKGRhdGEtPmRybV9mZCwgZGF0YS0+ZGVidWdmc19mZCwgZGF0YS0+b3V0cHV0KTsKPiDC oH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgc2V0dXBfdGVzdF9wbGFuZShkYXRhX3QgKmRhdGEsIGlu dCB0ZXN0X3BsYW5lKQo+IEBAIC05NzYsNyArOTc3LDYgQEAgaWd0X21haW4KPiDCoMKgwqDCoMKg wqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGlndF9maXh0dXJlIHsKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcHNyX2Rpc2FibGUoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdm c19mZCk7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNsb3NlKGRhdGEu ZGVidWdmc19mZCk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBidWZfb3BzX2Rl c3Ryb3koZGF0YS5ib3BzKTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwva21zX3BzcjJfc2Yu YyBiL3Rlc3RzL2ludGVsL2ttc19wc3IyX3NmLmMKPiBpbmRleCBlY2Y5YWQ3N2YuLjBmYjMwMDE2 MSAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC9rbXNfcHNyMl9zZi5jCj4gKysrIGIvdGVzdHMv aW50ZWwva21zX3BzcjJfc2YuYwo+IEBAIC0xMDE0LDcgKzEwMTQsNyBAQCBpZ3RfbWFpbgo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBUZXN0IGlmIFBTUjIgY2FuIGJl IGVuYWJsZWQgKi8KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJl X2YocHNyX2VuYWJsZShkYXRhLmRybV9mZCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEu ZGVidWdmc19mZCwKPiBQU1JfTU9ERV8yX1NFTF9GRVRDSCksCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBkYXRhLmRlYnVnZnNfZmQsCj4gUFNSX01PREVfMl9TRUxfRkVUQ0gsIE5VTEwpLAo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IkVycm9yIGVuYWJsaW5nIFBTUjJcbiIpOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkYXRhLmRhbWFnZV9hcmVhX2NvdW50ID0gTUFYX0RBTUFHRV9BUkVBUzsKPiBAQCAt MTAyNiw5ICsxMDI2LDYgQEAgaWd0X21haW4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9pbmZvKCJCaWcgZnJhbWVidWZmZXIgc2l6ZSAlZHglZFxuIiwKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGF0YS5iaWdfZmJfd2lkdGgs IGRhdGEuYmlnX2ZiX2hlaWdodCk7Cj4gwqAKPiAtCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaWd0X3JlcXVpcmVfZihwc3IyX3NlbGVjdGl2ZV9mZXRjaF9jaGVjayhkYXRhLmRlYnVn ZnNfZgo+IGQpLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiUFNSMiBzZWxlY3RpdmUgZmV0Y2ggbm90IGVuYWJsZWRcbiIpOwo+IC0K PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZvcl9lYWNoX3BpcGVfd2l0aF92YWxp ZF9vdXRwdXQoJmRhdGEuZGlzcGxheSwKPiBkYXRhLnBpcGUsIGRhdGEub3V0cHV0KSB7Cj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29leGlzdF9mZWF0 dXJlc1tuX3BpcGVzXSA9IDA7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKGNoZWNrX3BzcjJfc3VwcG9ydCgmZGF0YSkpIHsKPiBkaWZmIC0tZ2l0 IGEvdGVzdHMvaW50ZWwva21zX3BzcjJfc3UuYyBiL3Rlc3RzL2ludGVsL2ttc19wc3IyX3N1LmMK PiBpbmRleCA5MzZiNWJlYjMuLjQzN2VlMzZmNiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC9r bXNfcHNyMl9zdS5jCj4gKysrIGIvdGVzdHMvaW50ZWwva21zX3BzcjJfc3UuYwo+IEBAIC0zMzgs NyArMzM4LDcgQEAgaWd0X21haW4KPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgLyogVGVzdCBpZiBQU1IyIGNhbiBiZSBlbmFibGVkICovCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9mKHBzcl9lbmFibGUoZGF0YS5kcm1fZmQsCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLmRlYnVnZnNfZmQsCj4gUFNSX01PREVfMiksCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIsCj4gTlVMTCks Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAiRXJyb3IgZW5hYmxpbmcgUFNSMlxuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkYXRhLm9wID0gRlJPTlRCVUZGRVI7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBkYXRhLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODg7Cj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2ludGVsL2ttc19wc3Jfc3RyZXNzX3Rlc3QuYwo+IGIvdGVzdHMvaW50ZWwva21zX3Bz cl9zdHJlc3NfdGVzdC5jCj4gaW5kZXggN2FlYThlOGE1Li5iY2EzYmQ1MTMgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvaW50ZWwva21zX3Bzcl9zdHJlc3NfdGVzdC5jCj4gKysrIGIvdGVzdHMvaW50ZWwv a21zX3Bzcl9zdHJlc3NfdGVzdC5jCj4gQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgdm9pZCBw cmVwYXJlKGRhdGFfdCAqZGF0YSkKPiDCoMKgwqDCoMKgwqDCoMKgciA9IHRpbWVyZmRfc2V0dGlt ZShkYXRhLT5jb21wbGV0ZWRfdGltZXJmZCwgMCwgJmludGVydmFsLAo+IE5VTEwpOwo+IMKgwqDC oMKgwqDCoMKgwqBpZ3RfcmVxdWlyZV9mKHIgIT0gLTEsICJFcnJvciBzZXR0aW5nIGNvbXBsZXRl ZF90aW1lcmZkXG4iKTsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoGRhdGEtPmluaXRpYWxfc3RhdGUg PSBwc3JfZ2V0X21vZGUoZGF0YS0+ZGVidWdmc19mZCk7Cj4gK8KgwqDCoMKgwqDCoMKgZGF0YS0+ aW5pdGlhbF9zdGF0ZSA9IHBzcl9nZXRfbW9kZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBOVUxMKTsKPiDC oMKgwqDCoMKgwqDCoMKgaWd0X3JlcXVpcmUoZGF0YS0+aW5pdGlhbF9zdGF0ZSAhPSBQU1JfRElT QUJMRUQpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZ3RfcmVxdWlyZShwc3Jfd2FpdF9lbnRyeShkYXRh LT5kZWJ1Z2ZzX2ZkLCBkYXRhLQo+ID5pbml0aWFsX3N0YXRlLCBOVUxMKSk7Cj4gwqB9Cj4gQEAg LTM0Myw3ICszNDMsNyBAQCBzdGF0aWMgdm9pZCBydW4oZGF0YV90ICpkYXRhKQo+IMKgwqDCoMKg wqDCoMKgwqB9Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgLyogQ2hlY2sgaWYgYWZ0ZXIgYWxsIHRo aXMgc3RyZXNzIHRoZSBQU1IgaXMgc3RpbGwgaW4gdGhlCj4gc2FtZSBzdGF0ZSAqLwo+IC3CoMKg wqDCoMKgwqDCoGlndF9hc3NlcnQocHNyX2dldF9tb2RlKGRhdGEtPmRlYnVnZnNfZmQpID09IGRh dGEtCj4gPmluaXRpYWxfc3RhdGUpOwo+ICvCoMKgwqDCoMKgwqDCoGlndF9hc3NlcnQocHNyX2dl dF9tb2RlKGRhdGEtPmRlYnVnZnNfZmQsIE5VTEwpID09IGRhdGEtCj4gPmluaXRpYWxfc3RhdGUp Owo+IMKgfQo+IMKgCj4gwqBpZ3RfbWFpbgo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfYXN5bmNf ZmxpcHMuYyBiL3Rlc3RzL2ttc19hc3luY19mbGlwcy5jCj4gaW5kZXggYTAzNDlmYTAzLi4yODk1 MTY4ZjcgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2FzeW5jX2ZsaXBzLmMKPiArKysgYi90ZXN0 cy9rbXNfYXN5bmNfZmxpcHMuYwo+IEBAIC0zOTEsNyArMzkxLDcgQEAgc3RhdGljIHZvaWQgdGVz dF9jdXJzb3IoZGF0YV90ICpkYXRhKQo+IMKgwqDCoMKgwqDCoMKgwqAgKiBuZWNlc3NhcnksIGNh dXNpbmcgdGhlIGFzeW5jIGZsaXAgdG8gZmFpbCBiZWNhdXNlIGFzeW5jCj4gZmxpcCBpcyBub3QK PiDCoMKgwqDCoMKgwqDCoMKgICogc3VwcG9ydGVkIGluIGN1cnNvciBwbGFuZS4KPiDCoMKgwqDC oMKgwqDCoMKgICovCj4gLcKgwqDCoMKgwqDCoMKgaWd0X3NraXBfb25fZihpOTE1X3BzcjJfc2Vs ZWN0aXZlX2ZldGNoX2NoZWNrKGRhdGEtPmRybV9mZCksCj4gK8KgwqDCoMKgwqDCoMKgaWd0X3Nr aXBfb25fZihpOTE1X3BzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNrKGRhdGEtPmRybV9mZCwKPiBO VUxMKSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlBTUjIg c2VsIGZldGNoIGNhdXNlcyBjdXJzb3IgdG8gYmUgYWRkZWQgdG8KPiBwcmltYXJ5IHBsYW5lICIg XAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAicGFnZXMgZmxp cHMgYW5kIGFzeW5jIGZsaXAgaXMgbm90IHN1cHBvcnRlZCBpbgo+IGN1cnNvclxuIik7Cj4gwqAK PiBAQCAtNzA0LDcgKzcwNCw3IEBAIGlndF9tYWluCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKiBuZWNlc3NhcnksIGNhdXNpbmcgdGhlIGFzeW5jIGZsaXAgdG8gZmFpbCBiZWNh dXNlCj4gYXN5bmMgZmxpcCBpcyBub3QKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIHN1cHBvcnRlZCBpbiBjdXJzb3IgcGxhbmUuCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKi8KPiAtCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3NraXBf b25fZihpOTE1X3BzcjJfc2VsZWN0aXZlX2ZldGNoX2NoZWNrKGRhdGEuZHJtXwo+IGZkKSwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3NraXBfb25fZihpOTE1X3BzcjJfc2Vs ZWN0aXZlX2ZldGNoX2NoZWNrKGRhdGEuZHIKPiBtX2ZkLCBOVUxMKSwKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJQU1IyIHNlbCBm ZXRjaCBjYXVzZXMgY3Vyc29yIHRvIGJlCj4gYWRkZWQgdG8gcHJpbWFyeSBwbGFuZSAiIFwKPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICJwYWdlcyBmbGlwcyBhbmQgYXN5bmMgZmxpcCBpcyBub3QKPiBzdXBwb3J0ZWQgaW4gY3Vyc29y XG4iKTsKPiDCoAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3Vyc29yX2xlZ2FjeS5jIGIvdGVz dHMva21zX2N1cnNvcl9sZWdhY3kuYwo+IGluZGV4IDAwMTc2NTlkNC4uYTQzMGY3MzVhIDEwMDY0 NAo+IC0tLSBhL3Rlc3RzL2ttc19jdXJzb3JfbGVnYWN5LmMKPiArKysgYi90ZXN0cy9rbXNfY3Vy c29yX2xlZ2FjeS5jCj4gQEAgLTE4NDksNyArMTg0OSw3IEBAIGlndF9tYWluCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBwYWdlIGZsaXAgd2l0aCBjdXJzb3IgbGVnYWN5IEFQ SVMgd2hlbiBJbnRlbCdzCj4gUFNSMiBzZWxlY3RpdmUKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAqIGZldGNoIGlzIGVuYWJsZWQsIHNvIHN3aXRjaGluZyBQU1IxIGZvciB0aGlz IHdob2xlCj4gdGVzdC4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnRlbF9wc3IyX3Jlc3RvcmUgPQo+IGk5MTVf cHNyMl9zZWxfZmV0Y2hfdG9fcHNyMShkaXNwbGF5LmRybV9mZCk7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGludGVsX3BzcjJfcmVzdG9yZSA9Cj4gaTkxNV9wc3IyX3NlbF9mZXRj aF90b19wc3IxKGRpc3BsYXkuZHJtX2ZkLCBOVUxMKTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9kZXNjcmliZSgiVGVzdCBjaGVja3MgaG93IG1hbnkgY3Vy c29yIHVwZGF0ZXMgd2UgY2FuIGZpdAo+IGJldHdlZW4gdmJsYW5rcyAiCj4gQEAgLTIwNzQsNyAr MjA3NCw3IEBAIGlndF9tYWluCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X2ZpeHR1cmUgewo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGludGVsX3BzcjJfcmVzdG9yZSkK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGk5MTVfcHNy Ml9zZWxfZmV0Y2hfcmVzdG9yZShkaXNwbGF5LmRybV9mZCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpOTE1X3BzcjJfc2VsX2ZldGNoX3Jlc3RvcmUo ZGlzcGxheS5kcm1fZmQsCj4gTlVMTCk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGRybV9jbG9zZV9kcml2ZXIoZGlzcGxheS5kcm1fZmQpOwo+IMKgwqDCoMKgwqDCoMKg wqB9Cgo=