From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.241.1685638112429536282 for ; Thu, 01 Jun 2023 09:48:32 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=GOFBAFDr; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685638112; x=1717174112; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YYkMB/zNnd8g/4pSh9co9e/jYS0p2L5SStYMd820Nrg=; b=GOFBAFDr9Sck+jHBXh6wAYqENz+Y5c1+y5O4ZOzPECbz79txS1XiUpOL LlqvicGX/4WVK+U7C+t99H7qfWsH2eDmdzbpnQsKYezqHxzEMxYtt7Aq8 3HOS/uqVJFP6LlQusoKV4YxOXW91ewa/AQASmRe6fYHzw2Bnx4WT7TZn7 P0kj91V7cB9KvwtTMSDghJf8bnk3ellPNRaLAHX/aWvcjTj/qdOz5yYcQ /NLfJK9DW/phleGbnuyWeaeOtppqYNcLHeX0SU/a5jPmQhdKGwbZ3F/hO 0o48bePs7GNJJTdrGWZeGP1SBhN3/l5C5c4fGiz/h2oOluRBnTHK4E+cr g==; X-IronPort-AV: E=McAfee;i="6600,9927,10728"; a="335971763" X-IronPort-AV: E=Sophos;i="6.00,210,1681196400"; d="scan'208";a="335971763" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2023 09:48:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10728"; a="710580765" X-IronPort-AV: E=Sophos;i="6.00,210,1681196400"; d="scan'208";a="710580765" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga007.fm.intel.com with ESMTP; 01 Jun 2023 09:48:21 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 1 Jun 2023 09:48:20 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 1 Jun 2023 09:48:20 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 1 Jun 2023 09:48:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BDU0PSMH19UVY+9xrLtfPVX8E6esdvZOEjMTBxfoV/HgW/XztH/i6KcQnQXXCF5DyPQhRv0AulpNHQWJxtt0AZnXQGZg9gxc/FTsXdWfMrY9c4CBsMRVCd4EGZP8bowTt5pnx0sr84hhCxnXQ3KKH8j474f3KvuHCRVDWlL21jmQCyES5XA9u192J0O0hy/uv1/akC1picxre7w4oIUycQTsHq2ravDGvUsN8s/XUfet57YVAiOS2XZ/jJjDdxLWjIKQoc5xiKL9RnBHAAIVlnlHI3keqi15UbvXblYRwWvX0NHCJBQ6LTm3L7c5IqrCnqoRQwfa7dEZosPmt49uOw== 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=YYkMB/zNnd8g/4pSh9co9e/jYS0p2L5SStYMd820Nrg=; b=Uyvjs0efAOyuKqzm8umUeTbGEKDmijx5bB7wI/EoT6RgnY3HgGpW8L7vohmhTvf62KjU1Rzs7t912pjkap4E6LN/wxrp/p9JFPfUVtgUIEmFJmi2vX7YxrQ5KLTmRaEGz1+6EaDnqbbnjbGDMayAhmj2r7ut6v1aDOOKHBxgDF9mLLWeIc/stG0xt6Xh8sjDZEWAL/Q9kreXFb0PVdF2mR9Apjv8fx8OayFuR9i/pP3blZQxvcmZmsG7s0kyrvkD+QwmbwusXOtEoE/grBYsEfs+4EjAwkeOlsNMaEJoUga22gLWglEqW4abl2+7Pj1wL/EPyGtjGHOYGXuSD5pyBw== 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 SA2PR11MB4938.namprd11.prod.outlook.com (2603:10b6:806:fb::14) by SJ1PR11MB6083.namprd11.prod.outlook.com (2603:10b6:a03:48a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.23; Thu, 1 Jun 2023 16:48:18 +0000 Received: from SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::9ad:892d:ae85:59bc]) by SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::9ad:892d:ae85:59bc%7]) with mapi id 15.20.6411.028; Thu, 1 Jun 2023 16:48:18 +0000 From: "Michael D Kinney" To: Kun Qin , "devel@edk2.groups.io" CC: Sean Brogan , Michael Kubacki , "Kinney, Michael D" Subject: Re: [PATCH v1 1/1] UnitTestFrameworkPkg: UnitTestPersistenceLib: Save Unit Test Cache to Drive Thread-Topic: [PATCH v1 1/1] UnitTestFrameworkPkg: UnitTestPersistenceLib: Save Unit Test Cache to Drive Thread-Index: AQHZk/QXr4VeKjJ7qkqDn0vyH+9qq6901+ZQgAFBsoCAAA8oYA== Date: Thu, 1 Jun 2023 16:48:18 +0000 Message-ID: References: <20230531191358.587-1-kuqin12@gmail.com> <20230531191358.587-2-kuqin12@gmail.com> <6093b465-6d20-1ab7-6b84-fba55c3fb0df@gmail.com> In-Reply-To: <6093b465-6d20-1ab7-6b84-fba55c3fb0df@gmail.com> Accept-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: SA2PR11MB4938:EE_|SJ1PR11MB6083:EE_ x-ms-office365-filtering-correlation-id: 6b626ff8-8829-4df5-c94b-08db62c00062 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 54+Y9cxcCcN9+XrniRrTQfA8Z/G+D63fD0915d31o3BiweE6gFZ5RaHj+DdSRIOGyodzJz5pFWeKnzhheeNYnKLGnCerPfftzyX9BAZOjipLPIofRRGZrAoqvBMO0j6D04UWN/Rqul0cd+rpzWD1isS/FHYpSxh/tV8q+1qKqvFkNerMWun4TL7Tyf2frjrNxGCF+sViBuW+urn0EV1rC6+f2E3BILFpWvoTULURaB3klWyZYqpdG8Xc126Tz0b2cuHgyJRYklcqkRuhYfeCAsS4lcifIV9PELCxUSCv2UXMFA4zXTPTjLGuXRVGXUXiDhVBMfnxfVT7+p2P5kQ+U4dE55jgi+Ivb4QOCCiwmvSSXyeebefkkqnzBUqkQrSswHxoWM8SLth/wULL0sctkpqEBEfzjvZOKvkh5qmedJN8+CaPWP78Vf05GqoEE2GPW9pWm/wqQNqaMreJzadIXtTzOpwuJ2rhbZxMolUuU84AkKT8t4lJlFQaStxIwO5glW4PeMt5GdVf7m5rfSiQsKErBUt7fsJx8XCHSgqAYbXYrJ7i41fyUUC8Imt7ZBUFl3ecUik/rfcIm3U+pLnvRSIuK64qwdVxBEWKLLYvqMo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4938.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(136003)(39860400002)(366004)(396003)(376002)(451199021)(2906002)(86362001)(33656002)(38070700005)(5660300002)(52536014)(55016003)(83380400001)(7696005)(71200400001)(966005)(186003)(6506007)(26005)(53546011)(107886003)(9686003)(82960400001)(478600001)(110136005)(54906003)(76116006)(66556008)(66476007)(66446008)(64756008)(66946007)(4326008)(122000001)(41300700001)(316002)(38100700002)(8936002)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?anBnQi9sQ3lLSUEzTE1ETExQendkZk9ZVFAyY1lIeUlSeElTSVRQeElyaU50?= =?utf-8?B?cnU4a015LzJzeWVBSWlrOWo3azlCV0xYRVlvaVNnQnc1cHV2KytadW5sNEpB?= =?utf-8?B?Q28rczhLckNVQmM4UzFma1QwNTlVbkVwMmdpTnVTQzQySFRFay94ZFlXc0tu?= =?utf-8?B?QTI2WE5XcjBKWGIzRUFrS3pzN3Q1VjBWditmWnhzVjFVNFpxaVhOWmdOMk0z?= =?utf-8?B?N0ZjdXUyZHFnWWprQTF2NDNnc0VYbWZNRi9qL2tHZ1VTNEtvQ2VuVkhwaGw3?= =?utf-8?B?Y3EzNE55NjQya3FVZjJkdm1GQzFoUFd1S1VWd0w0VFJmeTRNWCs4aXd6UEt2?= =?utf-8?B?YjE4SDBPNEtrSWNhQ3JROUFhalNsNVNoZnQrKzFYSmFuM29LREF5V1hvWGlH?= =?utf-8?B?SFhPRjlqR0lpdTIyZEt1enV5dGxnRzllSU5rRHNUSU01YytLNlJmb01pbGdi?= =?utf-8?B?U1IzenpGdklSSVd1c3MxY0N1OVVpamJLdGdpSEpER0o0QWJFcEdjSGdVRFdD?= =?utf-8?B?djNFWnRBMEFCajlIK0R5RXJaZXFCaXdDWGdtbm1DOGsxeGhRWGRPd2lzZDhq?= =?utf-8?B?VnpXdE1UMXlsby9DV2I1YjFvUk1IQmxHYjhZN1Rxd0dTMCtsQWhXUXk4N3dz?= =?utf-8?B?cHZHL2NSZTQvbEdlN0YxUE9TY25pTEwyc2JvSFpMbEJiV05sQXRFUFhBTkpy?= =?utf-8?B?ejFwc2I2TFVxbmljdENKYmJ1TUtwS2NmUG5CajZNUzV0Sy8vQnozTk9EWUY4?= =?utf-8?B?SW9TcFE2ZWpOVURlbFF1UHdYSTAzcllkNTZQazI3WW1FelBURE9sOTZLdTlB?= =?utf-8?B?RVYrUDF2STgrSkQzSlVvODZYMXVKWkRxY3VHUGVCQ2Qyem85NnVTSzQycDRp?= =?utf-8?B?R254aU51cVdOd0RSak5YQVg4Q2EvMkRFdFdSU3hnYXRKZlVlekgrSnU3VkQ5?= =?utf-8?B?aVNVWjdiWTFQbHk0WHo4NklXL3gwWFc4TmJaaTZIZStHRHAreUcwV0VlaW03?= =?utf-8?B?QmZRMjFnUzl5aGpob1RIVFc5azhQSndYSXFNaGdJN0QranM4UmtMVVRnb2h1?= =?utf-8?B?OHkxay9MdXZYenZjbSt4OFBPSVBtQ3RucTRZaENSbm1va0NXaDYyajY2a1Fw?= =?utf-8?B?TGNGajh4OU5CZnNoeldQaTdUK2xUaXNvQnh0SnZ1TmYwZ3BjN1B4OE5pME9K?= =?utf-8?B?dlhKRkVjQVViZVB6UzZWUTg2M0pEaHdUSW1ROWFzN3pCL0Vobk9uNHJFRUI5?= =?utf-8?B?d2YwdUMyK3pEMUptU2Q2UlRxZ2R5akNweWpxTFNQTVNMdmoxT1lBNHF6alY0?= =?utf-8?B?VCt1Ukcya3ZqMmJvSEpIdDdkV2FWS3IwUEpEbFhtTk5XdnJ4WFJvUW15SnYy?= =?utf-8?B?RmFwaFdGaWlRREsyZ0tGcDNzUytLVU1ENStQVllKeFB3YWlZSFgwQmw1SmdR?= =?utf-8?B?bWZ4bTFSaEtzeElkU1kxZ3pmMzU1WjZFbWtKOEJyN1YvTUpHOUFsQkFqUkFr?= =?utf-8?B?SnN1R3haTGkxbU54M1p1M2FJU3VzWmNNM2Y3V2VmNmlKS0tCcTUzMDlRUTF6?= =?utf-8?B?OEwrNmZ5a0NSMW5LVU5qZmxZSVJlVDk1Q0gzZ2lnS3F1SXhTWndkbFp3YTBn?= =?utf-8?B?dW1SRzhqS0VtZ0ZjZ0JFTGNmZFUxK2VCc1JMVSs0dDdrL0oxUVliNFZDNkIv?= =?utf-8?B?cEJybi9QTmVNdmJFdWx4aDdGbWlnOXp3eU10YTNwZ3R1cGhZSkp4NUFxS2Nw?= =?utf-8?B?WEk3VFVUREpwN2RJRWxPZk9sVlVxeXVFN2lBdVNHN1BpbStkMmp1dkRWV1Av?= =?utf-8?B?TDhDS21SYkYycnJMV1VVbm1LeEFqZEJPY1B1b1JIaEpOand3K1JsVlhHcm9t?= =?utf-8?B?aDc4QWtXRm9rSU5oeHJkeHVYOG40eGxSWlpDcWFET28vUlhZek1OTmlvU0t0?= =?utf-8?B?b0syOWpkdUZKYm1oOUp0aHVRRHVjYXBndDRQNVl1dzJScGdCeHJic2hIUEN1?= =?utf-8?B?cWhoNTVhVjN1cVVVVnMreVpxemQrNE1LUnl5aHg2YjRKM2M5M090ZzNZNnl3?= =?utf-8?B?aUpJY0FEWkFzMDlRK3prRVcvR29HYlFwcWcyUFNsbUl1MFg0eEcyNUJWRUdV?= =?utf-8?B?QXl1WXEvRWJQNndaczloZVY5bEVXUFR4MHdyTU1uNnVianNHSzhjcnJybmln?= =?utf-8?B?eEE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4938.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b626ff8-8829-4df5-c94b-08db62c00062 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2023 16:48:18.2410 (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: a9+SjVqCi8xfrFSBa5XMFRDF32TAn45VkEwtHJ+uQ5rgv06zEB6SQr8nmrjpi9xq5Yc3pOIs7h4LdI6RMFduXGFo041ZjHQY3dZ/W7uVoSg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR11MB6083 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSB0aGluayB5b3VyIHVzZSBjYXNlIGlzIGxpbWl0ZWQgdG8gdGhlIFVuaXRUZXN0TGliIGJhc2Vk IHRlc3RzIHJ1bm5pbmcgZnJvbSB0aGUgVUVGSSBTaGVsbC4NCg0KSW4gdGhhdCBjYXNlLCB0aGUg bGlicmFyeSBVbml0VGVzdEZyYW1ld29ya1BrZ1xMaWJyYXJ5XFVuaXRUZXN0TGliXFVuaXRUZXN0 TGliLmluZiBpcyBhbHdheXMNCmxpbmtlZCB0byB0aGUgdW5pdCB0ZXN0IGFwcGxpY2F0aW9uLiAg WW91IGNvdWxkIGFkZCBhIENPTlNUUlVDVE9SIHRvIFVuaXRUZXN0TGliLmluZiBhbmQgdGhlDQpD T05TVFJVQ1RPUiBmdW5jdGlvbiBjYW4gbG9vayBmb3IgVUVGSSBTaGVsbCBhcmd1bWVudHMgYW5k IGlmIGFyZ3Mgc3BlY2lmeSBhbHRlcm5hdGUgcGF0aCANCmZvciB1bml0IHRlc3QgY2FjaGUgdGhl biBzYXZlIHNvbWUgc3RhdGUgZm9yIHRoYXQgcGF0aC4NCg0KTWlrZQ0KIA0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEt1biBRaW4gPGt1cWluMTJAZ21haWwuY29tPg0K PiBTZW50OiBUaHVyc2RheSwgSnVuZSAxLCAyMDIzIDg6NTAgQU0NCj4gVG86IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47IE1pY2hhZWwg S3ViYWNraQ0KPiA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6 IFtQQVRDSCB2MSAxLzFdIFVuaXRUZXN0RnJhbWV3b3JrUGtnOiBVbml0VGVzdFBlcnNpc3RlbmNl TGliOg0KPiBTYXZlIFVuaXQgVGVzdCBDYWNoZSB0byBEcml2ZQ0KPiANCj4gSGkgTWlrZSwNCj4g DQo+IFllcywgdGhhdCB3b3VsZCBpbmRlZWQgc2VydmUgdGhlIHB1cnBvc2UuIENvdWxkIHlvdSBw bGVhc2Ugc2hvdyBtZSBhDQo+IHBvaW50ZXIgb24gaG93IHRvIGFkZCB0aGF0DQo+IGNvbW1vbmx5 PyBJIHdvdWxkIGJlIG9wZW4gdG8gY2hhbmdlIHRoZSBjb2RlIHRoZSBvdGhlciB3YXkuDQo+IA0K PiBUaGUgcmVhc29uIEkgd291bGQgbGlrZSB0byBjaGFuZ2UgdGhpcyBjb21tb25seSBpcyBiZWNh dXNlIGlmIHRoZSBpbnB1dA0KPiBhcmd1bWVudCBoYXMgdG8gYmUgYWRkZWQNCj4gcGVyIHRlc3Qs IHRoYXQgd2lsbCBwcmV2ZW50IHRoZSBleGlzdGluZyB0ZXN0cyB0byBiZSB1c2VkIGluIHRoZQ0K PiBhZm9yZW1lbnRpb25lZCBzY2VuYXJpb3MuIFBsZWFzZSBsZXQNCj4gbWUgaG93IHlvdSB0aGlu ay4NCj4gDQo+IFRoYW5rcyBpbiBhZHZhbmNlLg0KPiANCj4gUmVnYXJkcywNCj4gS3VuDQo+IA0K PiBPbiA1LzMxLzIwMjMgMTozOSBQTSwgS2lubmV5LCBNaWNoYWVsIEQgd3JvdGU6DQo+ID4gV291 bGQgaXQgYmUgbW9yZSBmbGV4aWJsZSBmb3IgdW5pdCB0ZXN0cyBhcHBzIHRvIHN1cHBvcnQgYW4g b3B0aW9uYWwNCj4gY29tbWFuZCBsaW5lIGFyZw0KPiA+IHRvIHNwZWNpZnkgdGhlIHZvbHVtZSB0 byB3cml0ZSByZXN1bHRzPw0KPiA+DQo+ID4gTWlrZQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEt1biBRaW4gPGt1cWluMTJAZ21haWwuY29tPg0KPiA+ PiBTZW50OiBXZWRuZXNkYXksIE1heSAzMSwgMjAyMyAxMjoxNCBQTQ0KPiA+PiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW8NCj4gPj4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3Nv ZnQuY29tPjsgTWljaGFlbCBLdWJhY2tpDQo+ID4+IDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQu Y29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPiA+PiBTdWJqZWN0OiBbUEFUQ0ggdjEgMS8xXSBVbml0VGVzdEZyYW1ld29ya1BrZzogVW5p dFRlc3RQZXJzaXN0ZW5jZUxpYjoNCj4gU2F2ZQ0KPiA+PiBVbml0IFRlc3QgQ2FjaGUgdG8gRHJp dmUNCj4gPj4NCj4gPj4gRnJvbToga3VxaW4xMiA8NDI1NTQ5MTQra3VxaW4xMkB1c2Vycy5ub3Jl cGx5LmdpdGh1Yi5jb20+DQo+ID4+DQo+ID4+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2Nv cmUub3JnL3Nob3dfYnVnLmNnaT9pZD00NDY3DQo+ID4+DQo+ID4+IEN1cnJlbnQgaW1wbGVtZW50 YXRpb24gb2YgVW5pdFRlc3RGcmFtZXdvcmtQa2cgZm9yIHNoZWxsLWJhc2VkIHVuaXQgdGVzdA0K PiA+PiB3aWxsIHNhdmUgdGhlIHVuaXQgdGVzdCBjYWNoZSB0byB0aGUgc2FtZSB2b2x1bWUgYXMg dGhlIHRlc3QgYXBwbGljYXRpb24NCj4gPj4gaXRzZWxmLiBUaGlzIHdvcmtzIGFzIGxvbmcgYXMg dGhlIHRlc3QgYXBwbGljYXRpb24gaXMgb24gYSB3cml0YWJsZQ0KPiA+PiB2b2x1bWUsIHN1Y2gg YXMgVVNCIG9yIEVGSSBwYXJ0aXRpb24uDQo+ID4+DQo+ID4+IEluc3RlYWQgb2Ygc2F2aW5nIHRo ZSBmaWxlcyB0byB0aGUgc2FtZSBmaWxlIHN5c3RlbSBvZiB1bml0IHRlc3QNCj4gPj4gYXBwbGlj YXRpb24sIHRoaXMgY2hhbmdlIHdpbGwgc2F2ZSB0aGUgY2FjaGUgZmlsZSB0byB0aGUgcGF0aCB3 aGVyZSB0aGUNCj4gPj4gdXNlciByYW4gdGhpcyB0ZXN0IGFwcGxpY2F0aW9uLg0KPiA+Pg0KPiA+ PiBUaGlzIGNoYW5nZSB3YXMgdGVzdGVkIG9uIHByb3ByaWV0YXJ5IHBoeXNpY2FsIGhhcmR3YXJl IHBsYXRmb3JtcyBhbmQNCj4gPj4gUUVNVSBiYXNlZCB2aXJ0dWFsIHBsYXRmb3JtLg0KPiA+Pg0K PiA+PiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4+IENj OiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQo+ID4+IENj OiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4gU2ln bmVkLW9mZi1ieTogS3VuIFFpbiA8a3VxaW4xMkBnbWFpbC5jb20+DQo+ID4+IC0tLQ0KPiA+Pg0K PiA+Pg0KPiBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L1VuaXRUZXN0UGVyc2lzdGVuY2VM aWJTaW1wbGVGaWxlU3lzdGVtL1VuaXRUZXMNCj4gPj4gdFBlcnNpc3RlbmNlTGliU2ltcGxlRmls ZVN5c3RlbS5jIHwgODEgKysrKysrKysrKystLS0tLS0tLS0NCj4gPj4gICAxIGZpbGUgY2hhbmdl ZCwgNDMgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRpZmYgLS1n aXQNCj4gPj4NCj4gYS9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L1VuaXRUZXN0UGVyc2lz dGVuY2VMaWJTaW1wbGVGaWxlU3lzdGVtL1VuaXRUDQo+ID4+IGVzdFBlcnNpc3RlbmNlTGliU2lt cGxlRmlsZVN5c3RlbS5jDQo+ID4+DQo+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cvTGlicmFyeS9V bml0VGVzdFBlcnNpc3RlbmNlTGliU2ltcGxlRmlsZVN5c3RlbS9Vbml0VA0KPiA+PiBlc3RQZXJz aXN0ZW5jZUxpYlNpbXBsZUZpbGVTeXN0ZW0uYw0KPiA+PiBpbmRleCBiNTk5OTE2ODNmNDguLmQ0 MTgxODA4YjJiZSAxMDA2NDQNCj4gPj4gLS0tDQo+ID4+DQo+IGEvVW5pdFRlc3RGcmFtZXdvcmtQ a2cvTGlicmFyeS9Vbml0VGVzdFBlcnNpc3RlbmNlTGliU2ltcGxlRmlsZVN5c3RlbS9Vbml0VA0K PiA+PiBlc3RQZXJzaXN0ZW5jZUxpYlNpbXBsZUZpbGVTeXN0ZW0uYw0KPiA+PiArKysNCj4gPj4N Cj4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L1VuaXRUZXN0UGVyc2lzdGVuY2VMaWJT aW1wbGVGaWxlU3lzdGVtL1VuaXRUDQo+ID4+IGVzdFBlcnNpc3RlbmNlTGliU2ltcGxlRmlsZVN5 c3RlbS5jDQo+ID4+IEBAIC0yMiw3ICsyMiw3IEBADQo+ID4+ICAgI2RlZmluZSBDQUNIRV9GSUxF X1NVRkZJWCAgTCJfQ2FjaGUuZGF0Ig0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAgIC8qKg0KPiA+ Pg0KPiA+PiAtICBHZW5lcmF0ZSB0aGUgZGV2aWNlIHBhdGggdG8gdGhlIGNhY2hlIGZpbGUuDQo+ ID4+DQo+ID4+ICsgIEdlbmVyYXRlIHRoZSBmaWxlIG5hbWUgYW5kIHBhdGggdG8gdGhlIGNhY2hl IGZpbGUuDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+ICAgICBAcGFyYW1baW5dICBGcmFtZXdvcmtI YW5kbGUgIEEgcG9pbnRlciB0byB0aGUgZnJhbWV3b3JrIHRoYXQgaXMNCj4gYmVpbmcNCj4gPj4g cGVyc2lzdGVkLg0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBAQCAtMzEsOCArMzEsOCBAQA0KPiA+ Pg0KPiA+Pg0KPiA+PiAgICoqLw0KPiA+Pg0KPiA+PiAgIFNUQVRJQw0KPiA+Pg0KPiA+PiAtRUZJ X0RFVklDRV9QQVRIX1BST1RPQ09MICoNCj4gPj4NCj4gPj4gLUdldENhY2hlRmlsZURldmljZVBh dGggKA0KPiA+Pg0KPiA+PiArQ0hBUjE2ICoNCj4gPj4NCj4gPj4gK0dldENhY2hlRmlsZU5hbWUg KA0KPiA+Pg0KPiA+PiAgICAgSU4gVU5JVF9URVNUX0ZSQU1FV09SS19IQU5ETEUgIEZyYW1ld29y a0hhbmRsZQ0KPiA+Pg0KPiA+PiAgICAgKQ0KPiA+Pg0KPiA+PiAgIHsNCj4gPj4NCj4gPj4gQEAg LTg1LDcgKzg1LDEyIEBAIEdldENhY2hlRmlsZURldmljZVBhdGggKA0KPiA+PiAgICAgLy8gUGF0 aENsZWFuVXBEaXJlY3RvcmllcyAoRmlsZU5hbWVDb3B5KTsNCj4gPj4NCj4gPj4gICAgIC8vICAg ICBpZiAoUGF0aFJlbW92ZUxhc3RJdGVtIChGaWxlTmFtZUNvcHkpKSB7DQo+ID4+DQo+ID4+ICAg ICAvLw0KPiA+Pg0KPiA+PiAtICBBcHBQYXRoICAgICAgICAgICAgICA9IENvbnZlcnREZXZpY2VQ YXRoVG9UZXh0IChMb2FkZWRJbWFnZS0NCj4gPkZpbGVQYXRoLA0KPiA+PiBUUlVFLCBUUlVFKTsg Ly8gTk9URTogVGhpcyBtdXN0IGJlIGZyZWVkLg0KPiA+Pg0KPiA+PiArICBBcHBQYXRoID0gQ29u dmVydERldmljZVBhdGhUb1RleHQgKExvYWRlZEltYWdlLT5GaWxlUGF0aCwgVFJVRSwNCj4gVFJV RSk7DQo+ID4+IC8vIE5PVEU6IFRoaXMgbXVzdCBiZSBmcmVlZC4NCj4gPj4NCj4gPj4gKyAgaWYg KEFwcFBhdGggPT0gTlVMTCkgew0KPiA+Pg0KPiA+PiArICAgIERFQlVHICgoREVCVUdfRVJST1Is ICIlYSAtIEZhaWxlZCB0byBjb252ZXJ0IGRldmljZSBwYXRoIHRvDQo+IHRleHQuXG4iLA0KPiA+ PiBfX2Z1bmNfXykpOw0KPiA+Pg0KPiA+PiArICAgIGdvdG8gRXhpdDsNCj4gPj4NCj4gPj4gKyAg fQ0KPiA+Pg0KPiA+PiArDQo+ID4+DQo+ID4+ICAgICBEaXJlY3RvcnlTbGFzaE9mZnNldCA9IFN0 ckxlbiAoQXBwUGF0aCk7DQo+ID4+DQo+ID4+ICAgICAvLw0KPiA+Pg0KPiA+PiAgICAgLy8gTWFr ZSBzdXJlIHdlIGRpZG4ndCBnZXQgYW55IHdlaXJkIGRhdGEuDQo+ID4+DQo+ID4+IEBAIC0xNDgs MTUgKzE1MywxNSBAQCBFeGl0Og0KPiA+PiAgICAgICBGcmVlUG9vbCAoQXBwUGF0aCk7DQo+ID4+ DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IC0gIGlmIChDYWNoZUZpbGVQYXRo ICE9IE5VTEwpIHsNCj4gPj4NCj4gPj4gLSAgICBGcmVlUG9vbCAoQ2FjaGVGaWxlUGF0aCk7DQo+ ID4+DQo+ID4+ICsgIGlmIChDYWNoZUZpbGVEZXZpY2VQYXRoICE9IE5VTEwpIHsNCj4gPj4NCj4g Pj4gKyAgICBGcmVlUG9vbCAoQ2FjaGVGaWxlRGV2aWNlUGF0aCk7DQo+ID4+DQo+ID4+ICAgICB9 DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+ICAgICBpZiAoVGVzdE5hbWUgIT0gTlVMTCkgew0KPiA+ Pg0KPiA+PiAgICAgICBGcmVlUG9vbCAoVGVzdE5hbWUpOw0KPiA+Pg0KPiA+PiAgICAgfQ0KPiA+ Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAtICByZXR1cm4gQ2FjaGVGaWxlRGV2aWNlUGF0aDsNCj4gPj4N Cj4gPj4gKyAgcmV0dXJuIENhY2hlRmlsZVBhdGg7DQo+ID4+DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+ Pg0KPiA+Pg0KPiA+PiAgIC8qKg0KPiA+Pg0KPiA+PiBAQCAtMTc1LDIxICsxODAsMjEgQEAgRG9l c0NhY2hlRXhpc3QgKA0KPiA+PiAgICAgSU4gVU5JVF9URVNUX0ZSQU1FV09SS19IQU5ETEUgIEZy YW1ld29ya0hhbmRsZQ0KPiA+Pg0KPiA+PiAgICAgKQ0KPiA+Pg0KPiA+PiAgIHsNCj4gPj4NCj4g Pj4gLSAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAqRmlsZURldmljZVBhdGg7DQo+ID4+DQo+ ID4+IC0gIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+Pg0KPiA+PiAtICBT SEVMTF9GSUxFX0hBTkRMRSAgICAgICAgIEZpbGVIYW5kbGU7DQo+ID4+DQo+ID4+ICsgIENIQVIx NiAgICAgICAgICAgICAqRmlsZU5hbWU7DQo+ID4+DQo+ID4+ICsgIEVGSV9TVEFUVVMgICAgICAg ICBTdGF0dXM7DQo+ID4+DQo+ID4+ICsgIFNIRUxMX0ZJTEVfSEFORExFICBGaWxlSGFuZGxlOw0K PiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAgICAgLy8NCj4gPj4NCj4gPj4gICAgIC8vIE5PVEU6IFRo aXMgZGV2cGF0aCBpcyBhbGxvY2F0ZWQgYW5kIG11c3QgYmUgZnJlZWQuDQo+ID4+DQo+ID4+ICAg ICAvLw0KPiA+Pg0KPiA+PiAtICBGaWxlRGV2aWNlUGF0aCA9IEdldENhY2hlRmlsZURldmljZVBh dGggKEZyYW1ld29ya0hhbmRsZSk7DQo+ID4+DQo+ID4+ICsgIEZpbGVOYW1lID0gR2V0Q2FjaGVG aWxlTmFtZSAoRnJhbWV3b3JrSGFuZGxlKTsNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gICAgIC8v DQo+ID4+DQo+ID4+ICAgICAvLyBDaGVjayB0byBzZWUgd2hldGhlciB0aGUgZmlsZSBleGlzdHMu ICBJZiB0aGUgZmlsZSBjYW4gYmUgb3BlbmVkDQo+IGZvcg0KPiA+Pg0KPiA+PiAgICAgLy8gcmVh ZGluZywgaXQgZXhpc3RzLiAgT3RoZXJ3aXNlLCBwcm9iYWJseSBub3QuDQo+ID4+DQo+ID4+ICAg ICAvLw0KPiA+Pg0KPiA+PiAtICBTdGF0dXMgPSBTaGVsbE9wZW5GaWxlQnlEZXZpY2VQYXRoICgN Cj4gPj4NCj4gPj4gLSAgICAgICAgICAgICAmRmlsZURldmljZVBhdGgsDQo+ID4+DQo+ID4+ICsg IFN0YXR1cyA9IFNoZWxsT3BlbkZpbGVCeU5hbWUgKA0KPiA+Pg0KPiA+PiArICAgICAgICAgICAg IEZpbGVOYW1lLA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgICAmRmlsZUhhbmRsZSwNCj4gPj4N Cj4gPj4gICAgICAgICAgICAgICAgRUZJX0ZJTEVfTU9ERV9SRUFELA0KPiA+Pg0KPiA+PiAgICAg ICAgICAgICAgICAwDQo+ID4+DQo+ID4+IEBAIC0xOTgsOCArMjAzLDggQEAgRG9lc0NhY2hlRXhp c3QgKA0KPiA+PiAgICAgICBTaGVsbENsb3NlRmlsZSAoJkZpbGVIYW5kbGUpOw0KPiA+Pg0KPiA+ PiAgICAgfQ0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAtICBpZiAoRmlsZURldmljZVBhdGggIT0g TlVMTCkgew0KPiA+Pg0KPiA+PiAtICAgIEZyZWVQb29sIChGaWxlRGV2aWNlUGF0aCk7DQo+ID4+ DQo+ID4+ICsgIGlmIChGaWxlTmFtZSAhPSBOVUxMKSB7DQo+ID4+DQo+ID4+ICsgICAgRnJlZVBv b2wgKEZpbGVOYW1lKTsNCj4gPj4NCj4gPj4gICAgIH0NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4g ICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIiVhIC0gUmV0dXJuaW5nICVkXG4iLCBfX2Z1bmNf XywgIUVGSV9FUlJPUg0KPiA+PiAoU3RhdHVzKSkpOw0KPiA+Pg0KPiA+PiBAQCAtMjI5LDEwICsy MzQsMTAgQEAgU2F2ZVVuaXRUZXN0Q2FjaGUgKA0KPiA+PiAgICAgSU4gVUlOVE4gICAgICAgICAg ICAgICAgICAgICAgIFNhdmVTdGF0ZVNpemUNCj4gPj4NCj4gPj4gICAgICkNCj4gPj4NCj4gPj4g ICB7DQo+ID4+DQo+ID4+IC0gIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKkZpbGVEZXZpY2VQ YXRoOw0KPiA+Pg0KPiA+PiAtICBFRklfU1RBVFVTICAgICAgICAgICAgICAgIFN0YXR1czsNCj4g Pj4NCj4gPj4gLSAgU0hFTExfRklMRV9IQU5ETEUgICAgICAgICBGaWxlSGFuZGxlOw0KPiA+Pg0K PiA+PiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFdyaXRlQ291bnQ7DQo+ID4+DQo+ID4+ ICsgIENIQVIxNiAgICAgICAgICAgICAqRmlsZU5hbWU7DQo+ID4+DQo+ID4+ICsgIEVGSV9TVEFU VVMgICAgICAgICBTdGF0dXM7DQo+ID4+DQo+ID4+ICsgIFNIRUxMX0ZJTEVfSEFORExFICBGaWxl SGFuZGxlOw0KPiA+Pg0KPiA+PiArICBVSU5UTiAgICAgICAgICAgICAgV3JpdGVDb3VudDsNCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPj4gICAgIC8vDQo+ID4+DQo+ID4+ICAgICAvLyBDaGVjayB0aGUg aW5wdXRzIGZvciBzYW5pdHkuDQo+ID4+DQo+ID4+IEBAIC0yNDUsMTMgKzI1MCwxMyBAQCBTYXZl VW5pdFRlc3RDYWNoZSAoDQo+ID4+ICAgICAvLyBEZXRlcm1pbmUgdGhlIHBhdGggZm9yIHRoZSBj YWNoZSBmaWxlLg0KPiA+Pg0KPiA+PiAgICAgLy8gTk9URTogVGhpcyBkZXZwYXRoIGlzIGFsbG9j YXRlZCBhbmQgbXVzdCBiZSBmcmVlZC4NCj4gPj4NCj4gPj4gICAgIC8vDQo+ID4+DQo+ID4+IC0g IEZpbGVEZXZpY2VQYXRoID0gR2V0Q2FjaGVGaWxlRGV2aWNlUGF0aCAoRnJhbWV3b3JrSGFuZGxl KTsNCj4gPj4NCj4gPj4gKyAgRmlsZU5hbWUgPSBHZXRDYWNoZUZpbGVOYW1lIChGcmFtZXdvcmtI YW5kbGUpOw0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiAgICAgLy8NCj4gPj4NCj4gPj4gICAgIC8v IEZpcnN0IGxldHMgb3BlbiB0aGUgZmlsZSBpZiBpdCBleGlzdHMgc28gd2UgY2FuIGRlbGV0ZSBp dC4uLlRoaXMNCj4gaXMNCj4gPj4gdGhlIHdvcmsgYXJvdW5kIGZvciB0cnVuY2F0aW9uDQo+ID4+ DQo+ID4+ICAgICAvLw0KPiA+Pg0KPiA+PiAtICBTdGF0dXMgPSBTaGVsbE9wZW5GaWxlQnlEZXZp Y2VQYXRoICgNCj4gPj4NCj4gPj4gLSAgICAgICAgICAgICAmRmlsZURldmljZVBhdGgsDQo+ID4+ DQo+ID4+ICsgIFN0YXR1cyA9IFNoZWxsT3BlbkZpbGVCeU5hbWUgKA0KPiA+Pg0KPiA+PiArICAg ICAgICAgICAgIEZpbGVOYW1lLA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgICAmRmlsZUhhbmRs ZSwNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgKEVGSV9GSUxFX01PREVfUkVBRCB8IEVGSV9G SUxFX01PREVfV1JJVEUpLA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgICAwDQo+ID4+DQo+ID4+ IEBAIC0yNzAsOCArMjc1LDggQEAgU2F2ZVVuaXRUZXN0Q2FjaGUgKA0KPiA+PiAgICAgLy8NCj4g Pj4NCj4gPj4gICAgIC8vIE5vdyB0aGF0IHdlIGtub3cgdGhlIHBhdGggdG8gdGhlIGZpbGUuLi4g bGV0J3Mgb3BlbiBpdCBmb3INCj4gd3JpdGluZy4NCj4gPj4NCj4gPj4gICAgIC8vDQo+ID4+DQo+ ID4+IC0gIFN0YXR1cyA9IFNoZWxsT3BlbkZpbGVCeURldmljZVBhdGggKA0KPiA+Pg0KPiA+PiAt ICAgICAgICAgICAgICZGaWxlRGV2aWNlUGF0aCwNCj4gPj4NCj4gPj4gKyAgU3RhdHVzID0gU2hl bGxPcGVuRmlsZUJ5TmFtZSAoDQo+ID4+DQo+ID4+ICsgICAgICAgICAgICAgRmlsZU5hbWUsDQo+ ID4+DQo+ID4+ICAgICAgICAgICAgICAgICZGaWxlSGFuZGxlLA0KPiA+Pg0KPiA+PiAgICAgICAg ICAgICAgICAoRUZJX0ZJTEVfTU9ERV9SRUFEIHwgRUZJX0ZJTEVfTU9ERV9XUklURSB8DQo+ID4+ IEVGSV9GSUxFX01PREVfQ1JFQVRFKSwNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgMA0KPiA+ Pg0KPiA+PiBAQCAtMzA0LDggKzMwOSw4IEBAIFNhdmVVbml0VGVzdENhY2hlICgNCj4gPj4gICAg IFNoZWxsQ2xvc2VGaWxlICgmRmlsZUhhbmRsZSk7DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+ICAg RXhpdDoNCj4gPj4NCj4gPj4gLSAgaWYgKEZpbGVEZXZpY2VQYXRoICE9IE5VTEwpIHsNCj4gPj4N Cj4gPj4gLSAgICBGcmVlUG9vbCAoRmlsZURldmljZVBhdGgpOw0KPiA+Pg0KPiA+PiArICBpZiAo RmlsZU5hbWUgIT0gTlVMTCkgew0KPiA+Pg0KPiA+PiArICAgIEZyZWVQb29sIChGaWxlTmFtZSk7 DQo+ID4+DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+ICAgICByZXR1cm4gU3Rh dHVzOw0KPiA+Pg0KPiA+PiBAQCAtMzM0LDEzICszMzksMTMgQEAgTG9hZFVuaXRUZXN0Q2FjaGUg KA0KPiA+PiAgICAgT1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAqU2F2ZVN0YXRlU2l6 ZQ0KPiA+Pg0KPiA+PiAgICAgKQ0KPiA+Pg0KPiA+PiAgIHsNCj4gPj4NCj4gPj4gLSAgRUZJX1NU QVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4+DQo+ID4+IC0gIEVGSV9ERVZJQ0VfUEFU SF9QUk9UT0NPTCAgKkZpbGVEZXZpY2VQYXRoOw0KPiA+Pg0KPiA+PiAtICBTSEVMTF9GSUxFX0hB TkRMRSAgICAgICAgIEZpbGVIYW5kbGU7DQo+ID4+DQo+ID4+IC0gIEJPT0xFQU4gICAgICAgICAg ICAgICAgICAgSXNGaWxlT3BlbmVkOw0KPiA+Pg0KPiA+PiAtICBVSU5UNjQgICAgICAgICAgICAg ICAgICAgIExhcmdlRmlsZVNpemU7DQo+ID4+DQo+ID4+IC0gIFVJTlROICAgICAgICAgICAgICAg ICAgICAgRmlsZVNpemU7DQo+ID4+DQo+ID4+IC0gIFZPSUQgICAgICAgICAgICAgICAgICAgICAg KkJ1ZmZlcjsNCj4gPj4NCj4gPj4gKyAgRUZJX1NUQVRVUyAgICAgICAgIFN0YXR1czsNCj4gPj4N Cj4gPj4gKyAgQ0hBUjE2ICAgICAgICAgICAgICpGaWxlTmFtZTsNCj4gPj4NCj4gPj4gKyAgU0hF TExfRklMRV9IQU5ETEUgIEZpbGVIYW5kbGU7DQo+ID4+DQo+ID4+ICsgIEJPT0xFQU4gICAgICAg ICAgICBJc0ZpbGVPcGVuZWQ7DQo+ID4+DQo+ID4+ICsgIFVJTlQ2NCAgICAgICAgICAgICBMYXJn ZUZpbGVTaXplOw0KPiA+Pg0KPiA+PiArICBVSU5UTiAgICAgICAgICAgICAgRmlsZVNpemU7DQo+ ID4+DQo+ID4+ICsgIFZPSUQgICAgICAgICAgICAgICAqQnVmZmVyOw0KPiA+Pg0KPiA+Pg0KPiA+ Pg0KPiA+PiAgICAgSXNGaWxlT3BlbmVkID0gRkFMU0U7DQo+ID4+DQo+ID4+ICAgICBCdWZmZXIg ICAgICAgPSBOVUxMOw0KPiA+Pg0KPiA+PiBAQCAtMzU2LDEzICszNjEsMTMgQEAgTG9hZFVuaXRU ZXN0Q2FjaGUgKA0KPiA+PiAgICAgLy8gRGV0ZXJtaW5lIHRoZSBwYXRoIGZvciB0aGUgY2FjaGUg ZmlsZS4NCj4gPj4NCj4gPj4gICAgIC8vIE5PVEU6IFRoaXMgZGV2cGF0aCBpcyBhbGxvY2F0ZWQg YW5kIG11c3QgYmUgZnJlZWQuDQo+ID4+DQo+ID4+ICAgICAvLw0KPiA+Pg0KPiA+PiAtICBGaWxl RGV2aWNlUGF0aCA9IEdldENhY2hlRmlsZURldmljZVBhdGggKEZyYW1ld29ya0hhbmRsZSk7DQo+ ID4+DQo+ID4+ICsgIEZpbGVOYW1lID0gR2V0Q2FjaGVGaWxlTmFtZSAoRnJhbWV3b3JrSGFuZGxl KTsNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gICAgIC8vDQo+ID4+DQo+ID4+ICAgICAvLyBOb3cg dGhhdCB3ZSBrbm93IHRoZSBwYXRoIHRvIHRoZSBmaWxlLi4uIGxldCdzIG9wZW4gaXQgZm9yDQo+ IHdyaXRpbmcuDQo+ID4+DQo+ID4+ICAgICAvLw0KPiA+Pg0KPiA+PiAtICBTdGF0dXMgPSBTaGVs bE9wZW5GaWxlQnlEZXZpY2VQYXRoICgNCj4gPj4NCj4gPj4gLSAgICAgICAgICAgICAmRmlsZURl dmljZVBhdGgsDQo+ID4+DQo+ID4+ICsgIFN0YXR1cyA9IFNoZWxsT3BlbkZpbGVCeU5hbWUgKA0K PiA+Pg0KPiA+PiArICAgICAgICAgICAgIEZpbGVOYW1lLA0KPiA+Pg0KPiA+PiAgICAgICAgICAg ICAgICAmRmlsZUhhbmRsZSwNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgRUZJX0ZJTEVfTU9E RV9SRUFELA0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgICAwDQo+ID4+DQo+ID4+IEBAIC00MDcs OCArNDEyLDggQEAgRXhpdDoNCj4gPj4gICAgIC8vDQo+ID4+DQo+ID4+ICAgICAvLyBGcmVlIGFs bG9jYXRlZCBidWZmZXJzDQo+ID4+DQo+ID4+ICAgICAvLw0KPiA+Pg0KPiA+PiAtICBpZiAoRmls ZURldmljZVBhdGggIT0gTlVMTCkgew0KPiA+Pg0KPiA+PiAtICAgIEZyZWVQb29sIChGaWxlRGV2 aWNlUGF0aCk7DQo+ID4+DQo+ID4+ICsgIGlmIChGaWxlTmFtZSAhPSBOVUxMKSB7DQo+ID4+DQo+ ID4+ICsgICAgRnJlZVBvb2wgKEZpbGVOYW1lKTsNCj4gPj4NCj4gPj4gICAgIH0NCj4gPj4NCj4g Pj4NCj4gPj4NCj4gPj4gICAgIGlmIChJc0ZpbGVPcGVuZWQpIHsNCj4gPj4NCj4gPj4gLS0NCj4g Pj4gMi40MC4xLndpbmRvd3MuMQ0K