From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.68]) by mx.groups.io with SMTP id smtpd.web08.7575.1635523308018717782 for ; Fri, 29 Oct 2021 09:01:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=TNTqWkQS; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.94.68, mailfrom: bobm@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fc0qr5w4iSKbcIO8fBBHJyQw8hFT4lNn5HfvIBL6G9PPZuhh0jRKaSFywlvtAIFDiVXGnNHOWDFreUX3jCIXp3ytowHqHUp5oYLPw05/kE5svmwBYLokkZoDeIZ8RAdueq4jIK7rZ5HoYO/XecWEpYQc7AcGE4AW//plGoJNWQjdiiUqRBs/tlMm1EDTTfwDS3oDlMCFVPV+qId7MEaYcxVkJcw+WQvYejZykHkmJfBCQvduf+8oCTLcG8z5ye3iPlhXJGla0lsQ8sZVN+PTQzciqAeGkVkJslucUdN29g7OEKdvhRAF6OlUMsOOwTpDp9Qb/yI/cfs8MGz4k2wwqQ== 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=uCJfWoU+r8OVZ02x7XWBHMfDrDVgyW+WfA7/iftXzzs=; b=B+fSLRHcSRL/A2s22Sqz/TVMcbtjWnW9YvjcPLRvZwvcFP7mFe9466U/QXzlM3JJy7zMsvEnkjB34PZDMzLCBnpp4Lta3w3n/six8RWZetVtS9mscrAbzgzEBVZ9nUSe5iJDm0FSwqaaGvOubb9PKoRkFenAQ96qfjqehVzDSVwUeHKkjydtllpucv5NqL3sHaS00+o7zDYalAvB4sUSI816jeD48/xNL0XzkYXf0psSjx/RTn5QZ2JHh2Z6gYSiuKEDvuwpx2T93NTDNyGM1iqavh0lbE4HhcdPz9AwXt33CDUxBan6qh5vBcWtNEoVlIevrT2gNaRbqURhYq52zQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uCJfWoU+r8OVZ02x7XWBHMfDrDVgyW+WfA7/iftXzzs=; b=TNTqWkQSCbz6SeG8r3nm9w8GUc5GyjrqY7UyQQvBJNocfKpRZ9aMlLC7A8l/kLZKYRXNdkZqtB9ublQd84c+gu7uxhuUUOdBMbrfpiA7fPQ1tvO9EXOFbgr+dmzeURQJipVNmWqazRuJE5gO1/iDOO52Q2kCr6dEtnprU7k0xq5QRhacQp4NkjYRSvcDUbXIuaazaWjSD5gJXshO6kZlhYOA7htE94dbwYpJWCVcfnQLnkjXZf/jSUvzhgwW76xmLH2Iu1Ouo1UZY+9OHv5WP1YzuO60+I7Sc+rhaQKN0l5csrr/WMJIlGbYxkgzw643K4yH3XMyGE7h0+muhAOffw== Received: from DM6PR12MB4779.namprd12.prod.outlook.com (2603:10b6:5:172::23) by DM5PR12MB1579.namprd12.prod.outlook.com (2603:10b6:4:c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.20; Fri, 29 Oct 2021 16:01:45 +0000 Received: from DM6PR12MB4779.namprd12.prod.outlook.com ([fe80::755d:82d1:d79b:48b4]) by DM6PR12MB4779.namprd12.prod.outlook.com ([fe80::755d:82d1:d79b:48b4%7]) with mapi id 15.20.4628.020; Fri, 29 Oct 2021 16:01:45 +0000 From: "Bob Morgan" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: 'Jian J Wang' , 'Guomin Jiang' Subject: =?UTF-8?B?UmU6IFtlZGsyLWRldmVsXSDlm57lpI06IFtQQVRDSF0gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IENhcHN1bGUgb24gRGlzayBmaWxlIG5hbWUgY2Fwc3VsZQ==?= Thread-Topic: =?utf-8?B?W2VkazItZGV2ZWxdIOWbnuWkjTogW1BBVENIXSBNZGVNb2R1bGVQa2cvRHhl?= =?utf-8?B?Q2Fwc3VsZUxpYkZtcDogQ2Fwc3VsZSBvbiBEaXNrIGZpbGUgbmFtZSBjYXBz?= =?utf-8?Q?ule?= Thread-Index: AQHXxFx5/tFKOEJTNUGtphoXCQwBLqvpRNgAgADtHuA= Date: Fri, 29 Oct 2021 16:01:45 +0000 Message-ID: References: <40287570ea45e6e5724c00657a7f9ef99f8693d0.1634587878.git.bobm@nvidia.com> <00a501d7cc66$c954fe40$5bfefac0$@byosoft.com.cn> In-Reply-To: <00a501d7cc66$c954fe40$5bfefac0$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4843f844-b900-4722-e771-08d99af56844 x-ms-traffictypediagnostic: DM5PR12MB1579: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:127; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: h09whFs+oXgCxv8QBTce1frPCLBo1anlkrP+V6Bj89cJLVBuTljq8hYi9fEBMOcwFaeF9P6RQiXJlyhsf2SUPWBKliHv4yZS9tBgBhQwQSPQMTbfKGjIjplWpRMmA5xAVtlLkFaeUjzSPFBWNZDb5MclAkiQ6WsNq/uzDtgUEgxXWNGqqYL6PqHBgIaY6I+HQKyeDx+GRcBdPNYJCSHLAIr4+9OOrMLSrfzMw1uGjoY5vEBR2GnUatQWjNdxe+oFHII4WAZuV6kMJ8L8RrsyXabcLteRAK7KGQmUPe+vagqEMDQbNqusdvY41l5rgh8EGnUDlNDQ6p/e0SEY3RmctnPlkXemXMgwyfT3JV0eOdj4tmOSGwVIQR75b+cPEcp0eQe5XLjwiibuUOplxJzJmoaetdlcQm+R7ZQBuFXniCEIFT5RvGknCFcD0pQ6csoodGkCdTB2GLuAONNJSQExkW3s8k7J/KkzQwzW1F+InrFeRpRYQ+V4/jbPQqt4olgsvSj1jjdEZ/FaAbnwa7NUXivehppct01vJgYSlBr7hjksI1Uze6pHLYmu2ugBh3PwvDg5ZNiUoJy1UVa6ykkkb68x1nNMTGsHlx6xEQ2v41O2mDDMM4cTLG1GYbbU54d4SPs5wYAy5X0UkwGLNdYZENY03PyQjM8MApgUZm9ZIVkyUYYU/HoCMsAk7egjuWs2GxU1l+Vqv5+7nzWUMKeEDDAz2HXKQKz/jSoxAgPNkYBztNsEd8zw3A/rmsNq+NPtwPS/HOQUgjHX0vlA8+tzzSxmykvPtxlw2vv8YO0i8lY= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB4779.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(54906003)(52536014)(83380400001)(66946007)(5660300002)(224303003)(38100700002)(64756008)(8936002)(66556008)(26005)(55016002)(66446008)(966005)(76116006)(186003)(71200400001)(6506007)(4326008)(122000001)(2906002)(9686003)(38070700005)(33656002)(110136005)(508600001)(53546011)(86362001)(66476007)(7696005)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c2VHa1FtVzY2K1kvUkdEWG1BNVlMcU1Kc2x6Sm5WYW1zcTBkaGZONllkWkt4?= =?utf-8?B?Ung0UHhySXY5TGZVVk44Z3ZtZnF1NUdhcHhNV1F0UmNBZFgwd3hTS3JZU1pp?= =?utf-8?B?c3kxbHB2c1ZzeUNOZFJQSC9HcW5FWlhMWWZQQW1vTHhvVHl3YW9ZNFFYVklu?= =?utf-8?B?SWF5R2xCRGVuYWwrV3M3Y0FvWll6bUpzMXNiTDBFdEhHYXlDOHZTSENFKzZz?= =?utf-8?B?aS9yN1ZsZm5lL1FsLzc1L2MzdTJsNkdZVUI2SWNJTE5TdU1HRzFwYSsxMC81?= =?utf-8?B?MTlLUmhDY0I2NEI3UUpHTUFHdWVmUmsveTB4NzZ2TjBsMmR4YmVxeWtpNVNt?= =?utf-8?B?Q21qdE9qYUVzaVFFUVYvelZwSzVaWUk2aXF6K1Q2am1ldWFibU1PN21BdTdl?= =?utf-8?B?OXRDRlRWN1d3MDlWN2VxczNoNzZaTHBlNjVwTnRMa3FqQllUWTB5N0E1WEo2?= =?utf-8?B?TVk2bmp5Q0Nic2RzUXJnTFlRaTd4dXdLQ0lYcENQazJHVGZ3WmtRTW5LWmIr?= =?utf-8?B?Q2FTek9LY3hVMTBzWTNSdWFlZU5abkNmMlhGdnhUQythZE9sVUNXYlRxcit4?= =?utf-8?B?TGo2UWtlK05Zd2I5ZVR2Uk13VVdZV204NTRnSHJuajdjc0hhdEUwY0FlaUl4?= =?utf-8?B?bm4xeTFVd0k5WlQ5SGlCdjZuNUNNck11QXV4YStlZlhhZHloUlBtaSt3Vmth?= =?utf-8?B?eXdXUnRDbStrNGJ0SUNDSlMxKzdsdWpsTEpmMGdLN1EzNE9kY0ZQeHhKZWVJ?= =?utf-8?B?b1YraEVIRkNjUDl0aW5zMGZiNGV3bzdONG5HMi8xZ2I0TFJBZEh3cHVvU0l2?= =?utf-8?B?UkY0Mk9wMWxiUzdVbGcvUWdhUGNrWklXYmFlM0ZWRGI1TWtPK0NhMGVMakxL?= =?utf-8?B?dWVaQjdud1hJcjBFWThESDkzSlhpa3M3aVN1TTZmLzZ3RjQ5eVZoSEI4Ylpy?= =?utf-8?B?dTNNQkRBMTJLR2QrTEl4UkdsSm94RHhVZVlrb1NRVEo4OG1RdW13RGJBb0s1?= =?utf-8?B?QjBBQjlLZTdWcnpyM0hlWlUwZDFmRVNuQ1BhWDVLanF1VmVaZ0FLYUdnRjk5?= =?utf-8?B?WlFUNW1aWW1QL2xkdXBLdTVieXgwS3A5TmduWDhFcFVZb3JJbENNU1oyZklz?= =?utf-8?B?b1NEU0ROeXhsWC9aUVhXK051WDJpeE5kOElURCthUjBOOVNWWTFpcm55QUM3?= =?utf-8?B?QndWNjgrWVMyVkN4bit2YysxMGdZVjdyckhGT2llYXh6RWVycWFsMTloS3VB?= =?utf-8?B?cVBwbGt2bi96M2ZUTEw4b2tNbVo0Mk1zY1cvcHBnRnBPc2Jia1FjSmlNdnhB?= =?utf-8?B?SSsvODdEbWZpV2VkNGY2eXFmNEhIc2g4dEVNOTZHWDZ5RE56MGJuYlRWbzd5?= =?utf-8?B?NDNwVitZSWI3eVQwektGK3BkVnVOa3RhdGNkYWt6Y2d3WThYVkc4VkEyQmEy?= =?utf-8?B?dWdqUndwaExtZ05GYVJYcGFYWk9FR1U3eS9EbjFuamxQL1ZOVndLUU01YmRJ?= =?utf-8?B?SXFzRVQ0Zm0yaDZCMEZIRGIyUGN1RUZZZnJ0TExGWkErWFZPZUp1ZDl5N2xD?= =?utf-8?B?RkJ3ZEh2WkVLbHB0VWY5YjRIVjBPaXJxZHhROW1hcEpwWjQ1OS9ZNkdWeEkv?= =?utf-8?B?NUFKN2xDSDlOLzBMeWtNaktlT0VrWnI1cnV0bjR2RVJ2QmVpV3M1eTd4QXVJ?= =?utf-8?B?ZkIvai9wVlNyMUJYa1JJaUFFU3U0UGp6Witvb1VJQ1BvZXJNVUQ3RTUvZ2ty?= =?utf-8?B?Wll2R1AwaVo1a3VmVXgyQllYN0I4dkNoMGppQXdsSTRvdy93dVdvbDVUNzlH?= =?utf-8?B?Y3FKOFh3d2hJTkE0Wm1Pd21sUDRFZm5uWEoyQUIybXZHUWlGU0lyTFlYREhO?= =?utf-8?B?cFEweDlHYzlvZ0FvNHA5RzB3emJpRnZOdEFuQndBOHNMaXBUWDloMVk4My9z?= =?utf-8?B?OW5ZWVN6MUpvVXV1SGJDb3FWTnhaUzZWbUhHbE16Y2d0SEtkTUhBT2lwSlox?= =?utf-8?B?THVoQlF4bldQaG9vaGUrSE53eU5XSlBSZzYyQ0pacnFXdXArUk9nZENROGhn?= =?utf-8?B?ck5WM0xYZENjTnIwZGRGK0tsQ0NqUlZ0Rzk1dz09?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4779.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4843f844-b900-4722-e771-08d99af56844 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2021 16:01:45.5207 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EnjYdHJSdhfADK3E8qKVz1AHu6gPRxjsDioAKpkD/QMXgt4S1zeRbR6NSUSDHhKE X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1579 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpCdWlsZFNnIGlzIHN1cHBvc2VkIHRvIG1lYW4gJ0J1aWxkIFNjYXR0ZXIt R2F0aGVyJy4gIE1heWJlICdCdWlsZEdhdGhlcicgd291bGQgYmUgYSBiZXR0ZXIgZ290byBsYWJl bCBzaW5jZSBpdCBtYXRjaGVzIHRoZSBjb21tZW50IGFuZCB0aGUgZnVuY3Rpb24/DQoNCkxldCBt ZSBrbm93Lg0KDQpUaGFua3MsDQoNCi1ib2INCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBC ZWhhbGYgT2YgZ2FvbGltaW5nIHZpYSBncm91cHMuaW8NClNlbnQ6IFRodXJzZGF5LCBPY3RvYmVy IDI4LCAyMDIxIDc6NDYgUE0NClRvOiBCb2IgTW9yZ2FuIDxib2JtQG52aWRpYS5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KQ2M6ICdKaWFuIEogV2FuZycgPGppYW4uai53YW5nQGludGVsLmNv bT47ICdHdW9taW4gSmlhbmcnIDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0KU3ViamVjdDogW2Vk azItZGV2ZWxdIOWbnuWkjTogW1BBVENIXSBNZGVNb2R1bGVQa2cvRHhlQ2Fwc3VsZUxpYkZtcDog Q2Fwc3VsZSBvbiBEaXNrIGZpbGUgbmFtZSBjYXBzdWxlDQoNCkV4dGVybmFsIGVtYWlsOiBVc2Ug Y2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQoNCg0KQm9iOg0KDQoNCj4gLS0t LS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEJvYiBNb3JnYW4gPGJvYm1AbnZpZGlh LmNvbT4NCj4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0MTDmnIgxOeaXpSA0OjEyDQo+IOaUtuS7tuS6 ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g5oqE6YCBOiBCb2IgTW9yZ2FuIDxib2JtQG52aWRp YS5jb20+OyBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgDQo+IExpbWluZyBH YW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEd1b21pbiBKaWFuZyANCj4gPGd1b21pbi5q aWFuZ0BpbnRlbC5jb20+DQo+IOS4u+mimDogW1BBVENIXSBNZGVNb2R1bGVQa2cvRHhlQ2Fwc3Vs ZUxpYkZtcDogQ2Fwc3VsZSBvbiBEaXNrIGZpbGUgbmFtZSANCj4gY2Fwc3VsZQ0KPg0KPiBFbmhh bmNlIFJlbG9jYXRlQ2Fwc3VsZVRvUmFtKCkgdG8gc2tpcCBjcmVhdGlvbiBvZiB0aGUgQ2Fwc3Vs ZSBvbiBEaXNrIA0KPiBmaWxlIG5hbWUgY2Fwc3VsZSBpZiBQY2RTdXBwb3J0VXBkYXRlQ2Fwc3Vs ZVJlc2V0IGZlYXR1cmUgaXMgbm90IGVuYWJsZWQuDQo+IFRoaXMgYXZvaWRzIGFuIEVGSV9VTlNV UFBPUlRFRCByZXR1cm4gc3RhdHVzIGZyb20gVXBkYXRlQ2Fwc3VsZSgpIHdoZW4gDQo+IHRoZSBm aWxlIG5hbWUgY2Fwc3VsZSBpcyBlbmNvdW50ZXJlZCBhbmQgUGNkU3VwcG9ydFVwZGF0ZUNhcHN1 bGVSZXNldCANCj4gaXMgRkFMU0UuDQo+DQo+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdA aW50ZWwuY29tPg0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0K PiBDYzogR3VvbWluIEppYW5nIDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0KPiBTaWduZWQtb2Zm LWJ5OiBCb2IgTW9yZ2FuIDxib2JtQG52aWRpYS5jb20+DQo+IC0tLQ0KPiAgLi4uL0xpYnJhcnkv RHhlQ2Fwc3VsZUxpYkZtcC9DYXBzdWxlT25EaXNrLmMgIHwgMTkNCj4gKysrKysrKysrKysrKysr Ky0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p DQo+DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVDYXBzdWxlTGliRm1w L0NhcHN1bGVPbkRpc2suYw0KPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJG bXAvQ2Fwc3VsZU9uRGlzay5jDQo+IGluZGV4IDRjMzJjNmNkY2YuLmU2NWUzMzU1ODUgMTAwNjQ0 DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvQ2Fwc3VsZU9u RGlzay5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvQ2Fw c3VsZU9uRGlzay5jDQo+IEBAIC0xNzM5LDYgKzE3MzksNyBAQCBSZWxvY2F0ZUNhcHN1bGVUb1Jh bSAoDQo+ICAgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICpTdHJpbmdCdWY7DQo+ICAg IFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1NpemU7DQo+ICAgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgIFRvdGFsU3RyaW5nU2l6ZTsNCj4gKyAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAgICAgQ2Fwc3VsZXNUb1Byb2Nlc3M7DQo+DQo+ICAgIENhcHN1bGVPbkRp c2tCdWYgPSBOVUxMOw0KPiAgICBCbG9ja0Rlc2NyaXB0b3JzID0gTlVMTDsNCj4gQEAgLTE3Nzgs NiArMTc3OSwxMyBAQCBSZWxvY2F0ZUNhcHN1bGVUb1JhbSAoDQo+ICAgICAgVG90YWxTdHJpbmdT aXplICs9IFN0clNpemUNCj4gKENhcHN1bGVPbkRpc2tCdWZbSW5kZXhdLkZpbGVJbmZvLT5GaWxl TmFtZSk7DQo+ICAgIH0NCj4NCj4gKyAgLy8gSWYgUGVyc2lzdCBBY3Jvc3MgUmVzZXQgaXNuJ3Qg c3VwcG9ydGVkLCBza2lwIHRoZSBmaWxlIG5hbWUgDQo+ICsgc3RyaW5ncw0KY2Fwc3VsZQ0KPiAr ICBpZiAoIUZlYXR1cmVQY2RHZXQgKFBjZFN1cHBvcnRVcGRhdGVDYXBzdWxlUmVzZXQpKSB7DQo+ ICsgICAgQ2Fwc3VsZXNUb1Byb2Nlc3MgPSBDYXBzdWxlT25EaXNrTnVtOw0KPiArICAgIGdvdG8g QnVpbGRTZzsNCj4gKyAgfQ0KPiArICBDYXBzdWxlc1RvUHJvY2VzcyA9IENhcHN1bGVPbkRpc2tO dW0gKyAxOw0KPiArDQo+ICAgIEZpbGVOYW1lQ2Fwc3VsZSA9IEFsbG9jYXRlWmVyb1Bvb2wgKHNp emVvZiAoRUZJX0NBUFNVTEVfSEVBREVSKSArIA0KPiBUb3RhbFN0cmluZ1NpemUpOw0KPiAgICBp ZiAoRmlsZU5hbWVDYXBzdWxlID09IE5VTEwpIHsNCj4gICAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiRmFpbCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG5hbWUgDQo+IGNhcHN1bGUuXG4iKSk7IEBA IC0xODA0LDE4ICsxODEyLDIzIEBAIFJlbG9jYXRlQ2Fwc3VsZVRvUmFtICgNCj4gICAgLy8NCj4g ICAgLy8gMy4gQnVpbGQgR2F0aGVyIGxpc3QgZm9yIHRoZSBjYXBzdWxlcw0KPiAgICAvLw0KPiAt ICBTdGF0dXMgPSBCdWlsZEdhdGhlckxpc3QgKENhcHN1bGVCdWZmZXIsIENhcHN1bGVTaXplLCAN Cj4gQ2Fwc3VsZU9uRGlza051bQ0KKw0KPiAxLCAmQmxvY2tEZXNjcmlwdG9ycyk7DQo+ICtCdWls ZFNnOg0KDQpXaGF0IGRvZXMgJ0J1aWxkU2cnIG1lYW4/DQoNClRoYW5rcw0KTGltaW5nDQo+ICsg IFN0YXR1cyA9IEJ1aWxkR2F0aGVyTGlzdCAoQ2Fwc3VsZUJ1ZmZlciwgQ2Fwc3VsZVNpemUsDQpD YXBzdWxlc1RvUHJvY2VzcywNCj4gJkJsb2NrRGVzY3JpcHRvcnMpOw0KPiAgICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpIHx8IEJsb2NrRGVzY3JpcHRvcnMgPT0gTlVMTCkgew0KPiAgICAgIEZyZWVQ b29sIChDYXBzdWxlQnVmZmVyKTsNCj4gICAgICBGcmVlUG9vbCAoQ2Fwc3VsZVNpemUpOw0KPiAt ICAgIEZyZWVQb29sIChGaWxlTmFtZUNhcHN1bGUpOw0KPiArICAgIGlmIChGaWxlTmFtZUNhcHN1 bGUgIT0gTlVMTCkgew0KPiArICAgICAgRnJlZVBvb2wgKEZpbGVOYW1lQ2Fwc3VsZSk7DQo+ICsg ICAgfQ0KPiAgICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gICAgfQ0KPg0KPiAg ICAvLw0KPiAgICAvLyA0LiBDYWxsIFVwZGF0ZUNhcHN1bGUoKSBzZXJ2aWNlDQo+ICAgIC8vDQo+ IC0gIFN0YXR1cyA9IGdSVC0+VXBkYXRlQ2Fwc3VsZSgoRUZJX0NBUFNVTEVfSEVBREVSICoqKSBD YXBzdWxlQnVmZmVyLCANCj4gQ2Fwc3VsZU9uRGlza051bSArIDEsIChVSU5UTikgQmxvY2tEZXNj cmlwdG9ycyk7DQo+ICsgIFN0YXR1cyA9IGdSVC0+VXBkYXRlQ2Fwc3VsZSAoKEVGSV9DQVBTVUxF X0hFQURFUiAqKikgQ2Fwc3VsZUJ1ZmZlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDYXBzdWxlc1RvUHJvY2VzcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoVUlOVE4pIEJsb2NrRGVzY3JpcHRvcnMpOw0KPg0KPiAgICByZXR1cm4gU3RhdHVzOw0KPiAg fQ0KPiAtLQ0KPiAyLjE3LjENCg0KDQoNCg0KDQoNCg0KDQo=