From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by mx.groups.io with SMTP id smtpd.web10.252.1576773507059315743 for ; Thu, 19 Dec 2019 08:38:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=n1 header.b=hexrt+8D; spf=pass (domain: nvidia.com, ip: 216.228.121.65, mailfrom: ashishsingha@nvidia.com) Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Thu, 19 Dec 2019 08:38:16 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Thu, 19 Dec 2019 08:38:26 -0800 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Thu, 19 Dec 2019 08:38:26 -0800 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 19 Dec 2019 16:38:25 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 19 Dec 2019 16:38:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q7ZKSmQjE/UYx+yxHWaAjm5ofneJlFMHWszSq62oxWv9jWT2/nQIQ2jFpmxeWhXI/8rXLa/SLemS8BOWHv166Xlom47upJ6IaB2L+LFLTjYxKAOMtow5tWkc6MG9kykC1GLGa1iNIfyYeOW+jJR8dcpwzD3tACjbtsrVBrA/mS1UkPW9Z4m8bzsAYYZnaC01Czv8eUYViSmikIPqrHSYAhmFtuyEYJKq6Uq+GZfHINqR+xD62V1PaMcotOnwXMYEJ0L4d5RlPlXtpLaTQ3w86vcnzwBjXv4YlcJ6uoiGTD2NvZn426GhQ849HUHN7l9CtG9Kpgk5UO5hPb8BLhhooQ== 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-SenderADCheck; bh=BuH8JWFPVQxZD0nRf2hGP6kbyqm7/3gILEQ4AOpbo1k=; b=SCSUdjkz49cJDJI3oAlXQLCxbybrP3qnM/MGmaivheR4ZseB+hxOmD61X/vSXa5gufKSYsmOROLCmDoS3/0qTR/PTSQCSbvXfPa5qySrJxFkH7J2LZLQpBYzZMrAkDk3IEijom8IKqJ0lWHSlcgRO6m7KUIQOGfoEs5aFPnhAssVYJI4E7hEkfXXcUBzSjTTlxHZ6lgCxrB1AH/XeOh9sBnn+217G5F2Mp4znIO34vUmeTxs69TCb8tbX3rZVRzGDEu1vVwrRzaBCM3UTbuUuGevNgBr77i+Jc6fut1UnFhT5cn6dFimlOXa+5BMr0cSSfNqkPXMO8CXrZtcpG8HEA== 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 Received: from DM6PR12MB3324.namprd12.prod.outlook.com (20.178.31.154) by DM6PR12MB2876.namprd12.prod.outlook.com (20.179.71.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14; Thu, 19 Dec 2019 16:38:24 +0000 Received: from DM6PR12MB3324.namprd12.prod.outlook.com ([fe80::d59b:7923:689f:bdc0]) by DM6PR12MB3324.namprd12.prod.outlook.com ([fe80::d59b:7923:689f:bdc0%6]) with mapi id 15.20.2559.015; Thu, 19 Dec 2019 16:38:24 +0000 From: "Ashish Singhal" To: "Wang, Sunny (HPS SW)" , "devel@edk2.groups.io" , "ray.ni@intel.com" , "Wang, Jian J" , "Wu, Hao A" , "Gao, Zhichao" , "Kinney, Michael D" , "'Andrew Fish (afish@apple.com)'" CC: "Spottswood, Jason" Subject: Re: [edk2-devel] [PATCH v4] MdeModulePkg: Add EDK2 Platform Boot Manager Protocol Thread-Topic: [edk2-devel] [PATCH v4] MdeModulePkg: Add EDK2 Platform Boot Manager Protocol Thread-Index: AQHVtdbm21dHZTc1wEqzr9I4sbpw6qfAtC6AgADPwwCAACUrUA== Date: Thu, 19 Dec 2019 16:38:24 +0000 Message-ID: References: <734D49CCEBEEF84792F5B80ED585239D5C3A269D@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Enabled=True; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SiteId=43083d15-7273-40c1-b7db-39efd9ccc17a; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Owner=ashishsingha@nvidia.com; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_SetDate=2019-12-19T16:38:21.5703106Z; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Name=Unrestricted; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Application=Microsoft Azure Information Protection; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_ActionId=8234ccba-d219-48a3-be4c-97374dcc7993; MSIP_Label_6b558183-044c-4105-8d9c-cea02a2a3d86_Extended_MSFT_Method=Automatic authentication-results: spf=none (sender IP is ) smtp.mailfrom=ashishsingha@nvidia.com; x-originating-ip: [8.46.90.104] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 03b4a845-be32-45d6-02ff-08d784a1ddef x-ms-traffictypediagnostic: DM6PR12MB2876: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 0256C18696 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(396003)(136003)(366004)(346002)(39860400002)(50084003)(189003)(199004)(13464003)(186003)(966005)(7696005)(5660300002)(66946007)(66446008)(26005)(66476007)(33656002)(76116006)(2906002)(19627235002)(8936002)(9686003)(52536014)(55016002)(6506007)(86362001)(478600001)(81156014)(71200400001)(81166006)(53546011)(110136005)(30864003)(64756008)(66556008)(316002)(296002)(8676002)(4326008)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB2876;H:DM6PR12MB3324.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: nvidia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qmh8cXAToOs4dWGX1QG9mnjk9RJMqJUPM86QJoLQAJhG5g88QZhYZvkDdRpN2cAkTUowNWZoTPfklPi1Gz/v5OjmxSHk/w+xJ8Fnb5oUJuRORIn+f6zw0iNDg8bU5qmt6pYjoma3XMeNE8Xb3xEJP5MCyB7SMGBo4u61TH7MlWb0vBjJrIMR4M0XIRf/JIVAxCOhJTkFLhKBQN/IhBCCfoNzsSHw9cZnB8lVxaN5/AnciSypijc9g6D1VJJgDryMkU8O90mCec+tnYPTsQXG9XRrwsYmtL83rEYj1GZT2rzcnBJvBlkvTCNftVYNJIQe1k+I8ebFVECpjuEirr+tIMpQSjAfIu+TVLrSmsQxodGDKRmLaAeCylIaQ0Ee8pd3H1xtKPkWmTbG30nwyNCjGn5Z4S1FcZwghiCtA2Lyc370Hok+LrT+0Cnp533JqVn3XbER0dpGFM/GOvDe8WcNxXQRg3TY7790gJH3LMa1xoEG9KNbTyJ8K9Ghl1lEk0I2T7FthCRvX7M3X5VTfKFUxqfXslfBm7TZH+rsAReRzjm+yNryt9ytFFlmlhK8JP+I/T1gaIHl4+27AqClbCcWDg== x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 03b4a845-be32-45d6-02ff-08d784a1ddef X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2019 16:38:24.3154 (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: Px89G8/wTaq+C1Q3cx5flWJ9q9GRxWTYwFMrmgRioFR/9PpXQN9sf2rrF8o0+I/2n3GNqilVDzP9xxJ+6Um4UA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2876 Return-Path: ashishsingha@nvidia.com X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1576773496; bh=cSJhKz594Y0sVfU1alFvjIRQytI0iGR46i+wyjsyznI=; h=X-PGP-Universal:ARC-Seal:ARC-Message-Signature: ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic: Thread-Index:Date:Message-ID:References:In-Reply-To: Accept-Language:X-MS-Has-Attach:X-MS-TNEF-Correlator:msip_labels: authentication-results:x-originating-ip:x-ms-publictraffictype: x-ms-office365-filtering-correlation-id:x-ms-traffictypediagnostic: x-microsoft-antispam-prvs:x-ms-oob-tlc-oobclassifiers: x-forefront-prvs:x-forefront-antispam-report:received-spf: x-ms-exchange-senderadcheck:x-microsoft-antispam: x-microsoft-antispam-message-info:x-ms-exchange-transport-forked: MIME-Version:X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg: Content-Language:Content-Type:Content-Transfer-Encoding; b=hexrt+8D/Q70t5j0O/b8HUd9jKNeeAnKHn39JKjFndQxu7xpsaIJ1sbQlIbL1AFH8 XemvZyHkob72hE8bLwvv67BR7u2FsPrHB9fdUKGVfbPVqNQcPH8Rfr85N116zUFFA+ H/sKVFjjJ6MKG22hjTMWPV7c5XV8wxVvsj29Z2Et3JR1kTb0LZZRjr2vFgj1UvQGgX cYwd8ZJhrcwN/OnMbW0X4y/RtYoYYpVLgXIVmowx36wOQhuAPbmb8/ct4d4KtiHUY7 2COTCZpwwab3tLDAjfjCI23rfu5W7r24zkdLZPdQpMPLZavJKnrIPp9DbkvAV2v0zg J46+R60pTlhDg== Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU3VubnksDQoNCkkgdGhvdWdodCBhYm91dCBrZWVwaW5nIHRoZSBhcmd1bWVudHMgdGhlIHdh eSB5b3Ugc3VnZ2VzdGVkIGJ1dCB0aGVuIGRlY2lkZWQgYWdhaW5zdCBpdCBzbyB0aGF0IHRoZSBh dXRvIGVudW1lcmF0ZWQgYm9vdCBvcHRpb25zIGxpc3QgaXMgbm90IHRhbXBlcmVkIHdpdGggaW4g Y2FzZSB0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gaGl0cyBhbiBlcnJvciBpbiBiZXR3ZWVu LiBUaGlzIHdheSwgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IsIHdlIGNhbiB1c2Ug dGhlIGxpc3Qgd2UgcGFzc2VkIGluIGFuZCBjb250aW51ZSBib290Lg0KDQpJIGFtIE9LIHdpdGgg YW55IHN1Z2dlc3RlZCBuYW1lIGNoYW5nZXMuDQoNClRoYW5rcw0KQXNoaXNoDQoNCi0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXYW5nLCBTdW5ueSAoSFBTIFNXKSA8c3Vubnl3YW5n QGhwZS5jb20+IA0KU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDE5LCAyMDE5IDc6MjMgQU0NClRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgcmF5Lm5pQGludGVsLmNvbTsgV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEdh bywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgJ0FuZHJldyBGaXNoIChhZmlzaEBhcHBsZS5jb20p JyA8YWZpc2hAYXBwbGUuY29tPg0KQ2M6IEFzaGlzaCBTaW5naGFsIDxhc2hpc2hzaW5naGFAbnZp ZGlhLmNvbT47IFdhbmcsIFN1bm55IChIUFMgU1cpIDxzdW5ueXdhbmdAaHBlLmNvbT47IFNwb3R0 c3dvb2QsIEphc29uIDxqYXNvbi5zcG90dHN3b29kQGhwZS5jb20+DQpTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFtQQVRDSCB2NF0gTWRlTW9kdWxlUGtnOiBBZGQgRURLMiBQbGF0Zm9ybSBCb290 IE1hbmFnZXIgUHJvdG9jb2wNCg0KRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcg bGlua3Mgb3IgYXR0YWNobWVudHMNCg0KDQoxLiBJcyBpdCBhIHByb3BlciBzb2x1dGlvbiB0byB0 aGUgcHJvYmxlbT8NCiAgICBZZXMsIGl0IGFscmVhZHkgc29sdmVkIG15IGNvbmNlcm4gZGlzY3Vz c2VkIGluIHRoZSBvdGhlciBlbWFpbC4NCjIuIElzIHRoZSBuZXcgcHJvdG9jb2wvZnVuY3Rpb24g bmFtZSBwcm9wZXI/DQogICAgWWVzLCBidXQgSSdtIG5vdCBnb29kIGF0IG5hbWluZy4gV2UgbWF5 IG5lZWQgb3RoZXJzJyBmZWVkYmFjay4gOikgMy4gQXJlIHRoZSBwYXJhbWV0ZXJzIGluIHRoZSBm dW5jdGlvbiBwcm9wZXI/DQogICAgSG93IGFib3V0IHdlIG9ubHkgaGF2ZSB0d28gcGFyYW1ldGVy cyBhcyBiZWxvdyB0byBzaW1wbGlmeSB0aGlzIGNvZGUgY2hhbmdlPw0KdHlwZWRlZg0KRUZJX1NU QVRVUw0KKEVGSUFQSSAqUkVGUkVTSF9BTExfQk9PVF9PUFRJT05TKSAoDQpJTiAgT1VUIEVGSV9C T09UX01BTkFHRVJfTE9BRF9PUFRJT04gKipCb290T3B0aW9ucywNCklOICBPVVQgVUlOVE4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpC b290T3B0aW9uc0NvdW50LA0KKTsNCg0KSW4gYWRkaXRpb24sIEkgaGF2ZSBvbmUgbW9yZSBzdWdn ZXN0aW9uIGFib3V0IHRoZSBzdHJ1Y3R1cmUgbmFtZSBpbmxpbmUuDQoNCkJlc2lkZXMgdGhlc2Ug dHdvIGNvbW1lbnRzLCBldmVyeXRoaW5nIGVsc2UgbG9va3MgZ29vZCB0byBtZS4NCg0KUmVnYXJk cywNClN1bm55IFdhbmcNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiBP ZiBOaSwgUmF5DQpTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMTksIDIwMTkgOTo1OSBBTQ0KVG86 IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53 dUBpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47ICdBbmRyZXcgRmlzaCAo YWZpc2hAYXBwbGUuY29tKScgPGFmaXNoQGFwcGxlLmNvbT4NCkNjOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsgQXNoaXNoIFNpbmdoYWwgPGFzaGlzaHNpbmdoYUBudmlkaWEuY29tPg0KU3ViamVjdDog UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjRdIE1kZU1vZHVsZVBrZzogQWRkIEVESzIgUGxhdGZv cm0gQm9vdCBNYW5hZ2VyIFByb3RvY29sDQoNCkFsbCwNClRoZSBuZXcgRURLSUkgUGxhdGZvcm0g Qm9vdCBNYW5hZ2VyIHByb3RvY29sIHByb3ZpZGVzIGEgcGxhdGZvcm0gaG9vayB0byBzb2x2ZSBi ZWxvdyBwcm9ibGVtLg0KQ2FuIHlvdSBwbGVhc2UgcmV2aWV3IGFuZCB0aGluayBhYm91dDoNCjEu IElzIGl0IGEgcHJvcGVyIHNvbHV0aW9uIHRvIHRoZSBwcm9ibGVtPw0KMi4gSXMgdGhlIG5ldyBw cm90b2NvbC9mdW5jdGlvbiBuYW1lIHByb3Blcj8NCjMuIEFyZSB0aGUgcGFyYW1ldGVycyBpbiB0 aGUgZnVuY3Rpb24gcHJvcGVyPw0KDQoNCioqUHJvYmxlbToNCiAgICAgICAgICAgICAgIFBsYXRm b3JtIHJlcXVpcmVzIGNlcnRhaW4gQmxvY2tJby9TaW1wbGVGaWxlU3lzdGVtL0xvYWRGaWxlIGlu c3RhbmNlcyBkb24ndCBjYXVzZSBCb290IyMjIyBjcmVhdGVkLiBJdCdzIGEgbmVlZCBvZiBwbGF0 Zm9ybSBjdXN0b21pemF0aW9uLg0KDQoqKkRldGFpbHM6DQogICAgICAgICAgICAgICBCb290IyMj IyBmb3IgQmxvY2tJby9TaW1wbGVGaWxlU3lzdGVtL0xvYWRGaWxlIGFyZSBjcmVhdGVkIGJ5IEFQ SSBFZmlCb290TWFuZ2VyUmVmcmVzaEFsbEJvb3RPcHRpb25zKCkuIFRoZXJlIGFyZSAyIHBsYWNl cyB0aGF0IGNhbGwgdGhpcyBBUEk6DQoxLiAgICAgIFBsYXRmb3JtIEJvb3QgTWFuYWdlciBjYWxs cyB0aGUgQVBJICh1c3VhbGx5IGluIHRoZSBmdWxsIGNvbmZpZ3VyYXRpb24gYm9vdCBwYXRoKQ0K Mi4gICAgICBVaUFwcCBjYWxscyB0aGUgQVBJIHdoZW4gZW50ZXJpbmcgIkJvb3QgTWFuYWdlciIg cGFnZSBhbmQgIkJvb3QgTWFpbnRlbmFuY2UgTWFuYWdlciIgcGFnZS4NCg0KUGxhdGZvcm0gY2Fu IGNoYW5nZSBQbGF0Zm9ybSBCb290IE1hbmFnZXIgbGlicmFyeSB0byByZW1vdmUgdGhlIHVubmVl ZGVkIEJvb3QjIyMjIGluIGNhc2UgIzEuDQpCdXQgcGxhdGZvcm0gaGFzIG5vIHdheSB0byByZW1v dmUgdGhlIEJvb3QjIyMjIGNyZWF0ZWQgaW4gY2FzZSAjMiAuDQoNClRoYW5rcywNClJheQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFzaGlzaCBTaW5naGFsIDxhc2hp c2hzaW5naGFAbnZpZGlhLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDE5LCAyMDE5 IDM6MTEgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXYW5nLCBKaWFuIEogPGppYW4u ai53YW5nQGludGVsLmNvbT47IFd1LCANCj4gSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEdh bywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgTmksIA0KPiBSYXkgPHJheS5uaUBp bnRlbC5jb20+DQo+IENjOiBBc2hpc2ggU2luZ2hhbCA8YXNoaXNoc2luZ2hhQG52aWRpYS5jb20+ DQo+IFN1YmplY3Q6IFtQQVRDSCB2NF0gTWRlTW9kdWxlUGtnOiBBZGQgRURLMiBQbGF0Zm9ybSBC b290IE1hbmFnZXIgDQo+IFByb3RvY29sDQo+DQo+IEFkZCBlZGsyIHBsYXRmb3JtIGJvb3QgbWFu YWdlciBwcm90b2NvbCB3aGljaCB3b3VsZCBoYXZlIHBsYXRmb3JtIA0KPiBzcGVjaWZpYyByZWZy ZXNoZXMgdG8gdGhlIGF1dG8gZW51bWVyYXRlZCBhcyB3ZWxsIGFzIE5WIGJvb3Qgb3B0aW9ucyAN Cj4gZm9yIHRoZSBwbGF0Zm9ybS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogQXNoaXNoIFNpbmdoYWwg PGFzaGlzaHNpbmdoYUBudmlkaWEuY29tPg0KPiAtLS0NCj4gIC4uLi9JbmNsdWRlL1Byb3RvY29s L1BsYXRmb3JtQm9vdE1hbmFnZXIuaCAgICAgICAgIHwgODINCj4gKysrKysrKysrKysrKysrKysr KysrKw0KPiAgTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdC5j ICAgfCA0MSArKysrKysrKystLQ0KPiAgLi4uL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0lu dGVybmFsQm0uaCAgICAgICAgfCAgMiArDQo+ICAuLi4vVWVmaUJvb3RNYW5hZ2VyTGliL1VlZmlC b290TWFuYWdlckxpYi5pbmYgICAgICB8ICAyICsNCj4gIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQ a2cuZGVjICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysNCj4gIDUgZmlsZXMgY2hhbmdlZCwg MTI0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZQ0KPiAxMDA2NDQg TWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvUGxhdGZvcm1Cb290TWFuYWdlci5oDQo+DQo+ IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RN YW5hZ2VyLmgNCj4gYi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RN YW5hZ2VyLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uZWMzMjIx NQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29s L1BsYXRmb3JtQm9vdE1hbmFnZXIuaA0KPiBAQCAtMCwwICsxLDgyIEBADQo+ICsvKiogQGZpbGUN Cj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIDIwMTksIE5WSURJQSBDT1JQT1JBVElPTi4gQWxsIHJp Z2h0cyByZXNlcnZlZC4NCj4gKw0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lmbmRlZiBfX1BMQVRGT1JNX0JP T1RfTUFOQUdFUl9QUk9UT0NPTF9IX18NCj4gKyNkZWZpbmUgX19QTEFURk9STV9CT09UX01BTkFH RVJfUFJPVE9DT0xfSF9fDQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290TWFuYWdl ckxpYi5oPg0KPiArDQo+ICsvLw0KPiArLy8gUGxhdGZvcm0gQm9vdCBNYW5hZ2VyIFByb3RvY29s IEdVSUQgdmFsdWUgLy8gI2RlZmluZSANCj4gK0VES0lJX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9Q Uk9UT0NPTF9HVUlEIFwNCj4gKyAgICB7IFwNCj4gKyAgICAgIDB4YWExN2FkZDQsIDB4NzU2Yywg MHg0NjBkLCB7IDB4OTQsIDB4YjgsIDB4NDMsIDB4ODgsIDB4ZDcsIA0KPiArMHhmYiwgMHgzZSwN Cj4gMHg1OSB9IFwNCj4gKyAgICB9DQo+ICsNCj4gKy8vDQo+ICsvLyBQcm90b2NvbCBpbnRlcmZh Y2Ugc3RydWN0dXJlDQo+ICsvLw0KPiArdHlwZWRlZiBzdHJ1Y3QgX1BMQVRGT1JNX0JPT1RfTUFO QUdFUl9QUk9UT0NPTA0KPiBQTEFURk9STV9CT09UX01BTkFHRVJfUFJPVE9DT0w7DQoNCkZvciBi ZWluZyBjb25zaXN0ZW50IHdpdGggb3RoZXIgRURLSUkgcHJvdG9jb2xzIGxpa2UgRURLSUlfUExB VEZPUk1fTE9HT19QUk9UT0NPTCAsIGhvdyBhYm91dCB3ZSB1cGRhdGUgaXQgdG8gdGhlIGZvbGxv d2luZz8NCnR5cGVkZWYgc3RydWN0IF9FREtJSV9QTEFURk9STV9CT09UX01BTkFHRVJfUFJPVE9D T0wgRURLSUlfUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MOw0KDQo+ICsNCj4gKy8vDQo+ ICsvLyBSZXZpc2lvbiBUaGUgcmV2aXNpb24gdG8gd2hpY2ggdGhlIHByb3RvY29sIGludGVyZmFj ZSBhZGhlcmVzLg0KPiArLy8gICAgICAgICAgQWxsIGZ1dHVyZSByZXZpc2lvbnMgbXVzdCBiZSBi YWNrd2FyZHMgY29tcGF0aWJsZS4NCj4gKy8vICAgICAgICAgIElmIGEgZnV0dXJlIHZlcnNpb24g aXMgbm90IGJhY2sgd2FyZHMgY29tcGF0aWJsZSBpdCBpcyBub3QgdGhlIHNhbWUNCj4gR1VJRC4N Cj4gKy8vDQo+ICsjZGVmaW5lIEVES0lJX1BMQVRGT1JNX0JPT1RfTUFOQUdFUl9QUk9UT0NPTF9S RVZJU0lPTg0KPiAweDAwMDAwMDAxDQo+ICsNCj4gKy8vDQo+ICsvLyBGdW5jdGlvbiBQcm90b3R5 cGVzDQo+ICsvLw0KPiArDQo+ICsvKg0KPiArICBUaGlzIGZ1bmN0aW9uIGFsbG93cyBwbGF0Zm9y bSB0byByZWZyZXNoIGFsbCBib290IG9wdGlvbnMgc3BlY2lmaWMgDQo+ICt0byB0aGUNCj4gcGxh dGZvcm0uIFdpdGhpbg0KPiArICB0aGlzIGZ1bmN0aW9uLCBwbGF0Zm9ybSBjYW4gbWFrZSBtb2Rp ZmljYXRpb25zIHRvIHRoZSBhdXRvIA0KPiArIGVudW1lcmF0ZWQNCj4gcGxhdGZvcm0gYm9vdCBv cHRpb25zDQo+ICsgIGFzIHdlbGwgYXMgTlYgYm9vdCBvcHRpb25zLg0KPiArDQo+ICsgIEBwYXJh bVtpbiBjb25zdF0gQm9vdE9wdGlvbnMgICAgICAgICAgICAgQW4gYXJyYXkgb2YgYXV0byBlbnVt ZXJhdGVkDQo+IHBsYXRmb3JtIGJvb3Qgb3B0aW9ucy4NCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGFycmF5IHdpbGwgYmUgZnJlZWQgYnkgY2FsbGVy IHVwb24gc3VjY2Vzc2Z1bA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV4aXQgb2YgdGhpcyBmdW5jdGlvbiBhbmQgb3V0cHV0IGFycmF5IHdvdWxkIGJlIHVz ZWQuDQo+ICsNCj4gKyAgQHBhcmFtW2luIGNvbnN0XSBCb290T3B0aW9uc0NvdW50ICAgICAgICBU aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluDQo+IEJvb3RPcHRpb25zLg0KPiArDQo+ICsgIEBwYXJh bVtvdXRdICAgICAgVXBkYXRlZEJvb3RPcHRpb25zICAgICAgQW4gYXJyYXkgb2YgYm9vdCBvcHRp b25zIHRoYXQNCj4gaGF2ZSBiZWVuIGN1c3RvbWl6ZWQNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIHBsYXRmb3JtIG9uIHRvcCBvZiBpbnB1dCBi b290IG9wdGlvbnMuIFRoaXMNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhcnJheSB3b3VsZCBiZSBhbGxvY2F0ZWQgDQo+ICsgYnkNCj4gUkVGUkVTSF9BTExf Qk9PVF9PUFRJT05TDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIHdvdWxkIGJlIGZyZWVkIGJ5IGNhbGxlciBhZnRlciBjb25zdW1pbmcgaXQuDQo+ICsN Cj4gKyAgQHBhcmFtW291dF0gICAgICBVcGRhdGVkQm9vdE9wdGlvbnNDb3VudCBUaGUgbnVtYmVy IG9mIGVsZW1lbnRzIGluDQo+IFVwZGF0ZWRCb290T3B0aW9ucy4NCj4gKw0KPiArDQo+ICsgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm0gcmVmcmVzaCB0 byBpbnB1dCBCb290T3B0aW9ucyBhbmQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCb290Q291bnQgaGF2ZSBiZWVuIGRvbmUuDQo+ICsNCj4gKyAgQHJldHZh bCBFRklfT1VUX09GX1JFU09VUkNFUyAgICAgICAgICAgICBNZW1vcnkgYWxsb2NhdGlvbiBmYWls ZWQuDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICAgICAgICAgICBJ bnB1dCBpcyBub3QgY29ycmVjdC4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAg ICAgICAgICAgICAgICAgIFBsYXRmb3JtIHNwZWNpZmljIG92ZXJyaWRlcyBhcmUgbm90DQo+IHN1 cHBvcnRlZC4NCj4gKyovDQo+ICt0eXBlZGVmDQo+ICtFRklfU1RBVFVTDQo+ICsoRUZJQVBJICpS RUZSRVNIX0FMTF9CT09UX09QVElPTlMpICgNCj4gKyAgSU4gIENPTlNUIEVGSV9CT09UX01BTkFH RVJfTE9BRF9PUFRJT04gKkJvb3RPcHRpb25zLA0KPiArICBJTiAgQ09OU1QgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAgICBCb290T3B0aW9uc0NvdW50LA0KPiArICBPVVQgICAgICAgRUZJX0JP T1RfTUFOQUdFUl9MT0FEX09QVElPTiAqKlVwZGF0ZWRCb290T3B0aW9ucywNCj4gKyAgT1VUICAg ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgKlVwZGF0ZWRCb290T3B0aW9uc0NvdW50 DQo+ICsgICk7DQo+ICsNCj4gK3N0cnVjdCBfUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09M IHsNCj4gKyAgVUlOVDY0ICAgICAgICAgICAgICAgICAgIFJldmlzaW9uOw0KPiArICBSRUZSRVNI X0FMTF9CT09UX09QVElPTlMgUmVmcmVzaEFsbEJvb3RPcHRpb25zOyB9Ow0KPiArDQo+ICtleHRl cm4gRUZJX0dVSUQgZ0Vka2lpUGxhdGZvcm1Cb290TWFuYWdlclByb3RvY29sR3VpZDsNCj4gKw0K PiArI2VuZGlmIC8qIF9fUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MX0hfXyAqLw0KPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9v dC5jDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtQm9vdC5j DQo+IGluZGV4IDc2MGQ3NjQuLjhiOWE3NmQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9M aWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9CbUJvb3QuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cv TGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290LmMNCj4gQEAgLTEsNiArMSw3IEBADQo+ ICAvKiogQGZpbGUNCj4gICAgTGlicmFyeSBmdW5jdGlvbnMgd2hpY2ggcmVsYXRlcyB3aXRoIGJv b3RpbmcuDQo+DQo+ICtDb3B5cmlnaHQgKGMpIDIwMTksIE5WSURJQSBDT1JQT1JBVElPTi4gQWxs IHJpZ2h0cyByZXNlcnZlZC4NCj4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTksIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiByZXNlcnZlZC48QlI+DQo+ICAoQykgQ29weXJpZ2h0 IDIwMTUtMjAxNiBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4N Cj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IEBAIC0yMjU4 LDEyICsyMjU5LDE1IEBAIA0KPiBFZmlCb290TWFuYWdlclJlZnJlc2hBbGxCb290T3B0aW9uICgN Cj4gICAgVk9JRA0KPiAgICApDQo+ICB7DQo+IC0gIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAg ICAgIFN0YXR1czsNCj4gLSAgRUZJX0JPT1RfTUFOQUdFUl9MT0FEX09QVElPTiAgKk52Qm9vdE9w dGlvbnM7DQo+IC0gIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgIE52Qm9vdE9wdGlvbkNv dW50Ow0KPiAtICBFRklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAqQm9vdE9wdGlvbnM7DQo+ IC0gIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgIEJvb3RPcHRpb25Db3VudDsNCj4gLSAg VUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ICsgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgIEVGSV9CT09UX01BTkFHRVJfTE9BRF9PUFRJ T04gICAqTnZCb290T3B0aW9uczsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAg IE52Qm9vdE9wdGlvbkNvdW50Ow0KPiArICBFRklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAg KkJvb3RPcHRpb25zOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vdE9w dGlvbkNvdW50Ow0KPiArICBFRklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OICAgKlVwZGF0ZWRC b290T3B0aW9uczsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgIFVwZGF0ZWRC b290T3B0aW9uQ291bnQ7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRl eDsNCj4gKyAgUExBVEZPUk1fQk9PVF9NQU5BR0VSX1BST1RPQ09MICpQbGF0Zm9ybUJvb3RNYW5h Z2VyOw0KPg0KPiAgICAvLw0KPiAgICAvLyBPcHRpb25hbGx5IHJlZnJlc2ggdGhlIGxlZ2FjeSBi b290IG9wdGlvbiBAQCAtMjI3Myw3ICsyMjc3LDYgQEAgDQo+IEVmaUJvb3RNYW5hZ2VyUmVmcmVz aEFsbEJvb3RPcHRpb24gKA0KPiAgICB9DQo+DQo+ICAgIEJvb3RPcHRpb25zICAgPSBCbUVudW1l cmF0ZUJvb3RPcHRpb25zICgmQm9vdE9wdGlvbkNvdW50KTsNCj4gLSAgTnZCb290T3B0aW9ucyA9 IEVmaUJvb3RNYW5hZ2VyR2V0TG9hZE9wdGlvbnMgKCZOdkJvb3RPcHRpb25Db3VudCwgDQo+IExv YWRPcHRpb25UeXBlQm9vdCk7DQo+DQo+ICAgIC8vDQo+ICAgIC8vIE1hcmsgdGhlIGJvb3Qgb3B0 aW9uIGFzIGFkZGVkIGJ5IEJEUyBieSBzZXR0aW5nIE9wdGlvbmFsRGF0YSB0byANCj4gYSBzcGVj aWFsIEdVSUQgQEAgLTIyODQsNiArMjI4NywzMCBAQCANCj4gRWZpQm9vdE1hbmFnZXJSZWZyZXNo QWxsQm9vdE9wdGlvbiAoDQo+ICAgIH0NCj4NCj4gICAgLy8NCj4gKyAgLy8gTG9jYXRlIFBsYXRm b3JtIEJvb3QgT3B0aW9ucyBQcm90b2NvbCAgLy8gIFN0YXR1cyA9DQo+ICsgZ0JTLT5Mb2NhdGVQ cm90b2NvbCAoJmdFZGtpaVBsYXRmb3JtQm9vdE1hbmFnZXJQcm90b2NvbEd1aWQsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChWT0lEICoqKSZQbGF0Zm9ybUJvb3RNYW5hZ2VyKTsgIGlmIA0KPiArICgh RUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ICsgICAgLy8NCj4gKyAgICAvLyBJZiBmb3VuZCwgY2Fs bCBwbGF0Zm9ybSBzcGVjaWZpYyByZWZyZXNoIHRvIGFsbCBhdXRvIGVudW1lcmF0ZWQgYW5kIE5W DQo+ICsgICAgLy8gYm9vdCBvcHRpb25zLg0KPiArICAgIC8vDQo+ICsgICAgU3RhdHVzID0gUGxh dGZvcm1Cb290TWFuYWdlci0+UmVmcmVzaEFsbEJvb3RPcHRpb25zICgoQ09OU1QNCj4gRUZJX0JP T1RfTUFOQUdFUl9MT0FEX09QVElPTiAqKUJvb3RPcHRpb25zLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENPTlNUIFVJTlROKUJv b3RPcHRpb25Db3VudCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZVcGRhdGVkQm9vdE9wdGlvbnMsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVXBkYXRlZEJvb3RP cHRpb25Db3VudCk7DQo+ICsgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gKyAgICAg IEVmaUJvb3RNYW5hZ2VyRnJlZUxvYWRPcHRpb25zIChCb290T3B0aW9ucywgQm9vdE9wdGlvbkNv dW50KTsNCj4gKyAgICAgIEJvb3RPcHRpb25zID0gVXBkYXRlZEJvb3RPcHRpb25zOw0KPiArICAg ICAgQm9vdE9wdGlvbkNvdW50ID0gVXBkYXRlZEJvb3RPcHRpb25Db3VudDsNCj4gKyAgICB9DQo+ ICsgIH0NCj4gKw0KPiArICBOdkJvb3RPcHRpb25zID0gRWZpQm9vdE1hbmFnZXJHZXRMb2FkT3B0 aW9ucyAoJk52Qm9vdE9wdGlvbkNvdW50LA0KPiBMb2FkT3B0aW9uVHlwZUJvb3QpOw0KPiArDQo+ ICsgIC8vDQo+ICAgIC8vIFJlbW92ZSBpbnZhbGlkIEVGSSBib290IG9wdGlvbnMgZnJvbSBOVg0K PiAgICAvLw0KPiAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdkJvb3RPcHRpb25Db3VudDsg SW5kZXgrKykgeyBkaWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290 TWFuYWdlckxpYi9JbnRlcm5hbEJtLmgNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9v dE1hbmFnZXJMaWIvSW50ZXJuYWxCbS5oDQo+IGluZGV4IDAyN2ViMjUuLmFjODY2YWMgMTAwNjQ0 DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9JbnRlcm5h bEJtLmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0lu dGVybmFsQm0uaA0KPiBAQCAtMSw2ICsxLDcgQEANCj4gIC8qKiBAZmlsZQ0KPiAgICBCRFMgbGli cmFyeSBkZWZpbml0aW9uLCBpbmNsdWRlIHRoZSBmaWxlIGFuZCBkYXRhIHN0cnVjdHVyZQ0KPg0K PiArQ29weXJpZ2h0IChjKSAyMDE5LCBOVklESUEgQ09SUE9SQVRJT04uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQo+ICBDb3B5cmlnaHQgKGMpIDIwMDQgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiAgKEMpIENvcHlyaWdodCAyMDE1IEhld2xl dHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgQEAgLTQxLDYgKzQyLDcgQEANCj4gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICNpbmNsdWRlIA0KPiA8 UHJvdG9jb2wvVmFyaWFibGVMb2NrLmg+ICAjaW5jbHVkZSA8UHJvdG9jb2wvUmFtRGlzay5oPiAg I2luY2x1ZGUgDQo+IDxQcm90b2NvbC9EZWZlcnJlZEltYWdlTG9hZC5oPg0KPiArI2luY2x1ZGUg PFByb3RvY29sL1BsYXRmb3JtQm9vdE1hbmFnZXIuaD4NCj4NCj4gICNpbmNsdWRlIDxHdWlkL01l bW9yeVR5cGVJbmZvcm1hdGlvbi5oPiAgI2luY2x1ZGUgPEd1aWQvRmlsZUluZm8uaD4gDQo+IGRp ZmYgLS1naXQgDQo+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL1Vl ZmlCb290TWFuYWdlckxpYi5pbmYNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1h bmFnZXJMaWIvVWVmaUJvb3RNYW5hZ2VyTGliLmluZg0KPiBpbmRleCBlZDZiNDY3Li5jZjU5MDg2 IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIv VWVmaUJvb3RNYW5hZ2VyTGliLmluZg0KPiArKysNCj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9V ZWZpQm9vdE1hbmFnZXJMaWIvVWVmaUJvb3RNYW5hZ2VyTGliLmluZg0KPiBAQCAtNSw2ICs1LDcg QEANCj4gICMgIG1hbmlwdWxhdGlvbiwgaG90a2V5IHJlZ2lzdHJhdGlvbiwgVUVGSSBib290LCBj b25uZWN0L2Rpc2Nvbm5lY3QsIA0KPiBjb25zb2xlICAjICBtYW5pcHVsYXRpb24sIGRyaXZlciBo ZWFsdGggY2hlY2tpbmcgYW5kIGV0Yy4NCj4gICMNCj4gKyMgIENvcHlyaWdodCAoYykgMjAxOSwg TlZJRElBIENPUlBPUkFUSU9OLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAgIyAgQ29weXJpZ2h0 IChjKSAyMDA3IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+IHJlc2Vy dmVkLjxCUj4gICMgIChDKSBDb3B5cmlnaHQgMjAxNiBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlz ZSANCj4gRGV2ZWxvcG1lbnQgTFA8QlI+ICAjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudCBAQA0KPiAtMTA3LDYgKzEwOCw3IEBADQo+ICAgIGdFZmlGb3JtQnJv d3NlcjJQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMN Cj4gICAgZ0VmaVJhbURpc2tQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAgICMjIFNP TUVUSU1FU19DT05TVU1FUw0KPiAgICBnRWZpRGVmZXJyZWRJbWFnZUxvYWRQcm90b2NvbEd1aWQg ICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICsgIGdFZGtpaVBsYXRmb3JtQm9v dE1hbmFnZXJQcm90b2NvbEd1aWQgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4NCj4g IFtQY2RdDQo+DQo+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RSZXNldE9uTWVt b3J5VHlwZUluZm9ybWF0aW9uQw0KPiBoYW5nZSAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0K PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgDQo+IGIvTWRlTW9k dWxlUGtnL01kZU1vZHVsZVBrZy5kZWMgaW5kZXggNDFiOWU3MC4uY2MyMzhlOSAxMDA2NDQNCj4g LS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gKysrIGIvTWRlTW9kdWxlUGtn L01kZU1vZHVsZVBrZy5kZWMNCj4gQEAgLTMsNiArMyw3IEBADQo+ICAjIEl0IGFsc28gcHJvdmlk ZXMgdGhlIGRlZmluaXRpb25zKGluY2x1ZGluZyBQUElzL1BST1RPQ09Mcy9HVUlEcyBhbmQgDQo+ IGxpYnJhcnkgY2xhc3NlcykgICMgYW5kIGxpYnJhcmllcyBpbnN0YW5jZXMsIHdoaWNoIGFyZSB1 c2VkIGZvciB0aG9zZSANCj4gbW9kdWxlcy4NCj4gICMNCj4gKyMgQ29weXJpZ2h0IChjKSAyMDE5 LCBOVklESUEgQ09SUE9SQVRJT04uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICAjIENvcHlyaWdo dCAoYykgMjAwNyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiByZXNl cnZlZC48QlI+ICAjIENvcHlyaWdodCAoYykgMjAxNiwgTGluYXJvIEx0ZC4gQWxsIHJpZ2h0cyAN Cj4gcmVzZXJ2ZWQuPEJSPiAgIyAoQykgQ29weXJpZ2h0IDIwMTYgLSAyMDE5IEhld2xldHQgUGFj a2FyZCBFbnRlcnByaXNlIA0KPiBEZXZlbG9wbWVudCBMUDxCUj4gQEAgLTYwOSw2ICs2MTAsOSBA QA0KPiAgICAjIyBJbmNsdWRlL1Byb3RvY29sL1BlQ29mZkltYWdlRW11bGF0b3IuaA0KPiAgICBn RWRraWlQZUNvZmZJbWFnZUVtdWxhdG9yUHJvdG9jb2xHdWlkID0geyAweDk2ZjQ2MTUzLCAweDk3 YTcsIA0KPiAweDQ3OTMsIHsgMHhhYywgMHhjMSwgMHhmYSwgMHgxOSwgMHhiZiwgMHg3OCwgMHhl YSwgMHg5NyB9IH0NCj4NCj4gKyAgIyMgSW5jbHVkZS9Qcm90b2NvbC9QbGF0Zm9ybUJvb3RNYW5h Z2VyLmgNCj4gKyAgZ0Vka2lpUGxhdGZvcm1Cb290TWFuYWdlclByb3RvY29sR3VpZCA9IHsgMHhh YTE3YWRkNCwgMHg3NTZjLCANCj4gKyAweDQ2MGQsDQo+IHsgMHg5NCwgMHhiOCwgMHg0MywgMHg4 OCwgMHhkNywgMHhmYiwgMHgzZSwgMHg1OSB9IH0NCj4gKw0KPiAgIw0KPiAgIyBbRXJyb3IuZ0Vm aU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkXQ0KPiAgIyAgIDB4ODAwMDAwMDEgfCBJbnZhbGlk IHZhbHVlIHByb3ZpZGVkLg0KPiAtLQ0KPiAyLjcuNA0KDQoNCg0KDQoNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpUaGlzIGVtYWlsIG1lc3NhZ2UgaXMgZm9yIHRoZSBzb2xlIHVzZSBvZiB0 aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpIGFuZCBtYXkgY29udGFpbg0KY29uZmlkZW50aWFsIGlu Zm9ybWF0aW9uLiAgQW55IHVuYXV0aG9yaXplZCByZXZpZXcsIHVzZSwgZGlzY2xvc3VyZSBvciBk aXN0cmlidXRpb24NCmlzIHByb2hpYml0ZWQuICBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQg cmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGJ5DQpyZXBseSBlbWFpbCBhbmQg ZGVzdHJveSBhbGwgY29waWVzIG9mIHRoZSBvcmlnaW5hbCBtZXNzYWdlLg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCg==