From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=nUfCElmX; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.71.89, mailfrom: thomas.lendacky@amd.com) Received: from NAM05-BY2-obe.outbound.protection.outlook.com (NAM05-BY2-obe.outbound.protection.outlook.com [40.107.71.89]) by groups.io with SMTP; Wed, 21 Aug 2019 14:42:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E+Jv6qTRxqKmMDbdz3zOvVhl5BNWuv4HUSf4qCpAoFODF60OmmyirPj3YLlAVUdN39hCH878K0q4GBG8eoDU4hMRAuBdGuCGkIiYLcoGHjmyOIy6GClcqlOOMk/ZZ3g28EmIOZnr3VdD7iTN7gx4WT2flbKVdve72XxBSmo0e3GUF5zxkF1UAfebpaAeJuoOo+pPMdJ1Z5HCDUq15LvqDYRGmYIXarKh9eMtrVgnL5fXO2SVeiEU2yiI5HVmV7wtvLRnC6IPDbkl4z0yBn+O3D6J6J7jrruuSCzzvCcOSCosY2sqT9mTsPqUTuTI5sIBFiXkBakwxxmcmiCBoqIFiw== 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=OhVvKg5m2DCiFKE8G9vY1CaAkgOfgPUKC3bx6c4idbs=; b=VvT7XOlPa/qleOY5M82EL9oF2+7hWcbd3YzftaE75EUsR/7rvA1NuLrXNj7TXxRrKTH4EiQBn6YapX64dOyCT5F10ppVQhzucTI80UHkz7RDqQktY80Z1lPLXsLnQYmbDBM+JwTLOyRyAXAb5+88bAvAuQY8of26xt9rXyRTfCaKXf+6L86zC3hD4zBDzOX0uY+/gJ/aZCF0Yx8tjBYuJiPZyJ+cfC5UxvcQn4055s2rUBsdjoPNdPNEP9bDzLDWBtzy3vjLwjYpcQCMh7PxtXLjdT0AyGt3HUyZXHAW+zZ0rp5BHAXrvHKA4tY3u0osXuiBFdBmK/5tPTUX9fdoHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OhVvKg5m2DCiFKE8G9vY1CaAkgOfgPUKC3bx6c4idbs=; b=nUfCElmXucvufVHNaibUvGLbjWfTRZL6j1kUYSJgTTTdqBiYf01cCDfZdk4rHmRWuyFS+fU0+AAp1TzW5fwg4OTXfhmsa37dWEdcQf1q7Nmbe2uOzAPRgLBVeeyR9zk4guO0lIXNGkZq710rsLOQKdyUvcSFQ7xZ9rNdtZQ+HE4= Received: from DM6PR12MB3163.namprd12.prod.outlook.com (20.179.104.150) by DM6PR12MB4138.namprd12.prod.outlook.com (10.141.8.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Wed, 21 Aug 2019 21:42:22 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::585:2d27:6e06:f9b0]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::585:2d27:6e06:f9b0%7]) with mapi id 15.20.2178.018; Wed, 21 Aug 2019 21:42:22 +0000 From: "Lendacky, Thomas" To: Laszlo Ersek , "devel@edk2.groups.io" CC: Jordan Justen , Ard Biesheuvel , Michael D Kinney , Liming Gao , Eric Dong , Ray Ni , "Singh, Brijesh" Subject: Re: [edk2-devel] [RFC PATCH 05/28] OvmfPkg: Create GHCB pages for use during Pei and Dxe phase Thread-Topic: [edk2-devel] [RFC PATCH 05/28] OvmfPkg: Create GHCB pages for use during Pei and Dxe phase Thread-Index: AQHVVtYTRsM0mPTGh0OdCosfG5VAaacFrLMAgAB4PwA= Date: Wed, 21 Aug 2019 21:42:22 +0000 Message-ID: <229e74df-17b8-9bb5-7a5e-f6e7df64ca4f@amd.com> References: <096c6641b2f228177ab3bb815211379c1f650028.1566250534.git.thomas.lendacky@amd.com> <59b40c01-a6bf-2c65-0edd-87a35f937264@redhat.com> In-Reply-To: <59b40c01-a6bf-2c65-0edd-87a35f937264@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR02CA0006.namprd02.prod.outlook.com (2603:10b6:805:a2::19) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:182::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c122cef9-ab61-4dd6-17e0-08d7268072bf x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:DM6PR12MB4138; x-ms-traffictypediagnostic: DM6PR12MB4138: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0136C1DDA4 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(346002)(366004)(39860400002)(396003)(136003)(376002)(51914003)(199004)(189003)(6486002)(102836004)(6506007)(66946007)(53546011)(386003)(19627235002)(316002)(8936002)(256004)(66476007)(6116002)(3846002)(76176011)(14444005)(110136005)(54906003)(52116002)(6246003)(186003)(4326008)(66446008)(64756008)(66556008)(14454004)(31686004)(99286004)(66066001)(53936002)(25786009)(478600001)(81166006)(81156014)(446003)(86362001)(7736002)(305945005)(30864003)(53946003)(2616005)(486006)(2906002)(31696002)(6436002)(229853002)(5660300002)(8676002)(11346002)(36756003)(71190400001)(71200400001)(2501003)(26005)(6512007)(476003)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB4138;H:DM6PR12MB3163.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: oNdn30dgHdV1FgrvjrdE0To55FfOqvGxKdQh6LOzE8NvWtzcrjI5LYRTxmSdr8a5hl5shHosQG5AmeVhGk40F+YfSUEiEkSKWZykhK7AQDIFsvmc7y4Hjp9vPFyI6t2EB4sSkL0zMeIK0SUY3n9Rog1XspgaRdOsUimKcRIxq4fcjUeZqx2bbaEUTR209/j94ip72Qdeb37ddMtz7MBUxuGbfeWlsx57lB5Gub5XUvS5ZIiQJYlv/QZb+6fBq0fgxol3JqlFflvF6DwrTD7QO8BTw9YhP7jwd4qLhmnDsKiZRelriliboP2kuUcm4G8zs+XMXguaOHZ+TEqZf+FiQpHvW0qHBAdXPAV4lQWQ603Hb8NCBdB2WxC7wA1P5tG4/9iORd3k9NQcPjNE+ZzqjLU9slPxgK8hn5KTAZ+2uaQ= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c122cef9-ab61-4dd6-17e0-08d7268072bf X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2019 21:42:22.1948 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ai2vaaHjbaj8IzBGz2xGBrtk7DPWXXuuGs7HWcW3RurSB5dLg7SR/rQlsHOr0TRXpkC8v/izx0G+mEaVO4mw6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4138 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 T24gOC8yMS8xOSA5OjMxIEFNLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+IE9uIDA4LzE5LzE5IDIz OjM1LCBMZW5kYWNreSwgVGhvbWFzIHdyb3RlOg0KPj4gRnJvbTogVG9tIExlbmRhY2t5IDx0aG9t YXMubGVuZGFja3lAYW1kLmNvbT4NCj4+DQo+PiBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBHSENC IHBhZ2VzIGR1cmluZyBTRVYgaW5pdGlhbGl6YXRpb24gZm9yIHVzZQ0KPj4gZHVyaW5nIFBlaSBh bmQgRHhlIHBoYXNlcy4gU2luY2UgdGhlIEdIQ0IgcGFnZXMgbXVzdCBiZSBtYXBwZWQgYXMgc2hh cmVkDQo+PiBwYWdlcywgbW9kaWZ5IENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMoKSBz byB0aGF0IHBhZ2V0YWJsZSBlbnRyaWVzDQo+PiBhcmUgY3JlYXRlZCB3aXRob3V0IHRoZSBlbmNy eXB0aW9uIGJpdCBzZXQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogVG9tIExlbmRhY2t5IDx0aG9t YXMubGVuZGFja3lAYW1kLmNvbT4NCj4+IC0tLQ0KPj4gIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5k ZWMgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrDQo+PiAgT3ZtZlBrZy9Pdm1mUGtnWDY0LmRz YyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysNCj4+ICBNZGVNb2R1bGVQa2cvQ29yZS9E eGVJcGxQZWltL0R4ZUlwbC5pbmYgICAgICAgfCAgMyArDQo+PiAgT3ZtZlBrZy9QbGF0Zm9ybVBl aS9QbGF0Zm9ybVBlaS5pbmYgICAgICAgICAgIHwgIDIgKw0KPj4gIC4uLi9Db3JlL0R4ZUlwbFBl aW0vWDY0L1ZpcnR1YWxNZW1vcnkuaCAgICAgICB8IDEyICsrKy0NCj4+ICAuLi4vQ29yZS9EeGVJ cGxQZWltL0lhMzIvRHhlTG9hZEZ1bmMuYyAgICAgICAgfCAgNCArLQ0KPj4gIC4uLi9Db3JlL0R4 ZUlwbFBlaW0vWDY0L0R4ZUxvYWRGdW5jLmMgICAgICAgICB8IDExICsrKy0NCj4+ICAuLi4vQ29y ZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmMgICAgICAgfCA0OSArKysrKysrKysrLS0t LQ0KPj4gIC4uLi9NZW1FbmNyeXB0U2V2TGliSW50ZXJuYWwuYyAgICAgICAgICAgICAgICB8ICAx IC0NCj4+ICAuLi4vQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnkuYyAgfCAz MyArKysrKysrKy0tDQo+PiAgT3ZtZlBrZy9QbGF0Zm9ybVBlaS9BbWRTZXYuYyAgICAgICAgICAg ICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKw0KPj4gIDExIGZpbGVzIGNoYW5nZWQsIDE2 NCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkNCj4gDQo+IFNob3VsZCBiZSBzcGxpdCB0 byBhdCBsZWFzdCBmb3VyIHBhdGNoZXMgKFVlZmlDcHVQa2csIE1kZU1vZHVsZVBrZywNCj4gT3Zt ZlBrZy9CYXNlTWVtRW5jcnlwdFNldkxpYiwgT3ZtZlBrZy9QbGF0Zm9ybVBlaSkuDQo+IA0KPiBJ biBhZGRpdGlvbiwgTWRlTW9kdWxlUGtnIGNvbnRlbnQgbXVzdCBub3QgZGVwZW5kIG9uIFVlZmlD cHVQa2cgY29udGVudA0KPiAtLSBpZiBtb2R1bGVzIHVuZGVyIGJvdGggcGFja2FnZXMgbmVlZCB0 byBjb25zdW1lIGEgbmV3IFBDRCwgdGhlbiB0aGUNCj4gUENEIHNob3VsZCBiZSBkZWNsYXJlZCB1 bmRlciBNZGVNb2R1bGVQa2cuIFRoZSByb3VnaCBkZXBlbmRlbmN5IG9yZGVyIGlzOg0KPiANCj4g LSBNZGVQa2cgKG11c3QgYmUgc2VsZi1jb250YWluZWQpDQo+IC0gTWRlTW9kdWxlUGtnIChtYXkg Y29uc3VtZSBNZGVQa2cpDQo+IC0gVWVmaUNwdVBrZyAobWF5IGNvbnN1bWUgZXZlcnl0aGluZyBh Ym92ZSwgdG8gbXkga25vd2xlZGdlKQ0KPiAtIE92bWZQa2cgKG1heSBjb25zdW1lIGV2ZXJ5dGhp bmcgYWJvdmUpDQo+IA0KDQpPaywgdGhhbmtzIGZvciB0aGUgZ3VpZGFuY2UuDQoNCklkZWFsbHks IEkganVzdCB3b3VsZCBsaWtlIHRvIG1vZGlmeSB0aGUgbmV3bHkgY3JlYXRlZCBwYWdlIHRhYmxl cyBhZnRlcg0KdGhlIGNhbGwgdG8gQ3JlYXRlSWRlbnRpdHlNYXBwaW5nUGFnZVRhYmxlcygpIGlu IE1kZU1vZHVsZVBrZy9Db3JlLw0KRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5jLmMuIElzIHRo ZXJlIGEgcHJlZmVycmVkIHdheSB0byBhZGQgYSBsaXN0ZW5lcg0Kb3IgY2FsbGJhY2sgb3Igbm90 aWZpY2F0aW9uIHNlcnZpY2Ugc28gdGhhdCB0aGUgbWFpbiBjaGFuZ2VzIHdvdWxkIGJlDQpsaW1p dGVkIHRvIHRoZSBPdm1mUGtnIGZpbGVzIGFuZCB3b3VsZCB0aGF0IGJlIGFjY2VwdGFibGU/DQoN ClRoYW5rcywNClRvbQ0KDQo+IFRoYW5rcw0KPiBMYXN6bG8NCj4gDQo+Pg0KPj4gZGlmZiAtLWdp dCBhL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVj DQo+PiBpbmRleCA2ZGRmMGNkMjI0NjYuLjRkNWEyNTkzY2YxMyAxMDA2NDQNCj4+IC0tLSBhL1Vl ZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4+ICsrKyBiL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5k ZWMNCj4+IEBAIC0zMjMsNSArMzIzLDkgQEAgW1BjZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4XQ0K Pj4gICAgIyBAVmFsaWRSYW5nZSAgMHg4MDAwMDAwMSB8IDAgLSAxDQo+PiAgICBnVWVmaUNwdVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENwdVByb2NUcmFjZU91dHB1dFNjaGVtZXwweDB8VUlOVDh8MHg2 MDAwMDAxNQ0KPj4gIA0KPj4gKyAgIyMgQ29udGFpbnMgdGhlIEdIQ0IgcGFnZSBhbGxvY2F0aW9u IGluZm9ybWF0aW9uLjxCUj48QlI+DQo+PiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZEdoY2JCYXNlfDB4MHxVSU5UNjR8MHg2MDAwMDAxNg0KPj4gKyAgZ1VlZmlDcHVQa2dUb2tlblNw YWNlR3VpZC5QY2RHaGNiU2l6ZXwweDB8VUlOVDY0fDB4NjAwMDAwMTcNCj4+ICsNCj4+ICBbVXNl ckV4dGVuc2lvbnMuVGlhbm9Db3JlLiJFeHRyYUZpbGVzIl0NCj4+ICAgIFVlZmlDcHVQa2dFeHRy YS51bmkNCj4+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL092bWZQa2dYNjQuZHNjIGIvT3ZtZlBrZy9P dm1mUGtnWDY0LmRzYw0KPj4gaW5kZXggZGRhOGRhYzE4NDQxLi5kNmZjN2NkZjdkYTggMTAwNjQ0 DQo+PiAtLS0gYS9Pdm1mUGtnL092bWZQa2dYNjQuZHNjDQo+PiArKysgYi9Pdm1mUGtnL092bWZQ a2dYNjQuZHNjDQo+PiBAQCAtNTY5LDYgKzU2OSwxMCBAQCBbUGNkc0R5bmFtaWNEZWZhdWx0XQ0K Pj4gICAgIyBTZXQgbWVtb3J5IGVuY3J5cHRpb24gbWFzaw0KPj4gICAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZFB0ZU1lbW9yeUVuY3J5cHRpb25BZGRyZXNzT3JNYXNrfDB4MA0K Pj4gIA0KPj4gKyAgIyBTZXQgR0hDQiBiYXNlIGFkZHJlc3MgZm9yIFNFVi1FUw0KPj4gKyAgZ1Vl ZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RHaGNiQmFzZXwweDANCj4+ICsgIGdVZWZpQ3B1UGtn VG9rZW5TcGFjZUd1aWQuUGNkR2hjYlNpemV8MHgwDQo+PiArDQo+PiAgIWlmICQoU01NX1JFUVVJ UkUpID09IFRSVUUNCj4+ICAgIGdVZWZpT3ZtZlBrZ1Rva2VuU3BhY2VHdWlkLlBjZFEzNVRzZWdN Ynl0ZXN8OA0KPj4gICAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3VpZC5QY2RDcHVTbW1TeW5jTW9k ZXwweDAxDQo+PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9EeGVJ cGwuaW5mIGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVpbS9EeGVJcGwuaW5mDQo+PiBpbmRl eCBhYmMzMjE3YjAxNzkuLmI5OTQzOTg2MzNlMyAxMDA2NDQNCj4+IC0tLSBhL01kZU1vZHVsZVBr Zy9Db3JlL0R4ZUlwbFBlaW0vRHhlSXBsLmluZg0KPj4gKysrIGIvTWRlTW9kdWxlUGtnL0NvcmUv RHhlSXBsUGVpbS9EeGVJcGwuaW5mDQo+PiBAQCAtNTIsNiArNTIsNyBAQCBbU291cmNlcy5BUk0s IFNvdXJjZXMuQUFSQ0g2NF0NCj4+ICBbUGFja2FnZXNdDQo+PiAgICBNZGVQa2cvTWRlUGtnLmRl Yw0KPj4gICAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4+ICsgIFVlZmlDcHVQa2cv VWVmaUNwdVBrZy5kZWMNCj4+ICANCj4+ICBbUGFja2FnZXMuQVJNLCBQYWNrYWdlcy5BQVJDSDY0 XQ0KPj4gICAgQXJtUGtnL0FybVBrZy5kZWMNCj4+IEBAIC0xMTAsNiArMTExLDggQEAgW1BjZC5J QTMyLFBjZC5YNjRdDQo+PiAgICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTnVs bFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0eU1hc2sgICAgIyMgQ09OU1VNRVMNCj4+ICAgIGdFZmlN ZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RIZWFwR3VhcmRQcm9wZXJ0eU1hc2sgICAgICAg ICAgICAgICAjIyBDT05TVU1FUw0KPj4gICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlk LlBjZENwdVN0YWNrR3VhcmQgICAgICAgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+PiAr ICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEdoY2JCYXNlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1 aWQuUGNkR2hjYlNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBDT05TVU1F Uw0KPj4gIA0KPj4gIFtQY2QuSUEzMixQY2QuWDY0LFBjZC5BUk0sUGNkLkFBUkNINjRdDQo+PiAg ICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2V0TnhGb3JTdGFjayAgICAgICAg ICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPj4gZGlmZiAtLWdpdCBhL092bWZQa2cvUGxh dGZvcm1QZWkvUGxhdGZvcm1QZWkuaW5mIGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybVBl aS5pbmYNCj4+IGluZGV4IGFlZDFmNjRiN2M5My4uZjUzMTk1ZTZkZGE1IDEwMDY0NA0KPj4gLS0t IGEvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybVBlaS5pbmYNCj4+ICsrKyBiL092bWZQa2cv UGxhdGZvcm1QZWkvUGxhdGZvcm1QZWkuaW5mDQo+PiBAQCAtMTAyLDYgKzEwMiw4IEBAIFtQY2Rd DQo+PiAgICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdU1heExvZ2ljYWxQcm9jZXNz b3JOdW1iZXINCj4+ICAgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1QXBJbml0VGlt ZU91dEluTWljcm9TZWNvbmRzDQo+PiAgICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENw dUFwU3RhY2tTaXplDQo+PiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEdoY2JCYXNl DQo+PiArICBnVWVmaUNwdVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEdoY2JTaXplDQo+PiAgDQo+PiAg W0ZpeGVkUGNkXQ0KPj4gICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBjaUV4cHJlc3NC YXNlQWRkcmVzcw0KPj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0v WDY0L1ZpcnR1YWxNZW1vcnkuaCBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1Zp cnR1YWxNZW1vcnkuaA0KPj4gaW5kZXggMmQwNDkzZjEwOWU4Li42YjdjMzhhNDQxZDYgMTAwNjQ0 DQo+PiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5 LmgNCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1v cnkuaA0KPj4gQEAgLTIwMSw2ICsyMDEsOCBAQCBFbmFibGVFeGVjdXRlRGlzYWJsZUJpdCAoDQo+ PiAgICBAcGFyYW1baW4sIG91dF0gUGFnZUVudHJ5Mk0gICAgICAgICAgIFBvaW50ZXIgdG8gMk0g cGFnZSBlbnRyeS4NCj4+ICAgIEBwYXJhbVtpbl0gICAgICBTdGFja0Jhc2UgICAgICAgICAgICAg U3RhY2sgYmFzZSBhZGRyZXNzLg0KPj4gICAgQHBhcmFtW2luXSAgICAgIFN0YWNrU2l6ZSAgICAg ICAgICAgICBTdGFjayBzaXplLg0KPj4gKyAgQHBhcmFtW2luXSAgICAgIEdoY2JCYXNlICAgICAg ICAgICAgICBHSENCIHBhZ2UgYXJlYSBiYXNlIGFkZHJlc3MuDQo+PiArICBAcGFyYW1baW5dICAg ICAgR2hjYlNpemUgICAgICAgICAgICAgIEdIQ0IgcGFnZSBhcmVhIHNpemUuDQo+PiAgDQo+PiAg KiovDQo+PiAgVk9JRA0KPj4gQEAgLTIwOCw3ICsyMTAsOSBAQCBTcGxpdDJNUGFnZVRvNEsgKA0K Pj4gICAgSU4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICAgICAgICBQaHlzaWNhbEFkZHJl c3MsDQo+PiAgICBJTiBPVVQgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICpQYWdlRW50 cnkyTSwNCj4+ICAgIElOIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgICAgICAgICAgU3RhY2tC YXNlLA0KPj4gLSAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFja1Np emUNCj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXpl LA0KPj4gKyAgSU4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICAgICAgICBHaGNiQmFzZSwN Cj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2hjYlNpemUNCj4+ ICAgICk7DQo+PiAgDQo+PiAgLyoqDQo+PiBAQCAtMjE3LDYgKzIyMSw4IEBAIFNwbGl0Mk1QYWdl VG80SyAoDQo+PiAgDQo+PiAgICBAcGFyYW1baW5dIFN0YWNrQmFzZSAgU3RhY2sgYmFzZSBhZGRy ZXNzLg0KPj4gICAgQHBhcmFtW2luXSBTdGFja1NpemUgIFN0YWNrIHNpemUuDQo+PiArICBAcGFy YW1baW5dIEdoY2JCYXNlICAgR0hDQiBwYWdlIGFyZWEgYmFzZSBhZGRyZXNzLg0KPj4gKyAgQHBh cmFtW2luXSBHaGNiU2l6ZSAgIEdIQ0IgcGFnZSBhcmVhIHNpemUuDQo+PiAgDQo+PiAgICBAcmV0 dXJuIFRoZSBhZGRyZXNzIG9mIDQgbGV2ZWwgcGFnZSBtYXAuDQo+PiAgDQo+PiBAQCAtMjI0LDcg KzIzMCw5IEBAIFNwbGl0Mk1QYWdlVG80SyAoDQo+PiAgVUlOVE4NCj4+ICBDcmVhdGVJZGVudGl0 eU1hcHBpbmdQYWdlVGFibGVzICgNCj4+ICAgIElOIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgU3Rh Y2tCYXNlLA0KPj4gLSAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICBTdGFja1NpemUNCj4+ICsg IElOIFVJTlROICAgICAgICAgICAgICAgICAgU3RhY2tTaXplLA0KPj4gKyAgSU4gRUZJX1BIWVNJ Q0FMX0FERFJFU1MgICBHaGNiQmFzZSwNCj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAg R2hjYmtTaXplDQo+PiAgICApOw0KPj4gIA0KPj4gIA0KPj4gZGlmZiAtLWdpdCBhL01kZU1vZHVs ZVBrZy9Db3JlL0R4ZUlwbFBlaW0vSWEzMi9EeGVMb2FkRnVuYy5jIGIvTWRlTW9kdWxlUGtnL0Nv cmUvRHhlSXBsUGVpbS9JYTMyL0R4ZUxvYWRGdW5jLmMNCj4+IGluZGV4IDE3MmQ3Y2QxYzYwYy4u NjMwYTM1MDNmNmJhIDEwMDY0NA0KPj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlSXBsUGVp bS9JYTMyL0R4ZUxvYWRGdW5jLmMNCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBl aW0vSWEzMi9EeGVMb2FkRnVuYy5jDQo+PiBAQCAtMTIzLDcgKzEyMyw3IEBAIENyZWF0ZTRHUGFn ZVRhYmxlc0lhMzJQYWUgKA0KPj4gICAgICAgICAgLy8NCj4+ICAgICAgICAgIC8vIE5lZWQgdG8g c3BsaXQgdGhpcyAyTSBwYWdlIHRoYXQgY292ZXJzIHN0YWNrIHJhbmdlLg0KPj4gICAgICAgICAg Ly8NCj4+IC0gICAgICAgIFNwbGl0Mk1QYWdlVG80SyAoUGh5c2ljYWxBZGRyZXNzLCAoVUlOVDY0 ICopIFBhZ2VEaXJlY3RvcnlFbnRyeSwgU3RhY2tCYXNlLCBTdGFja1NpemUpOw0KPj4gKyAgICAg ICAgU3BsaXQyTVBhZ2VUbzRLIChQaHlzaWNhbEFkZHJlc3MsIChVSU5UNjQgKikgUGFnZURpcmVj dG9yeUVudHJ5LCBTdGFja0Jhc2UsIFN0YWNrU2l6ZSwgMCwgMCk7DQo+PiAgICAgICAgfSBlbHNl IHsNCj4+ICAgICAgICAgIC8vDQo+PiAgICAgICAgICAvLyBGaWxsIGluIHRoZSBQYWdlIERpcmVj dG9yeSBlbnRyaWVzDQo+PiBAQCAtMjc4LDcgKzI3OCw3IEBAIEhhbmRPZmZUb0R4ZUNvcmUgKA0K Pj4gICAgICAvLw0KPj4gICAgICAvLyBDcmVhdGUgcGFnZSB0YWJsZSBhbmQgc2F2ZSBQYWdlTWFw TGV2ZWw0IHRvIENSMw0KPj4gICAgICAvLw0KPj4gLSAgICBQYWdlVGFibGVzID0gQ3JlYXRlSWRl bnRpdHlNYXBwaW5nUGFnZVRhYmxlcyAoQmFzZU9mU3RhY2ssIFNUQUNLX1NJWkUpOw0KPj4gKyAg ICBQYWdlVGFibGVzID0gQ3JlYXRlSWRlbnRpdHlNYXBwaW5nUGFnZVRhYmxlcyAoQmFzZU9mU3Rh Y2ssIFNUQUNLX1NJWkUsIDAsIDApOw0KPj4gIA0KPj4gICAgICAvLw0KPj4gICAgICAvLyBFbmQg b2YgUEVJIHBoYXNlIHNpZ25hbA0KPj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4 ZUlwbFBlaW0vWDY0L0R4ZUxvYWRGdW5jLmMgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGVJcGxQZWlt L1g2NC9EeGVMb2FkRnVuYy5jDQo+PiBpbmRleCAyODY3NjEwYmZmNGQuLjc3ZGEyMGU1YzVjNSAx MDA2NDQNCj4+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L0R4ZUxvYWRG dW5jLmMNCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L0R4ZUxvYWRG dW5jLmMNCj4+IEBAIC0zNSw2ICszNSw4IEBAIEhhbmRPZmZUb0R4ZUNvcmUgKA0KPj4gICAgVUlO VDMyICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsNCj4+ICAgIEVGSV9WRUNUT1JfSEFO RE9GRl9JTkZPICAgICAgICAgKlZlY3RvckluZm87DQo+PiAgICBFRklfUEVJX1ZFQ1RPUl9IQU5E T0ZGX0lORk9fUFBJICpWZWN0b3JIYW5kb2ZmSW5mb1BwaTsNCj4+ICsgIFZPSUQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKkdoY2JCYXNlOw0KPj4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICBHaGNiU2l6ZTsNCj4+ICANCj4+ICAgIGlmIChJc051bGxEZXRlY3Rpb25FbmFi bGVkICgpKSB7DQo+PiAgICAgIENsZWFyRmlyc3Q0S1BhZ2UgKEhvYkxpc3QuUmF3KTsNCj4+IEBA IC03NywxMiArNzksMTkgQEAgSGFuZE9mZlRvRHhlQ29yZSAoDQo+PiAgICBUb3BPZlN0YWNrID0g KFZPSUQgKikgKChVSU5UTikgQmFzZU9mU3RhY2sgKyBFRklfU0laRV9UT19QQUdFUyAoU1RBQ0tf U0laRSkgKiBFRklfUEFHRV9TSVpFIC0gQ1BVX1NUQUNLX0FMSUdOTUVOVCk7DQo+PiAgICBUb3BP ZlN0YWNrID0gQUxJR05fUE9JTlRFUiAoVG9wT2ZTdGFjaywgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7 DQo+PiAgDQo+PiArICAvLw0KPj4gKyAgLy8gR2V0IHRoZSBhZGRyZXNzIGFuZCBzaXplIG9mIHRo ZSBHSENCIHBhZ2VzDQo+PiArICAvLw0KPj4gKyAgR2hjYkJhc2UgPSAoVk9JRCAqKSBQY2RHZXQ2 NCAoUGNkR2hjYkJhc2UpOw0KPj4gKyAgR2hjYlNpemUgPSBQY2RHZXQ2NCAoUGNkR2hjYlNpemUp Ow0KPj4gKw0KPj4gICAgUGFnZVRhYmxlcyA9IDA7DQo+PiAgICBpZiAoRmVhdHVyZVBjZEdldCAo UGNkRHhlSXBsQnVpbGRQYWdlVGFibGVzKSkgew0KPj4gICAgICAvLw0KPj4gICAgICAvLyBDcmVh dGUgcGFnZSB0YWJsZSBhbmQgc2F2ZSBQYWdlTWFwTGV2ZWw0IHRvIENSMw0KPj4gICAgICAvLw0K Pj4gLSAgICBQYWdlVGFibGVzID0gQ3JlYXRlSWRlbnRpdHlNYXBwaW5nUGFnZVRhYmxlcyAoKEVG SV9QSFlTSUNBTF9BRERSRVNTKSAoVUlOVE4pIEJhc2VPZlN0YWNrLCBTVEFDS19TSVpFKTsNCj4+ ICsgICAgUGFnZVRhYmxlcyA9IENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMgKChFRklf UEhZU0lDQUxfQUREUkVTUykgKFVJTlROKSBCYXNlT2ZTdGFjaywgU1RBQ0tfU0laRSwNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFRklfUEhZ U0lDQUxfQUREUkVTUykgKFVJTlROKSBHaGNiQmFzZSwgR2hjYlNpemUpOw0KPj4gICAgfSBlbHNl IHsNCj4+ICAgICAgLy8NCj4+ICAgICAgLy8gU2V0IE5YIGZvciBzdGFjayBmZWF0dXJlIGFsc28g cmVxdWlyZSBQY2REeGVJcGxCdWlsZFBhZ2VUYWJsZXMgYmUgVFJVRQ0KPj4gZGlmZiAtLWdpdCBh L01kZU1vZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYyBiL01kZU1v ZHVsZVBrZy9Db3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYw0KPj4gaW5kZXggZWRj MzhlNDUyNWM0Li5iM2MzYzMyNzZlNmEgMTAwNjQ0DQo+PiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29y ZS9EeGVJcGxQZWltL1g2NC9WaXJ0dWFsTWVtb3J5LmMNCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9D b3JlL0R4ZUlwbFBlaW0vWDY0L1ZpcnR1YWxNZW1vcnkuYw0KPj4gQEAgLTE4MCw2ICsxODAsOCBA QCBFbmFibGVFeGVjdXRlRGlzYWJsZUJpdCAoDQo+PiAgICBAcGFyYW0gU2l6ZSAgICAgICAgIFNp emUgb2YgdGhlIGdpdmVuIHBoeXNpY2FsIG1lbW9yeS4NCj4+ICAgIEBwYXJhbSBTdGFja0Jhc2Ug ICAgQmFzZSBhZGRyZXNzIG9mIHN0YWNrLg0KPj4gICAgQHBhcmFtIFN0YWNrU2l6ZSAgICBTaXpl IG9mIHN0YWNrLg0KPj4gKyAgQHBhcmFtIEdoY2JCYXNlICAgICBCYXNlIGFkZHJlc3Mgb2YgR0hD QiBwYWdlcy4NCj4+ICsgIEBwYXJhbSBHaGNiU2l6ZSAgICAgU2l6ZSBvZiBHSENCIGFyZWEuDQo+ PiAgDQo+PiAgICBAcmV0dmFsIFRSVUUgICAgICBQYWdlIHRhYmxlIHNob3VsZCBiZSBzcGxpdC4N Cj4+ICAgIEByZXR2YWwgRkFMU0UgICAgIFBhZ2UgdGFibGUgc2hvdWxkIG5vdCBiZSBzcGxpdC4N Cj4+IEBAIC0xODksNyArMTkxLDkgQEAgVG9TcGxpdFBhZ2VUYWJsZSAoDQo+PiAgICBJTiBFRklf UEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAgIEFkZHJlc3MsDQo+PiAgICBJTiBVSU5UTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemUsDQo+PiAgICBJTiBFRklfUEhZU0lDQUxf QUREUkVTUyAgICAgICAgICAgICAgIFN0YWNrQmFzZSwNCj4+IC0gIElOIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplDQo+PiArICBJTiBVSU5UTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZSwNCj4+ICsgIElOIEVGSV9QSFlTSUNBTF9BRERS RVNTICAgICAgICAgICAgICAgR2hjYkJhc2UsDQo+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdoY2JTaXplDQo+PiAgICApDQo+PiAgew0KPj4gICAgaWYgKElzTnVs bERldGVjdGlvbkVuYWJsZWQgKCkgJiYgQWRkcmVzcyA9PSAwKSB7DQo+PiBAQCAtMjA4LDYgKzIx MiwxMiBAQCBUb1NwbGl0UGFnZVRhYmxlICgNCj4+ICAgICAgfQ0KPj4gICAgfQ0KPj4gIA0KPj4g KyAgaWYgKEdoY2JCYXNlKSB7DQo+PiArICAgIGlmICgoQWRkcmVzcyA8IEdoY2JCYXNlICsgR2hj YlNpemUpICYmICgoQWRkcmVzcyArIFNpemUpID4gR2hjYkJhc2UpKSB7DQo+PiArICAgICAgcmV0 dXJuIFRSVUU7DQo+PiArICAgIH0NCj4+ICsgIH0NCj4+ICsNCj4+ICAgIHJldHVybiBGQUxTRTsN Cj4+ICB9DQo+PiAgLyoqDQo+PiBAQCAtMzIxLDYgKzMzMSw4IEBAIEFsbG9jYXRlUGFnZVRhYmxl TWVtb3J5ICgNCj4+ICAgIEBwYXJhbVtpbiwgb3V0XSBQYWdlRW50cnkyTSAgICAgICAgICAgUG9p bnRlciB0byAyTSBwYWdlIGVudHJ5Lg0KPj4gICAgQHBhcmFtW2luXSAgICAgIFN0YWNrQmFzZSAg ICAgICAgICAgICBTdGFjayBiYXNlIGFkZHJlc3MuDQo+PiAgICBAcGFyYW1baW5dICAgICAgU3Rh Y2tTaXplICAgICAgICAgICAgIFN0YWNrIHNpemUuDQo+PiArICBAcGFyYW1baW5dICAgICAgR2hj YkJhc2UgICAgICAgICAgICAgIEdIQ0IgcGFnZSBhcmVhIGJhc2UgYWRkcmVzcy4NCj4+ICsgIEBw YXJhbVtpbl0gICAgICBHaGNiU2l6ZSAgICAgICAgICAgICAgR0hDQiBwYWdlIGFyZWEgc2l6ZS4N Cj4+ICANCj4+ICAqKi8NCj4+ICBWT0lEDQo+PiBAQCAtMzI4LDcgKzM0MCw5IEBAIFNwbGl0Mk1Q YWdlVG80SyAoDQo+PiAgICBJTiBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAgIFBo eXNpY2FsQWRkcmVzcywNCj4+ICAgIElOIE9VVCBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAg ICAgKlBhZ2VFbnRyeTJNLA0KPj4gICAgSU4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICAg ICAgICBTdGFja0Jhc2UsDQo+PiAtICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0YWNrU2l6ZQ0KPj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdGFja1NpemUsDQo+PiArICBJTiBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAg IEdoY2JCYXNlLA0KPj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH aGNiU2l6ZQ0KPj4gICAgKQ0KPj4gIHsNCj4+ICAgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAg ICAgICAgICAgICAgUGh5c2ljYWxBZGRyZXNzNEs7DQo+PiBAQCAtMzU0LDcgKzM2OCwxMiBAQCBT cGxpdDJNUGFnZVRvNEsgKA0KPj4gICAgICAvLw0KPj4gICAgICAvLyBGaWxsIGluIHRoZSBQYWdl IFRhYmxlIGVudHJpZXMNCj4+ICAgICAgLy8NCj4+IC0gICAgUGFnZVRhYmxlRW50cnktPlVpbnQ2 NCA9IChVSU5UNjQpIFBoeXNpY2FsQWRkcmVzczRLIHwgQWRkcmVzc0VuY01hc2s7DQo+PiArICAg IFBhZ2VUYWJsZUVudHJ5LT5VaW50NjQgPSAoVUlOVDY0KSBQaHlzaWNhbEFkZHJlc3M0SzsNCj4+ ICsgICAgaWYgKCFHaGNiQmFzZQ0KPj4gKyAgICAgICAgfHwgKFBoeXNpY2FsQWRkcmVzczRLIDwg R2hjYkJhc2UpDQo+PiArICAgICAgICB8fCAoUGh5c2ljYWxBZGRyZXNzNEsgPj0gR2hjYkJhc2Ug KyBHaGNiU2l6ZSkpIHsNCj4+ICsgICAgICBQYWdlVGFibGVFbnRyeS0+VWludDY0IHw9IEFkZHJl c3NFbmNNYXNrOw0KPj4gKyAgICB9DQo+PiAgICAgIFBhZ2VUYWJsZUVudHJ5LT5CaXRzLlJlYWRX cml0ZSA9IDE7DQo+PiAgDQo+PiAgICAgIGlmICgoSXNOdWxsRGV0ZWN0aW9uRW5hYmxlZCAoKSAm JiBQaHlzaWNhbEFkZHJlc3M0SyA9PSAwKSB8fA0KPj4gQEAgLTM4Miw2ICs0MDEsOCBAQCBTcGxp dDJNUGFnZVRvNEsgKA0KPj4gICAgQHBhcmFtW2luLCBvdXRdIFBhZ2VFbnRyeTFHICAgICAgICAg ICBQb2ludGVyIHRvIDFHIHBhZ2UgZW50cnkuDQo+PiAgICBAcGFyYW1baW5dICAgICAgU3RhY2tC YXNlICAgICAgICAgICAgIFN0YWNrIGJhc2UgYWRkcmVzcy4NCj4+ICAgIEBwYXJhbVtpbl0gICAg ICBTdGFja1NpemUgICAgICAgICAgICAgU3RhY2sgc2l6ZS4NCj4+ICsgIEBwYXJhbVtpbl0gICAg ICBHaGNiQmFzZSAgICAgICAgICAgICAgR0hDQiBwYWdlIGFyZWEgYmFzZSBhZGRyZXNzLg0KPj4g KyAgQHBhcmFtW2luXSAgICAgIEdoY2JTaXplICAgICAgICAgICAgICBHSENCIHBhZ2UgYXJlYSBz aXplLg0KPj4gIA0KPj4gICoqLw0KPj4gIFZPSUQNCj4+IEBAIC0zODksNyArNDEwLDkgQEAgU3Bs aXQxR1BhZ2VUbzJNICgNCj4+ICAgIElOIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgICAgICAg ICAgUGh5c2ljYWxBZGRyZXNzLA0KPj4gICAgSU4gT1VUIFVJTlQ2NCAgICAgICAgICAgICAgICAg ICAgICAgICAqUGFnZUVudHJ5MUcsDQo+PiAgICBJTiBFRklfUEhZU0lDQUxfQUREUkVTUyAgICAg ICAgICAgICAgIFN0YWNrQmFzZSwNCj4+IC0gIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RhY2tTaXplDQo+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0YWNrU2l6ZSwNCj4+ICsgIElOIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgICAg ICAgICAgR2hjYkJhc2UsDQo+PiArICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdoY2JTaXplDQo+PiAgICApDQo+PiAgew0KPj4gICAgRUZJX1BIWVNJQ0FMX0FERFJFU1Mg ICAgICAgICAgICAgICAgICBQaHlzaWNhbEFkZHJlc3MyTTsNCj4+IEBAIC00MTIsMTEgKzQzNSwx MSBAQCBTcGxpdDFHUGFnZVRvMk0gKA0KPj4gIA0KPj4gICAgUGh5c2ljYWxBZGRyZXNzMk0gPSBQ aHlzaWNhbEFkZHJlc3M7DQo+PiAgICBmb3IgKEluZGV4T2ZQYWdlRGlyZWN0b3J5RW50cmllcyA9 IDA7IEluZGV4T2ZQYWdlRGlyZWN0b3J5RW50cmllcyA8IDUxMjsgSW5kZXhPZlBhZ2VEaXJlY3Rv cnlFbnRyaWVzKyssIFBhZ2VEaXJlY3RvcnlFbnRyeSsrLCBQaHlzaWNhbEFkZHJlc3MyTSArPSBT SVpFXzJNQikgew0KPj4gLSAgICBpZiAoVG9TcGxpdFBhZ2VUYWJsZSAoUGh5c2ljYWxBZGRyZXNz Mk0sIFNJWkVfMk1CLCBTdGFja0Jhc2UsIFN0YWNrU2l6ZSkpIHsNCj4+ICsgICAgaWYgKFRvU3Bs aXRQYWdlVGFibGUgKFBoeXNpY2FsQWRkcmVzczJNLCBTSVpFXzJNQiwgU3RhY2tCYXNlLCBTdGFj a1NpemUsIEdoY2JCYXNlLCBHaGNiU2l6ZSkpIHsNCj4+ICAgICAgICAvLw0KPj4gICAgICAgIC8v IE5lZWQgdG8gc3BsaXQgdGhpcyAyTSBwYWdlIHRoYXQgY292ZXJzIE5VTEwgb3Igc3RhY2sgcmFu Z2UuDQo+PiAgICAgICAgLy8NCj4+IC0gICAgICBTcGxpdDJNUGFnZVRvNEsgKFBoeXNpY2FsQWRk cmVzczJNLCAoVUlOVDY0ICopIFBhZ2VEaXJlY3RvcnlFbnRyeSwgU3RhY2tCYXNlLCBTdGFja1Np emUpOw0KPj4gKyAgICAgIFNwbGl0Mk1QYWdlVG80SyAoUGh5c2ljYWxBZGRyZXNzMk0sIChVSU5U NjQgKikgUGFnZURpcmVjdG9yeUVudHJ5LCBTdGFja0Jhc2UsIFN0YWNrU2l6ZSwgR2hjYkJhc2Us IEdoY2JTaXplKTsNCj4+ICAgICAgfSBlbHNlIHsNCj4+ICAgICAgICAvLw0KPj4gICAgICAgIC8v IEZpbGwgaW4gdGhlIFBhZ2UgRGlyZWN0b3J5IGVudHJpZXMNCj4+IEBAIC02MTUsNiArNjM4LDgg QEAgRW5hYmxlUGFnZVRhYmxlUHJvdGVjdGlvbiAoDQo+PiAgDQo+PiAgICBAcGFyYW1baW5dIFN0 YWNrQmFzZSAgU3RhY2sgYmFzZSBhZGRyZXNzLg0KPj4gICAgQHBhcmFtW2luXSBTdGFja1NpemUg IFN0YWNrIHNpemUuDQo+PiArICBAcGFyYW1baW5dIEdoY2JCYXNlICAgR0hDQiBiYXNlIGFkZHJl c3MuDQo+PiArICBAcGFyYW1baW5dIEdoY2JTaXplICAgR0hDQiBzaXplLg0KPj4gIA0KPj4gICAg QHJldHVybiBUaGUgYWRkcmVzcyBvZiA0IGxldmVsIHBhZ2UgbWFwLg0KPj4gIA0KPj4gQEAgLTYy Miw3ICs2NDcsOSBAQCBFbmFibGVQYWdlVGFibGVQcm90ZWN0aW9uICgNCj4+ICBVSU5UTg0KPj4g IENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMgKA0KPj4gICAgSU4gRUZJX1BIWVNJQ0FM X0FERFJFU1MgICBTdGFja0Jhc2UsDQo+PiAtICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgIFN0 YWNrU2l6ZQ0KPj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICBTdGFja1NpemUsDQo+PiAr ICBJTiBFRklfUEhZU0lDQUxfQUREUkVTUyAgIEdoY2JCYXNlLA0KPj4gKyAgSU4gVUlOVE4gICAg ICAgICAgICAgICAgICBHaGNiU2l6ZQ0KPj4gICAgKQ0KPj4gIHsNCj4+ICAgIFVJTlQzMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdFYXg7DQo+PiBAQCAtNzM0LDgg Kzc2MSw4IEBAIENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMgKA0KPj4gICAgICAgIFBh Z2VEaXJlY3RvcnkxR0VudHJ5ID0gKFZPSUQgKikgUGFnZURpcmVjdG9yeVBvaW50ZXJFbnRyeTsN Cj4+ICANCj4+ICAgICAgICBmb3IgKEluZGV4T2ZQYWdlRGlyZWN0b3J5RW50cmllcyA9IDA7IElu ZGV4T2ZQYWdlRGlyZWN0b3J5RW50cmllcyA8IDUxMjsgSW5kZXhPZlBhZ2VEaXJlY3RvcnlFbnRy aWVzKyssIFBhZ2VEaXJlY3RvcnkxR0VudHJ5KyssIFBhZ2VBZGRyZXNzICs9IFNJWkVfMUdCKSB7 DQo+PiAtICAgICAgICBpZiAoVG9TcGxpdFBhZ2VUYWJsZSAoUGFnZUFkZHJlc3MsIFNJWkVfMUdC LCBTdGFja0Jhc2UsIFN0YWNrU2l6ZSkpIHsNCj4+IC0gICAgICAgICAgU3BsaXQxR1BhZ2VUbzJN IChQYWdlQWRkcmVzcywgKFVJTlQ2NCAqKSBQYWdlRGlyZWN0b3J5MUdFbnRyeSwgU3RhY2tCYXNl LCBTdGFja1NpemUpOw0KPj4gKyAgICAgICAgaWYgKFRvU3BsaXRQYWdlVGFibGUgKFBhZ2VBZGRy ZXNzLCBTSVpFXzFHQiwgU3RhY2tCYXNlLCBTdGFja1NpemUsIEdoY2JCYXNlLCBHaGNiU2l6ZSkp IHsNCj4+ICsgICAgICAgICAgU3BsaXQxR1BhZ2VUbzJNIChQYWdlQWRkcmVzcywgKFVJTlQ2NCAq KSBQYWdlRGlyZWN0b3J5MUdFbnRyeSwgU3RhY2tCYXNlLCBTdGFja1NpemUsIEdoY2JCYXNlLCBH aGNiU2l6ZSk7DQo+PiAgICAgICAgICB9IGVsc2Ugew0KPj4gICAgICAgICAgICAvLw0KPj4gICAg ICAgICAgICAvLyBGaWxsIGluIHRoZSBQYWdlIERpcmVjdG9yeSBlbnRyaWVzDQo+PiBAQCAtNzYz LDExICs3OTAsMTEgQEAgQ3JlYXRlSWRlbnRpdHlNYXBwaW5nUGFnZVRhYmxlcyAoDQo+PiAgICAg ICAgICBQYWdlRGlyZWN0b3J5UG9pbnRlckVudHJ5LT5CaXRzLlByZXNlbnQgPSAxOw0KPj4gIA0K Pj4gICAgICAgICAgZm9yIChJbmRleE9mUGFnZURpcmVjdG9yeUVudHJpZXMgPSAwOyBJbmRleE9m UGFnZURpcmVjdG9yeUVudHJpZXMgPCA1MTI7IEluZGV4T2ZQYWdlRGlyZWN0b3J5RW50cmllcysr LCBQYWdlRGlyZWN0b3J5RW50cnkrKywgUGFnZUFkZHJlc3MgKz0gU0laRV8yTUIpIHsNCj4+IC0g ICAgICAgICAgaWYgKFRvU3BsaXRQYWdlVGFibGUgKFBhZ2VBZGRyZXNzLCBTSVpFXzJNQiwgU3Rh Y2tCYXNlLCBTdGFja1NpemUpKSB7DQo+PiArICAgICAgICAgIGlmIChUb1NwbGl0UGFnZVRhYmxl IChQYWdlQWRkcmVzcywgU0laRV8yTUIsIFN0YWNrQmFzZSwgU3RhY2tTaXplLCBHaGNiQmFzZSwg R2hjYlNpemUpKSB7DQo+PiAgICAgICAgICAgICAgLy8NCj4+ICAgICAgICAgICAgICAvLyBOZWVk IHRvIHNwbGl0IHRoaXMgMk0gcGFnZSB0aGF0IGNvdmVycyBOVUxMIG9yIHN0YWNrIHJhbmdlLg0K Pj4gICAgICAgICAgICAgIC8vDQo+PiAtICAgICAgICAgICAgU3BsaXQyTVBhZ2VUbzRLIChQYWdl QWRkcmVzcywgKFVJTlQ2NCAqKSBQYWdlRGlyZWN0b3J5RW50cnksIFN0YWNrQmFzZSwgU3RhY2tT aXplKTsNCj4+ICsgICAgICAgICAgICBTcGxpdDJNUGFnZVRvNEsgKFBhZ2VBZGRyZXNzLCAoVUlO VDY0ICopIFBhZ2VEaXJlY3RvcnlFbnRyeSwgU3RhY2tCYXNlLCBTdGFja1NpemUsIEdoY2JCYXNl LCBHaGNiU2l6ZSk7DQo+PiAgICAgICAgICAgIH0gZWxzZSB7DQo+PiAgICAgICAgICAgICAgLy8N Cj4+ICAgICAgICAgICAgICAvLyBGaWxsIGluIHRoZSBQYWdlIERpcmVjdG9yeSBlbnRyaWVzDQo+ PiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9MaWJyYXJ5L0Jhc2VNZW1FbmNyeXB0U2V2TGliL01lbUVu Y3J5cHRTZXZMaWJJbnRlcm5hbC5jIGIvT3ZtZlBrZy9MaWJyYXJ5L0Jhc2VNZW1FbmNyeXB0U2V2 TGliL01lbUVuY3J5cHRTZXZMaWJJbnRlcm5hbC5jDQo+PiBpbmRleCA5YzFkNjhlMDE3ZmUuLjFk Y2UwMWRkNzU0NiAxMDA2NDQNCj4+IC0tLSBhL092bWZQa2cvTGlicmFyeS9CYXNlTWVtRW5jcnlw dFNldkxpYi9NZW1FbmNyeXB0U2V2TGliSW50ZXJuYWwuYw0KPj4gKysrIGIvT3ZtZlBrZy9MaWJy YXJ5L0Jhc2VNZW1FbmNyeXB0U2V2TGliL01lbUVuY3J5cHRTZXZMaWJJbnRlcm5hbC5jDQo+PiBA QCAtMTA5LDcgKzEwOSw2IEBAIE1lbUVuY3J5cHRTZXZJc0VuYWJsZWQgKA0KPj4gICAgcmV0dXJu IG1TZXZTdGF0dXM7DQo+PiAgfQ0KPj4gIA0KPj4gLQ0KPj4gIC8qKg0KPj4gICAgTG9jYXRlIHRo ZSBwYWdlIHJhbmdlIHRoYXQgY292ZXJzIHRoZSBpbml0aWFsIChwcmUtU01CQVNFLXJlbG9jYXRp b24pIFNNUkFNDQo+PiAgICBTYXZlIFN0YXRlIE1hcC4NCj4+IGRpZmYgLS1naXQgYS9Pdm1mUGtn L0xpYnJhcnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnkuYyBiL092bWZQ a2cvTGlicmFyeS9CYXNlTWVtRW5jcnlwdFNldkxpYi9YNjQvVmlydHVhbE1lbW9yeS5jDQo+PiBp bmRleCA1ZTExMGM4NGZmODEuLjNhNGYyMjNmOGE4NiAxMDA2NDQNCj4+IC0tLSBhL092bWZQa2cv TGlicmFyeS9CYXNlTWVtRW5jcnlwdFNldkxpYi9YNjQvVmlydHVhbE1lbW9yeS5jDQo+PiArKysg Yi9Pdm1mUGtnL0xpYnJhcnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnku Yw0KPj4gQEAgLTE4Myw2ICsxODMsOCBAQCBBbGxvY2F0ZVBhZ2VUYWJsZU1lbW9yeSAoDQo+PiAg ICBAcGFyYW1baW4sIG91dF0gUGFnZUVudHJ5Mk0gICAgICAgICAgIFBvaW50ZXIgdG8gMk0gcGFn ZSBlbnRyeS4NCj4+ICAgIEBwYXJhbVtpbl0gICAgICBTdGFja0Jhc2UgICAgICAgICAgICAgU3Rh Y2sgYmFzZSBhZGRyZXNzLg0KPj4gICAgQHBhcmFtW2luXSAgICAgIFN0YWNrU2l6ZSAgICAgICAg ICAgICBTdGFjayBzaXplLg0KPj4gKyAgQHBhcmFtW2luXSAgICAgIEdoY2JCYXNlICAgICAgICAg ICAgICBHSENCIHBhZ2UgYXJlYSBiYXNlIGFkZHJlc3MuDQo+PiArICBAcGFyYW1baW5dICAgICAg R2hjYlNpemUgICAgICAgICAgICAgIEdIQ0IgcGFnZSBhcmVhIHNpemUuDQo+PiAgDQo+PiAgKiov DQo+PiAgU1RBVElDDQo+PiBAQCAtMTkxLDcgKzE5Myw5IEBAIFNwbGl0Mk1QYWdlVG80SyAoDQo+ PiAgICBJTiAgICAgICAgUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAgIFBoeXNpY2FsQWRk cmVzcywNCj4+ICAgIElOICBPVVQgICBVSU5UNjQgICAgICAgICAgICAgICAgICAgICAgICAqUGFn ZUVudHJ5Mk0sDQo+PiAgICBJTiAgICAgICAgUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAg IFN0YWNrQmFzZSwNCj4+IC0gIElOICAgICAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RhY2tTaXplDQo+PiArICBJTiAgICAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgIFN0YWNrU2l6ZSwNCj4+ICsgIElOICAgICAgICBQSFlTSUNBTF9BRERSRVNTICAgICAgICAg ICAgICAgR2hjYkJhc2UsDQo+PiArICBJTiAgICAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgIEdoY2JTaXplDQo+PiAgICApDQo+PiAgew0KPj4gICAgUEhZU0lDQUxfQUREUkVTUyAg ICAgICAgICAgICAgICAgIFBoeXNpY2FsQWRkcmVzczRLOw0KPj4gQEAgLTIxNyw3ICsyMjEsMTIg QEAgU3BsaXQyTVBhZ2VUbzRLICgNCj4+ICAgICAgLy8NCj4+ICAgICAgLy8gRmlsbCBpbiB0aGUg UGFnZSBUYWJsZSBlbnRyaWVzDQo+PiAgICAgIC8vDQo+PiAtICAgIFBhZ2VUYWJsZUVudHJ5LT5V aW50NjQgPSAoVUlOVDY0KSBQaHlzaWNhbEFkZHJlc3M0SyB8IEFkZHJlc3NFbmNNYXNrOw0KPj4g KyAgICBQYWdlVGFibGVFbnRyeS0+VWludDY0ID0gKFVJTlQ2NCkgUGh5c2ljYWxBZGRyZXNzNEs7 DQo+PiArICAgIGlmICghR2hjYkJhc2UNCj4+ICsgICAgICAgIHx8IChQaHlzaWNhbEFkZHJlc3M0 SyA8IEdoY2JCYXNlKQ0KPj4gKyAgICAgICAgfHwgKFBoeXNpY2FsQWRkcmVzczRLID49IEdoY2JC YXNlICsgR2hjYlNpemUpKSB7DQo+PiArICAgICAgUGFnZVRhYmxlRW50cnktPlVpbnQ2NCB8PSBB ZGRyZXNzRW5jTWFzazsNCj4+ICsgICAgfQ0KPj4gICAgICBQYWdlVGFibGVFbnRyeS0+Qml0cy5S ZWFkV3JpdGUgPSAxOw0KPj4gICAgICBQYWdlVGFibGVFbnRyeS0+Qml0cy5QcmVzZW50ID0gMTsN Cj4+ICAgICAgaWYgKChQaHlzaWNhbEFkZHJlc3M0SyA+PSBTdGFja0Jhc2UpICYmDQo+PiBAQCAt NDE3LDYgKzQyNiw4IEBAIEVuYWJsZVBhZ2VUYWJsZVByb3RlY3Rpb24gKA0KPj4gICAgQHBhcmFt W2luLCBvdXRdIFBhZ2VFbnRyeTFHICAgICAgICAgICBQb2ludGVyIHRvIDFHIHBhZ2UgZW50cnku DQo+PiAgICBAcGFyYW1baW5dICAgICAgU3RhY2tCYXNlICAgICAgICAgICAgIFN0YWNrIGJhc2Ug YWRkcmVzcy4NCj4+ICAgIEBwYXJhbVtpbl0gICAgICBTdGFja1NpemUgICAgICAgICAgICAgU3Rh Y2sgc2l6ZS4NCj4+ICsgIEBwYXJhbVtpbl0gICAgICBHaGNiQmFzZSAgICAgICAgICAgICAgR0hD QiBwYWdlIGFyZWEgYmFzZSBhZGRyZXNzLg0KPj4gKyAgQHBhcmFtW2luXSAgICAgIEdoY2JTaXpl ICAgICAgICAgICAgICBHSENCIHBhZ2UgYXJlYSBzaXplLg0KPj4gIA0KPj4gICoqLw0KPj4gIFNU QVRJQw0KPj4gQEAgLTQyNSw3ICs0MzYsOSBAQCBTcGxpdDFHUGFnZVRvMk0gKA0KPj4gICAgSU4g ICAgICAgICAgUEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgICAgIFBoeXNpY2FsQWRkcmVzcywN Cj4+ICAgIElOICBPVVQgICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICAqUGFnZUVu dHJ5MUcsDQo+PiAgICBJTiAgICAgICAgICBQSFlTSUNBTF9BRERSRVNTICAgICAgICAgICAgICAg U3RhY2tCYXNlLA0KPj4gLSAgSU4gICAgICAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgIFN0YWNrU2l6ZQ0KPj4gKyAgSU4gICAgICAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICAgIFN0YWNrU2l6ZSwNCj4+ICsgIElOICAgICAgICAgIFBIWVNJQ0FMX0FERFJFU1MgICAg ICAgICAgICAgICBHaGNiQmFzZSwNCj4+ICsgIElOICAgICAgICAgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgICAgICBHaGNiU2l6ZQ0KPj4gICAgKQ0KPj4gIHsNCj4+ICAgIFBIWVNJQ0FMX0FE RFJFU1MgICAgICAgICAgICAgICAgICBQaHlzaWNhbEFkZHJlc3MyTTsNCj4+IEBAIC00NTAsOCAr NDYzLDEwIEBAIFNwbGl0MUdQYWdlVG8yTSAoDQo+PiAgICAgICAgIChJbmRleE9mUGFnZURpcmVj dG9yeUVudHJpZXMrKywNCj4+ICAgICAgICAgIFBhZ2VEaXJlY3RvcnlFbnRyeSsrLA0KPj4gICAg ICAgICAgUGh5c2ljYWxBZGRyZXNzMk0gKz0gU0laRV8yTUIpKSB7DQo+PiAtICAgIGlmICgoUGh5 c2ljYWxBZGRyZXNzMk0gPCBTdGFja0Jhc2UgKyBTdGFja1NpemUpICYmDQo+PiAtICAgICAgICAo KFBoeXNpY2FsQWRkcmVzczJNICsgU0laRV8yTUIpID4gU3RhY2tCYXNlKSkgew0KPj4gKyAgICBp ZiAoKChQaHlzaWNhbEFkZHJlc3MyTSA8IFN0YWNrQmFzZSArIFN0YWNrU2l6ZSkgJiYNCj4+ICsg ICAgICAgICAoKFBoeXNpY2FsQWRkcmVzczJNICsgU0laRV8yTUIpID4gU3RhY2tCYXNlKSkgfHwN Cj4+ICsgICAgICAgICgoUGh5c2ljYWxBZGRyZXNzMk0gPCBHaGNiQmFzZSArIEdoY2JTaXplKSAm Jg0KPj4gKyAgICAgICAgICgoUGh5c2ljYWxBZGRyZXNzMk0gKyBTSVpFXzJNQikgPiBHaGNiQmFz ZSkpKSB7DQo+PiAgICAgICAgLy8NCj4+ICAgICAgICAvLyBOZWVkIHRvIHNwbGl0IHRoaXMgMk0g cGFnZSB0aGF0IGNvdmVycyBzdGFjayByYW5nZS4NCj4+ICAgICAgICAvLw0KPj4gQEAgLTQ1OSw3 ICs0NzQsOSBAQCBTcGxpdDFHUGFnZVRvMk0gKA0KPj4gICAgICAgICAgUGh5c2ljYWxBZGRyZXNz Mk0sDQo+PiAgICAgICAgICAoVUlOVDY0ICopUGFnZURpcmVjdG9yeUVudHJ5LA0KPj4gICAgICAg ICAgU3RhY2tCYXNlLA0KPj4gLSAgICAgICAgU3RhY2tTaXplDQo+PiArICAgICAgICBTdGFja1Np emUsDQo+PiArICAgICAgICBHaGNiQmFzZSwNCj4+ICsgICAgICAgIEdoY2JTaXplDQo+PiAgICAg ICAgICApOw0KPj4gICAgICB9IGVsc2Ugew0KPj4gICAgICAgIC8vDQo+PiBAQCAtNzE0LDYgKzcz MSw4IEBAIFNldE1lbW9yeUVuY0RlYyAoDQo+PiAgICAgICAgICAgIChVSU5UNjQpUGFnZURpcmVj dG9yeTFHRW50cnktPkJpdHMuUGFnZVRhYmxlQmFzZUFkZHJlc3MgPDwgMzAsDQo+PiAgICAgICAg ICAgIChVSU5UNjQgKilQYWdlRGlyZWN0b3J5MUdFbnRyeSwNCj4+ICAgICAgICAgICAgMCwNCj4+ ICsgICAgICAgICAgMCwNCj4+ICsgICAgICAgICAgMCwNCj4+ICAgICAgICAgICAgMA0KPj4gICAg ICAgICAgICApOw0KPj4gICAgICAgICAgY29udGludWU7DQo+PiBAQCAtNzY4LDYgKzc4Nyw4IEBA IFNldE1lbW9yeUVuY0RlYyAoDQo+PiAgICAgICAgICAgICAgKFVJTlQ2NClQYWdlRGlyZWN0b3J5 Mk1FbnRyeS0+Qml0cy5QYWdlVGFibGVCYXNlQWRkcmVzcyA8PCAyMSwNCj4+ICAgICAgICAgICAg ICAoVUlOVDY0ICopUGFnZURpcmVjdG9yeTJNRW50cnksDQo+PiAgICAgICAgICAgICAgMCwNCj4+ ICsgICAgICAgICAgICAwLA0KPj4gKyAgICAgICAgICAgIDAsDQo+PiAgICAgICAgICAgICAgMA0K Pj4gICAgICAgICAgICAgICk7DQo+PiAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gZGlmZiAtLWdp dCBhL092bWZQa2cvUGxhdGZvcm1QZWkvQW1kU2V2LmMgYi9Pdm1mUGtnL1BsYXRmb3JtUGVpL0Ft ZFNldi5jDQo+PiBpbmRleCAyYWU4MTI2Y2NmOGEuLjg0ODk2ZDQ2ODFmOSAxMDA2NDQNCj4+IC0t LSBhL092bWZQa2cvUGxhdGZvcm1QZWkvQW1kU2V2LmMNCj4+ICsrKyBiL092bWZQa2cvUGxhdGZv cm1QZWkvQW1kU2V2LmMNCj4+IEBAIC0xNiw5ICsxNiw2OCBAQA0KPj4gICNpbmNsdWRlIDxQaVBl aS5oPg0KPj4gICNpbmNsdWRlIDxSZWdpc3Rlci9BbWQvQ3B1aWQuaD4NCj4+ICAjaW5jbHVkZSA8 UmVnaXN0ZXIvQ3B1aWQuaD4NCj4+ICsjaW5jbHVkZSA8UmVnaXN0ZXIvQW1kL01zci5oPg0KPj4g KyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4+ICsjaW5jbHVkZSA8TGlicmFy eS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+PiAgDQo+PiAgI2luY2x1ZGUgIlBsYXRmb3JtLmgi DQo+PiAgDQo+PiArLyoqDQo+PiArDQo+PiArICBJbml0aWFsaXplIFNFVi1FUyBzdXBwb3J0IGlm IHJ1bm5pbmcgYW4gU0VWLUVTIGd1ZXN0Lg0KPj4gKw0KPj4gKyAgKiovDQo+PiArU1RBVElDDQo+ PiArVk9JRA0KPj4gK0FtZFNldkVzSW5pdGlhbGl6ZSAoDQo+PiArICBWT0lEDQo+PiArICApDQo+ PiArew0KPj4gKyAgVk9JRCAgICAgICAgICAgICAgKkdoY2JCYXNlOw0KPj4gKyAgUEhZU0lDQUxf QUREUkVTUyAgR2hjYkJhc2VQYTsNCj4+ICsgIFVJTlROICAgICAgICAgICAgIEdoY2JQYWdlQ291 bnQ7DQo+PiArICBSRVRVUk5fU1RBVFVTICAgICBEZWNyeXB0U3RhdHVzLCBQY2RTdGF0dXM7DQo+ PiArDQo+PiArICBpZiAoIU1lbUVuY3J5cHRTZXZFc0lzRW5hYmxlZCAoKSkgew0KPj4gKyAgICBy ZXR1cm47DQo+PiArICB9DQo+PiArDQo+PiArICBHaGNiUGFnZUNvdW50ID0gbU1heENwdUNvdW50 Ow0KPj4gKw0KPj4gKyAgLy8NCj4+ICsgIC8vIEFsbG9jYXRlIEdIQ0IgcGFnZXMuDQo+PiArICAv Lw0KPj4gKyAgR2hjYkJhc2UgPSBBbGxvY2F0ZVBhZ2VzIChHaGNiUGFnZUNvdW50KTsNCj4+ICsg IEFTU0VSVCAoR2hjYkJhc2UpOw0KPj4gKw0KPj4gKyAgR2hjYkJhc2VQYSA9IChQSFlTSUNBTF9B RERSRVNTKShVSU5UTikgR2hjYkJhc2U7DQo+PiArDQo+PiArICBEZWNyeXB0U3RhdHVzID0gTWVt RW5jcnlwdFNldkNsZWFyUGFnZUVuY01hc2sgKA0KPj4gKyAgICAwLA0KPj4gKyAgICBHaGNiQmFz ZVBhLA0KPj4gKyAgICBHaGNiUGFnZUNvdW50LA0KPj4gKyAgICBUUlVFDQo+PiArICAgICk7DQo+ PiArICBBU1NFUlRfUkVUVVJOX0VSUk9SIChEZWNyeXB0U3RhdHVzKTsNCj4+ICsNCj4+ICsgIEJ1 aWxkTWVtb3J5QWxsb2NhdGlvbkhvYiAoDQo+PiArICAgIEdoY2JCYXNlUGEsDQo+PiArICAgIEVG SV9QQUdFU19UT19TSVpFIChHaGNiUGFnZUNvdW50KSwNCj4+ICsgICAgRWZpQm9vdFNlcnZpY2Vz RGF0YQ0KPj4gKyAgICApOw0KPj4gKw0KPj4gKyAgU2V0TWVtIChHaGNiQmFzZSwgR2hjYlBhZ2VD b3VudCAqIFNJWkVfNEtCLCAwKTsNCj4+ICsNCj4+ICsgIFBjZFN0YXR1cyA9IFBjZFNldDY0UyAo UGNkR2hjYkJhc2UsIChVSU5UNjQpR2hjYkJhc2VQYSk7DQo+PiArICBBU1NFUlRfUkVUVVJOX0VS Uk9SIChQY2RTdGF0dXMpOw0KPj4gKyAgUGNkU3RhdHVzID0gUGNkU2V0NjRTIChQY2RHaGNiU2l6 ZSwgKFVJTlQ2NClFRklfUEFHRVNfVE9fU0laRSAoR2hjYlBhZ2VDb3VudCkpOw0KPj4gKyAgQVNT RVJUX1JFVFVSTl9FUlJPUiAoUGNkU3RhdHVzKTsNCj4+ICsNCj4+ICsgIERFQlVHICgoREVCVUdf SU5GTywgIlNFVi1FUyBpcyBlbmFibGVkLCAldSBHSENCIHBhZ2VzIGFsbG9jYXRlZCBzdGFydGlu ZyBhdCAweCVseFxuIiwgR2hjYlBhZ2VDb3VudCwgR2hjYkJhc2UpKTsNCj4+ICsNCj4+ICsgIEFz bVdyaXRlTXNyNjQgKE1TUl9TRVZfRVNfR0hDQiwgKFVJTlQ2NClHaGNiQmFzZVBhKTsNCj4+ICt9 DQo+PiArDQo+PiAgLyoqDQo+PiAgDQo+PiAgICBGdW5jdGlvbiBjaGVja3MgaWYgU0VWIHN1cHBv cnQgaXMgYXZhaWxhYmxlLCBpZiBwcmVzZW50IHRoZW4gaXQgc2V0cw0KPj4gQEAgLTg5LDQgKzE0 OCw5IEBAIEFtZFNldkluaXRpYWxpemUgKA0KPj4gICAgICAgIEVmaUJvb3RTZXJ2aWNlc0RhdGEg ICAgICAgICAgICAgICAgLy8gTWVtb3J5VHlwZQ0KPj4gICAgICAgICk7DQo+PiAgICB9DQo+PiAr DQo+PiArICAvLw0KPj4gKyAgLy8gQ2hlY2sgYW5kIHBlcmZvcm0gU0VWLUVTIGluaXRpYWxpemF0 aW9uIGlmIHJlcXVpcmVkLg0KPj4gKyAgLy8NCj4+ICsgIEFtZFNldkVzSW5pdGlhbGl6ZSAoKTsN Cj4+ICB9DQo+Pg0KPiANCg==