From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.7965.1592576502565441385 for ; Fri, 19 Jun 2020 07:21:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=M+efcoqX; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: eric.dong@intel.com) IronPort-SDR: +s2L5WK1QWyO4/P2tVsS92IXtJIY/+xYuoQZyMbObWOFsUu5t+8dSWv3TftQJ6G5YP+mwp4vY4 xu3DzkU6EqMA== X-IronPort-AV: E=McAfee;i="6000,8403,9656"; a="140491357" X-IronPort-AV: E=Sophos;i="5.75,255,1589266800"; d="scan'208";a="140491357" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jun 2020 07:21:42 -0700 IronPort-SDR: ZkHhTHGRaVVKP3YYfIHhiGSm0XN3pqFrX7XyMOhYlp40qdZ0zkTxFUQLjXXe1Gv21Wj2wZGbuo 5JOJNt21o/Gw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,255,1589266800"; d="scan'208";a="262313502" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga007.fm.intel.com with ESMTP; 19 Jun 2020 07:21:42 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 19 Jun 2020 07:21:41 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 19 Jun 2020 07:21:41 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 19 Jun 2020 07:21:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h1NLg4FG8exbFYR7FSS8nmdx80uVV8Oa8grKjMkK6RSRKog8oQVAyus2UrqjnOU4ug1zBVLLi/QQTiOKFYevr27gewMfviGJNDzLgO8bM8UV/Wa8J9aow92/kk74+7WC77jdbzz/HiVRXhChH9eKviJBXRYTRWL0zJpsMuCYSdSWDlRtj3J0rbnyzeNMwaKhL8JrIAlWOXD5EE2Jf2/+BBlJuo0G0rW7BhCeo07DgANDuhiAXy6wZuvA2242p5a1pqETR1CxItQF/vLs0zhBxituYZPWoO3nGoE1q/W5sYqsBmKqiJmeNoe4LdRwve7F55U7ttF2h0enseLTiDo09w== 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=q5R6Kx0aA81/674ECoeDMbq9cBQ6K/haERD1VTzmKUg=; b=IbDNGR8si82cf/ov1ppdEcLXcrXpuyYsO0/QfL0diGgei2noWKAa4v4cnutGhorX1nYNW1eU5SKinxsYoPTRktssP7MU0UdbZEfMubcUAJpKnaK3UGwPh52s3K+oPX/qxY8Ac220KEc9E5Qfy+gSA0J0qrubWDUR4qrTXSD9oJbcL/SQiy9dFO7LnT4gaO5KZlrcdvShYGHIW0DQL0AXpN/lK4FF+80jhmPCobgWeNMDCLcKVYE9WC0i0C63++/FDpq4e2/S+YGox378uIxTgtVe9f8VmaS9cnDYn9eM73kPVseWJnOeDi/jM45qbpwxBAC5rdaK9pudKK0DXga4tg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q5R6Kx0aA81/674ECoeDMbq9cBQ6K/haERD1VTzmKUg=; b=M+efcoqXXMHx6MMpOcEAFmzLBI5+yuIIKxj6utIhwXUcgmpqgHbOmAkXujU33eF9EllXFUX5XofMLRcBefxG+9MPQhT6kmzjkdc7WaHEfCjvO2vukHoT2wfEA6Bi0ahMu0uGz9lcV1uJfSPe1YiOMuxxc00ooXKZrdjNelxT1qM= Received: from DM6PR11MB3274.namprd11.prod.outlook.com (2603:10b6:5:b::26) by DM5PR11MB1450.namprd11.prod.outlook.com (2603:10b6:4:f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.23; Fri, 19 Jun 2020 14:21:39 +0000 Received: from DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7]) by DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7%6]) with mapi id 15.20.3109.021; Fri, 19 Jun 2020 14:21:39 +0000 From: "Dong, Eric" To: "devel@edk2.groups.io" , "thomas.lendacky@amd.com" CC: Brijesh Singh , Ard Biesheuvel , "Justen, Jordan L" , Laszlo Ersek , "Gao, Liming" , "Kinney, Michael D" , "Ni, Ray" Subject: Re: [edk2-devel] [PATCH v9 08/46] UefiCpuPkg: Implement library support for VMGEXIT Thread-Topic: [edk2-devel] [PATCH v9 08/46] UefiCpuPkg: Implement library support for VMGEXIT Thread-Index: AQHWOz05dLSNV8eSi0ONN1AjzdEnMKjeC9YQgABx1wCAASa50IAAZnEAgAAIKIA= Date: Fri, 19 Jun 2020 14:21:39 +0000 Message-ID: References: <79f21141-07c6-d63f-7680-1ef08c53ecec@amd.com> <2d5f88ec-b3c4-8beb-dd60-68640f96b0da@amd.com> In-Reply-To: <2d5f88ec-b3c4-8beb-dd60-68640f96b0da@amd.com> 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=intel.com; x-originating-ip: [192.102.204.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a24795b8-56c0-4607-3727-08d8145c152a x-ms-traffictypediagnostic: DM5PR11MB1450: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0439571D1D x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MlYP0/l0H7LMETj+ZGcrCIBnEDpYJU7/mfIPLkZkYs+IMZNv8J+egW3uVm/lliAOEId4TNQYwQJrGLlzlSsAkoz0npbboL1E5Qa0juBEqljXOTfL7ctR4Z2NQMgFgxtrSC5jTWrjSG31SpM5YT/txXD3C0HRbDzWp8pyQaJ1yV80PZMVu83WdYnXR2s4wfrKwTe2FvUH1wKicaO5RR2macBuJmHKVJmNDHHk0vw5ASWCUHQFYGtOwdFrNKyT8C/4aidP0KjOCjE24Ld+fGRQQG4vMeS3h4l+1miXND2Gemc5B18us0d6mPHs7ilpwltU4FEzEPdq4BCcFhxtGjtNCZ7ZXyJDKdAu8wm9iXmLGwONNJUVG7+xm4swxHeqUzd1CJHxZOAhbdXvnS9AwacrHA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3274.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(366004)(39860400002)(136003)(396003)(346002)(376002)(316002)(26005)(52536014)(186003)(33656002)(71200400001)(83380400001)(8936002)(110136005)(30864003)(54906003)(7696005)(2906002)(53546011)(55016002)(6506007)(107886003)(4326008)(9686003)(5660300002)(66476007)(76116006)(66946007)(966005)(478600001)(45080400002)(83080400001)(8676002)(64756008)(66556008)(66446008)(86362001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: SzToNdK03l79KtpJKiKvwFELwQyw34nE+aPN/zhgSl8Y+1iVv1jhJd/pmEQOPuOtE4CoI2vmrspjNOBgtulD1Cnkh8EraLjH+Lg7NfcCHRakm//qxu+XEGylT0LMnWEe+++hArnfBFD+QMh0lPgdO3AHF1Tt/+8yFssUXxWAmFUS0bJBUPJJ0QPhGYh/l/6Pwuytw5Wkz+dMArW3SSiuF/GRFNDAZXjOxJ5LZIxxYTzjt5VZgVE4EWEa5p0w8E6uKlHkm9lYkGub0RwUWzOE8RJWS/juolO3kUve2ZjMTfwk1J2PSvL+sYa6/3tAjvbySUkJwxjUBA5EHY8tP5ZYki3VqGqfhTYlMXPrqA1JrRsm9Pgge3Ulr8DEJOWzeIZWBnMtB+Epg3tz4W8X5RMbkxcTkNORYrbpYywZa5TPA3E1nEK6gMOQSkboMter0sNd4x0QlA4TbdZfsqOJmBcA1n4uZ3P3O10Q9wKOqvdWoKRVzVrjmjPYmNiGlT3PuUZE MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: a24795b8-56c0-4607-3727-08d8145c152a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2020 14:21:39.6880 (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: WGEjUz+DVl9yQDFsvWcVgAPvRb1DmTH1nK+DAyzASmam1nRZmK7t9YE+L3BKVlv0CIekOaUUHxFF+M6i6EXC3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1450 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gTGVuZGFja3ksIFRo b21hcw0KPiBTZW50OiBGcmlkYXksIEp1bmUgMTksIDIwMjAgOTo1MSBQTQ0KPiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBC cmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBBcmQgQmllc2hldXZlbA0KPiA8 YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT47IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3Rl bkBpbnRlbC5jb20+Ow0KPiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgR2FvLCBM aW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsNCj4gS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjkgMDgvNDZdIFVlZmlDcHVQa2c6IEltcGxl bWVudCBsaWJyYXJ5DQo+IHN1cHBvcnQgZm9yIFZNR0VYSVQNCj4gDQo+IE9uIDYvMTkvMjAgMjo0 NyBBTSwgRG9uZywgRXJpYyB2aWEgZ3JvdXBzLmlvIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPj4gTGVuZGFja3ksIFRob21h cw0KPiA+PiBTZW50OiBUaHVyc2RheSwgSnVuZSAxOCwgMjAyMCAxMDowOSBQTQ0KPiA+PiBUbzog RG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4+IENjOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBBcmQgQmllc2hl dXZlbA0KPiA+PiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT47IEp1c3RlbiwgSm9yZGFuIEwNCj4g Pj4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRo YXQuY29tPjsgR2FvLA0KPiA+PiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5 LCBNaWNoYWVsIEQNCj4gPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheSA8 cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg djkgMDgvNDZdIFVlZmlDcHVQa2c6IEltcGxlbWVudA0KPiA+PiBsaWJyYXJ5IHN1cHBvcnQgZm9y IFZNR0VYSVQNCj4gPj4NCj4gPj4gT24gNi8xOC8yMCAyOjIzIEFNLCBEb25nLCBFcmljIHdyb3Rl Og0KPiA+Pj4gSGkgVG9tLA0KPiA+Pj4NCj4gPj4+IFdoZW4gdXNlIFZTMjAxNSB0byBidWlsZCB0 aGlzIGNvZGUsIGl0IHJlcG9ydHMgYmVsb3cgZXJyb3IuIFBsZWFzZQ0KPiA+Pj4gaGVscCB0bw0K PiA+PiBmaXggaXQuDQo+ID4+Pg0KPiA+Pj4gazpcZWRrMlxVZWZpQ3B1UGtnXEluY2x1ZGVcTGli cmFyeS9WbWdFeGl0TGliLmg6IGVycm9yIEMyMjIwOg0KPiA+Pj4gd2FybmluZyB0cmVhdGVkIGFz IGVycm9yIC0gbm8gJ29iamVjdCcgZmlsZSBnZW5lcmF0ZWQNCj4gPj4+IGs6XGVkazJcVWVmaUNw dVBrZ1xJbmNsdWRlXExpYnJhcnkvVm1nRXhpdExpYi5oOiB3YXJuaW5nIEM0MzM1OiBNYWMNCj4g Pj4+IGZpbGUgZm9ybWF0IGRldGVjdGVkOiBwbGVhc2UgY29udmVydCB0aGUgc291cmNlIGZpbGUg dG8gZWl0aGVyIERPUw0KPiA+Pj4gb3IgVU5JWCBmb3JtYXQNCj4gPj4NCj4gPj4gVGhhdCBpcyBz dHJhbmdlLi4uICBJIGRpZG4ndCBzZWUgdGhpcyB3aGVuIEkgcmFuIHRocm91Z2ggdGhlIENJLiBX aGVuDQo+ID4+IEkgZG8gYSBmaWxlIGNvbW1hbmQgYWdhaW5zdCB0aGUgZmlsZSBpdCByZXBvcnRz Og0KPiA+Pg0KPiA+PiBVZWZpQ3B1UGtnL0luY2x1ZGUvTGlicmFyeS9WbWdFeGl0TGliLmg6IEMg c291cmNlLCBBU0NJSSB0ZXh0LCB3aXRoDQo+ID4+IENSTEYgbGluZSB0ZXJtaW5hdG9ycw0KPiA+ Pg0KPiA+PiBJJ2xsIGludmVzdGlnYXRlIHRoaXMgYW5kIHRyeSBhbmQgZmlndXJlIG91dCB3aGF0 J3MgZ29pbmcgb24sIGJ1dCBpZg0KPiA+PiBhbnlvbmUgZWxzZSBoYXMgc29tZSBpZGVhcywgcGxl YXNlIGxldCBtZSBrbm93Lg0KPiA+DQo+ID4gSGkgVG9tLA0KPiA+DQo+ID4gSSBtZXQgdGhpcyBl cnJvciBhZ2FpbiB3aGVuIEkgdHJpZyBiZWxvdyBwYXRjaCBmcm9tIEFNRCBhZ2FpbiBmb3IgQ1BV DQo+IGNoYW5nZS4NCj4gPiAiVWVmaUNwdVBrZzogTW92ZSBTdGFuZGFyZFNpZ25hdHVyZUlzQXV0 aGVudGljQU1EIHRvIEJhc2VVZWZpQ3B1TGliIg0KPiANCj4gSG1tbS4uLiBJIHRoaW5rIHdlIGNv dWxkIGJlIHJ1bm5pbmcgaW50byBpc3N1ZXMgd2l0aCBzZW5kaW5nIHBhdGNoZXMNCj4gdGhyb3Vn aCBvdXIgbWFpbCBzZXJ2ZXJzLiBMZXQgbWUgc2VuZCB5b3UgdGhlIHBhdGNoIHNlcmllcyBkaXJl Y3RseSB1c2luZw0KPiBzb21lIGNoYW5nZXMgSSBtYWRlIHRvIG15IGdpdCBjb25maWcgZmlsZSB0 byBzZWUgaWYgdGhhdCBoZWxwcy4gV291bGQgdGhhdCBiZQ0KPiBvaz8NCg0KWWVzLCBwbGVhc2Ug ZG8gaXQuDQoNClRoYW5rcywNCkVyaWMNCj4gDQo+IFRoYW5rcywNCj4gVG9tDQo+IA0KPiA+DQo+ ID4gSSdtIG5vdCBzdXJlIHdoZXRoZXIgdGhpcyBpcyBwYXRjaCBpc3N1ZSwgb3Igb3VyIGludGVy bmFsIHRlc3Qgc2V2ZXIgaXNzdWUuIEkNCj4gaGF2ZSByZXBvcnRlZCB0aGlzIGVycm9yIHRvIG91 ciBpbnRlcm5hbCB0ZWFtIHRvIGNoZWNrIGFsc28uDQo+ID4gUGxlYXNlIGNoZWNrIGl0IGZyb20g eW91ciBzaWRlIGFuZCBtYWtlIHN1cmUgbm8gZXJyb3IgZnJvbSB5b3VyIHNpZGUuIEkgd2lsbA0K PiB1cGRhdGUgdGhlIHN0YXR1cyBmcm9tIG15IHNpZGUgd2hlbiBJIGdldCB0aGUgdXBkYXRlLg0K PiA+DQo+ID4gVGhhbmtzLA0KPiA+IEVyaWMNCj4gPg0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+ IFRvbQ0KPiA+Pg0KPiA+Pj4NCj4gPj4+IFRoYW5rcywNCj4gPj4+IEVyaWMNCj4gPj4+DQo+ID4+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBUb20gTGVuZGFja3kg PHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPiA+Pj4+IFNlbnQ6IEZyaWRheSwgSnVuZSA1LCAy MDIwIDk6MjcgUE0NCj4gPj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4+PiBDYzog QnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4g Pj4+PiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRl bC5jb20+OyBKdXN0ZW4sDQo+ID4+Pj4gSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5j b20+OyBMYXN6bG8gRXJzZWsNCj4gPj4+PiA8bGVyc2VrQHJlZGhhdC5jb20+OyBHYW8sIExpbWlu ZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4+Pj4gTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4+ Pj4gU3ViamVjdDogW1BBVENIIHY5IDA4LzQ2XSBVZWZpQ3B1UGtnOiBJbXBsZW1lbnQgbGlicmFy eSBzdXBwb3J0IGZvcg0KPiA+Pj4+IFZNR0VYSVQNCj4gPj4+Pg0KPiA+Pj4+IEJaOg0KPiA+Pj4+ DQo+ID4+DQo+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20v P3VybD1odHRwcyUzQSUyRiUyRmJ1Zw0KPiA+Pj4+DQo+ID4+DQo+IHppbGxhLnRpYW5vY29yZS5v cmclMkZzaG93X2J1Zy5jZ2klM0ZpZCUzRDIxOTgmYW1wO2RhdGE9MDIlN0MwMSU3Q3QNCj4gPj4g aG8NCj4gPj4+Pg0KPiA+Pg0KPiBtYXMubGVuZGFja3klNDBhbWQuY29tJTdDZDc1NTU0ZGE0OTU5 NDA3Yzk2NzYwOGQ4MTM1ODc3YmUlN0MzZGQNCj4gPj4gODk2MWZlDQo+ID4+Pj4NCj4gPj4NCj4g NDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzI4MDYxNzk3NTI1MDg0MiZhbXA7 c2RhdGE9DQo+ID4+IGZCbEsyQg0KPiA+Pj4+DQo+IEZrUmRBUzVFV2NNOFlTaGYxWnN3ZlJOJTJG NDFMN1hlVXNiNFpDcyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+Pj4+DQo+ID4+Pj4gVG8gc3VwcG9y dCBoYW5kbGluZyAjVkMgZXhjZXB0aW9ucyBhbmQgaXNzdWluZyBWTUdFWElUDQo+ID4+Pj4gaW5z dHJ1Y3Rpb25zLCBjcmVhdGUgYSBsaWJyYXJ5IHdpdGggZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVz ZWQgdG8NCj4gPj4+PiBwZXJmb3JtIHRoZXNlICNWQy9WTUdFWElUIHJlbGF0ZWQgb3BlcmF0aW9u cy4gVGhpcyBpbmNsdWRlcw0KPiBmdW5jdGlvbnMgZm9yOg0KPiA+Pj4+ICAgICAtIEhhbmRsaW5n ICNWQyBleGNlcHRpb25zDQo+ID4+Pj4gICAgIC0gUHJlcGFyaW5nIGZvciBhbmQgaXNzdWluZyBh IFZNR0VYSVQNCj4gPj4+PiAgICAgLSBQZXJmb3JtaW5nIE1NSU8tcmVsYXRlZCB3cml0ZSBvcGVy YXRpb25zIHRvIHN1cHBvcnQgZmxhc2gNCj4gZW11bGF0aW9uDQo+ID4+Pj4gICAgIC0gUGVyZm9y bWluZyBBUCByZWxhdGVkIGJvb3Qgb3BlYXRpb25zDQo+ID4+Pj4NCj4gPj4+PiBUaGUgYmFzZSBm dW5jdGlvbnMgaW4gdGhpcyBkcml2ZXIgd2lsbCBub3QgZG8gYW55dGhpbmcgYW5kIHdpbGwNCj4g Pj4+PiByZXR1cm4gYW4gZXJyb3IgaWYgYSByZXR1cm4gdmFsdWUgaXMgcmVxdWlyZWQuIEl0IGlz IGV4cGVjdGVkIHRoYXQNCj4gPj4+PiBvdGhlciBwYWNrYWdlcyAobGlrZSBPdm1mUGtnKSB3aWxs IGNyZWF0ZSBhIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkNCj4gPj4+PiB0byBmdWxseSBzdXBwb3J0 IGFuIFNFVi1FUyBndWVzdC4NCj4gPj4+Pg0KPiA+Pj4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9u Z0BpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+ PiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+PiBTaWduZWQtb2Zm LWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPiA+Pj4+IC0tLQ0K PiA+Pj4+ICAgIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDMgKw0KPiA+Pj4+ICAgIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2MgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+Pj4+ICAgIFVlZmlDcHVQa2cvTGlicmFy eS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYgfCAgMjcgKysrKysNCj4gPj4+PiAg ICBVZWZpQ3B1UGtnL0luY2x1ZGUvTGlicmFyeS9WbWdFeGl0TGliLmggICAgICAgICAgICAgIHwg MTAzDQo+ID4+ICsrKysrKysrKysrKysrKysrDQo+ID4+Pj4gICAgVWVmaUNwdVBrZy9MaWJyYXJ5 L1ZtZ0V4aXRMaWJOdWxsL1ZtZ0V4aXRMaWJOdWxsLmMgICB8IDEyMQ0KPiA+Pj4+ICsrKysrKysr KysrKysrKysrKysrDQo+ID4+Pj4gICAgVWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxs L1ZtZ0V4aXRMaWJOdWxsLnVuaSB8ICAxNSArKysNCj4gPj4+PiAgICA2IGZpbGVzIGNoYW5nZWQs IDI3MSBpbnNlcnRpb25zKCspDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9VZWZpQ3B1UGtnLmRlYyBiL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4gPj4+PiBpbmRl eCBkZjVkMDJiYWU2YjQuLmNiOTJmMzRiNmY1NSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9VZWZpQ3B1 UGtnL1VlZmlDcHVQa2cuZGVjDQo+ID4+Pj4gKysrIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRl Yw0KPiA+Pj4+IEBAIC01Myw2ICs1Myw5IEBAIFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLCBMaWJyYXJ5 Q2xhc3Nlcy5YNjRdDQo+ID4+Pj4gICAgICAjIw0KPiA+Pj4+DQo+ID4+Pj4gICAgICBNcEluaXRM aWJ8SW5jbHVkZS9MaWJyYXJ5L01wSW5pdExpYi5oDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ ID4+Pj4gKyAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIGZ1bmN0aW9uIHRvIHN1cHBvcnQg Vk1HRVhJVCBwcm9jZXNzaW5nLg0KPiA+Pj4+DQo+ID4+Pj4gKyAgVm1nRXhpdExpYnxJbmNsdWRl L0xpYnJhcnkvVm1nRXhpdExpYi5oDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiAg ICBbR3VpZHNdDQo+ID4+Pj4NCj4gPj4+PiAgICAgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQg ICAgICA9IHsgMHhhYzA1YmYzMywgMHg5OTVhLCAweDRlZDQsDQo+IHsgMHhhYSwNCj4gPj4+PiAw eGI4LCAweGVmLCAweDdhLCAweGU4LCAweGYsIDB4NWMsIDB4YjAgfX0NCj4gPj4+Pg0KPiA+Pj4+ ICAgICAgZ01zZWdTbXJhbUd1aWQgICAgICAgICAgICAgICAgID0geyAweDU4MDJiY2U0LCAweGVl ZWUsIDB4NGUzMywgeyAweGExLA0KPiAweDMwLA0KPiA+Pj4+IDB4ZWIsIDB4YWQsIDB4MjcsIDB4 ZjAsIDB4ZTQsIDB4MzkgfX0NCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtn L1VlZmlDcHVQa2cuZHNjIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRzYw0KPiA+Pj4+IGluZGV4 IGFmYTMwNDEyODIyMS4uZjBlNThiOTBmZjBhIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL1VlZmlDcHVQ a2cvVWVmaUNwdVBrZy5kc2MNCj4gPj4+PiArKysgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZHNj DQo+ID4+Pj4gQEAgLTU2LDYgKzU2LDcgQEAgW0xpYnJhcnlDbGFzc2VzXQ0KPiA+Pj4+DQo+ID4+ Pj4NCj4gPj4NCj4gUGVDb2ZmR2V0RW50cnlQb2ludExpYnxNZGVQa2cvTGlicmFyeS9CYXNlUGVD b2ZmR2V0RW50cnlQb2ludExpYi9CYXNlDQo+ID4+Pj4gUGVDb2ZmR2V0RW50cnlQb2ludExpYi5p bmYNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4NCj4gUGVDb2ZmRXh0cmFBY3Rpb25MaWJ8 TWRlUGtnL0xpYnJhcnkvQmFzZVBlQ29mZkV4dHJhQWN0aW9uTGliTnVsbC9CYXNlDQo+ID4+Pj4g UGVDb2ZmRXh0cmFBY3Rpb25MaWJ8UA0KPiA+Pj4+IGVDb2ZmRXh0cmFBY3Rpb25MaWJOdWxsLmlu Zg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pg0KPiBUcG1NZWFzdXJlbWVudExpYnxNZGVN b2R1bGVQa2cvTGlicmFyeS9UcG1NZWFzdXJlbWVudExpYk51bGwvVHANCj4gPj4+PiBtTWVhc3Vy ZW1lbnRMaWJOdWxsLmluZg0KPiA+Pj4+DQo+ID4+Pj4gKyAgVm1nRXhpdExpYnxVZWZpQ3B1UGtn L0xpYnJhcnkvVm1nRXhpdExpYk51bGwvVm1nRXhpdExpYk51bGwuaW5mDQo+ID4+Pj4NCj4gPj4+ Pg0KPiA+Pj4+DQo+ID4+Pj4gICAgW0xpYnJhcnlDbGFzc2VzLmNvbW1vbi5TRUNdDQo+ID4+Pj4N Cj4gPj4+Pg0KPiA+Pj4+DQo+ID4+DQo+IFBsYXRmb3JtU2VjTGlifFVlZmlDcHVQa2cvTGlicmFy eS9QbGF0Zm9ybVNlY0xpYk51bGwvUGxhdGZvcm1TZWNMaWJOdQ0KPiA+Pj4+IFBsYXRmb3JtU2Vj TGlifGxsLmkNCj4gPj4+PiBuZg0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTE0Myw2ICsxNDQsNyBAQCBb Q29tcG9uZW50cy5JQTMyLCBDb21wb25lbnRzLlg2NF0NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+DQo+ IFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVQbGF0Zm9ybUhvb2tMaWJOdWxsL1NtbUNwdVBsYXRm b3JtSG9va0xpYg0KPiA+Pj4+IE51bGwuaW5mDQo+ID4+Pj4NCj4gPj4+PiAgICAgIFVlZmlDcHVQ a2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5pbmYNCj4gPj4+ Pg0KPiA+Pj4+DQo+IFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVG ZWF0dXJlc0xpYlN0bS5pbmYNCj4gPj4+Pg0KPiA+Pj4+ICsgIFVlZmlDcHVQa2cvTGlicmFyeS9W bWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgVWVm aUNwdVBrZy9QaVNtbUNvbW11bmljYXRpb24vUGlTbW1Db21tdW5pY2F0aW9uUGVpLmluZg0KPiA+ Pj4+DQo+ID4+Pj4gICAgICBVZWZpQ3B1UGtnL1BpU21tQ29tbXVuaWNhdGlvbi9QaVNtbUNvbW11 bmljYXRpb25TbW0uaW5mDQo+ID4+Pj4NCj4gPj4+PiAgICAgIFVlZmlDcHVQa2cvU2VjQ29yZS9T ZWNDb3JlLmluZg0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFy eS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4gPj4+PiBiL1VlZmlDcHVQa2cv TGlicmFyeS9WbWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4gPj4+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDg3NzBhMjFjMzU1DQo+ ID4+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+Pj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9WbWdF eGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5pbmYNCj4gPj4+PiBAQCAtMCwwICsxLDI3IEBADQo+ ID4+Pj4gKyMjIEBmaWxlDQo+ID4+Pj4NCj4gPj4+PiArIyAgVk1HRVhJVCBTdXBwb3J0IExpYnJh cnkuDQo+ID4+Pj4NCj4gPj4+PiArIw0KPiA+Pj4+DQo+ID4+Pj4gKyMgIENvcHlyaWdodCAoQykg MjAyMCwgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzDQo+ID4+Pj4gK3Jl c2VydmVkLjxCUj4NCj4gPj4+Pg0KPiA+Pj4+ICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiA+Pj4+DQo+ID4+Pj4gKyMNCj4gPj4+Pg0KPiA+Pj4+ICsj Iw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gK1tEZWZpbmVzXQ0KPiA+Pj4+DQo+ ID4+Pj4gKyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPiA+ Pj4+DQo+ID4+Pj4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gVm1nRXhpdExp Yk51bGwNCj4gPj4+Pg0KPiA+Pj4+ICsgIE1PRFVMRV9VTklfRklMRSAgICAgICAgICAgICAgICA9 IFZtZ0V4aXRMaWJOdWxsLnVuaQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgRklMRV9HVUlEICAgICAgICAg ICAgICAgICAgICAgID0gM2NkNzM2OGYtZWY5Yi00YTliLTk1NzEtMmVkOTM4MTM2NzdlDQo+ID4+ Pj4NCj4gPj4+PiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+ID4+ Pj4NCj4gPj4+PiArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPj4+ Pg0KPiA+Pj4+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IFZtZ0V4aXRMaWIN Cj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICtbU291cmNlcy5jb21tb25dDQo+ID4+ Pj4NCj4gPj4+PiArICBWbWdFeGl0TGliTnVsbC5jDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4N Cj4gPj4+PiArW1BhY2thZ2VzXQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgTWRlUGtnL01kZVBrZy5kZWMN Cj4gPj4+Pg0KPiA+Pj4+ICsgIFVlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4gPj4+Pg0KPiA+ Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4+Pj4NCj4gPj4+PiAr ICBCYXNlTGliDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9JbmNsdWRlL0xpYnJhcnkvVm1nRXhpdExpYi5oDQo+ID4+Pj4gYi9VZWZpQ3B1 UGtnL0luY2x1ZGUvTGlicmFyeS9WbWdFeGl0TGliLmgNCj4gPj4+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+Pj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMGIyZjM5MDI2YTRhDQo+ID4+Pj4gLS0t IC9kZXYvbnVsbA0KPiA+Pj4+ICsrKyBiL1VlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5L1ZtZ0V4 aXRMaWIuaA0KPiA+Pj4+IEBAIC0wLDAgKzEsMTAzIEBADQo+ID4+Pj4gKy8qKiBAZmlsZQ0KPiA+ Pj4+DQo+ID4+Pj4gKyAgUHVibGljIGhlYWRlciBmaWxlIGZvciB0aGUgVk1HRVhJVCBTdXBwb3J0 IGxpYnJhcnkgY2xhc3MuDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBUaGlz IGxpYnJhcnkgY2xhc3MgZGVmaW5lcyBzb21lIHJvdXRpbmVzIHVzZWQgd2hlbiBpbnZva2luZyB0 aGUNCj4gPj4+PiArIFZNR0VYSVQNCj4gPj4+Pg0KPiA+Pj4+ICsgIGluc3RydWN0aW9uIGluIHN1 cHBvcnQgb2YgU0VWLUVTIGFuZCB0byBoYW5kbGUgI1ZDIGV4Y2VwdGlvbnMuDQo+ID4+Pj4NCj4g Pj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBDb3B5cmlnaHQgKEMpIDIwMjAsIEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cw0KPiA+Pj4+ICsgcmVzZXJ2ZWQuPEJSPg0KPiA+ Pj4+DQo+ID4+Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsqKi8NCj4gPj4+Pg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICsjaWZuZGVmIF9fVk1HX0VYSVRfTElCX0hfXw0KPiA+Pj4+DQo+ ID4+Pj4gKyNkZWZpbmUgX19WTUdfRVhJVF9MSUJfSF9fDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiArI2luY2x1ZGUgPFByb3RvY29sL0RlYnVnU3VwcG9ydC5oPg0KPiA+Pj4+DQo+ ID4+Pj4gKyNpbmNsdWRlIDxSZWdpc3Rlci9BbWQvR2hjYi5oPg0KPiA+Pj4+DQo+ID4+Pj4gKw0K PiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKy8qKg0KPiA+Pj4+DQo+ID4+Pj4gKyAg UGVyZm9ybSBWTUdFWElULg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgU2V0 cyB0aGUgbmVjZXNzYXJ5IGZpZWxkcyBvZiB0aGUgR0hDQiwgaW52b2tlcyB0aGUgVk1HRVhJVA0K PiA+Pj4+ICsgaW5zdHJ1Y3Rpb24NCj4gPj4+PiBhbmQNCj4gPj4+Pg0KPiA+Pj4+ICsgIHRoZW4g aGFuZGxlcyB0aGUgcmV0dXJuIGFjdGlvbnMuDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4g Pj4+PiArICBAcGFyYW1baW4sIG91dF0gIEdoY2IgICAgICAgQSBwb2ludGVyIHRvIHRoZSBHSENC DQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW5dICAgICAgIEV4aXRDb2RlICAgVk1HRVhJVCBj b2RlIHRvIGJlIGFzc2lnbmVkIHRvIHRoZQ0KPiA+PiBTd0V4aXRDb2RlDQo+ID4+Pj4NCj4gPj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgb2YgdGhlIEdIQ0IuDQo+ID4+ Pj4NCj4gPj4+PiArICBAcGFyYW1baW5dICAgICAgIEV4aXRJbmZvMSAgVk1HRVhJVCBpbmZvcm1h dGlvbiB0byBiZSBhc3NpZ25lZCB0byB0aGUNCj4gPj4+Pg0KPiA+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTd0V4aXRJbmZvMSBmaWVsZCBvZiB0aGUgR0hDQi4NCj4gPj4+Pg0K PiA+Pj4+ICsgIEBwYXJhbVtpbl0gICAgICAgRXhpdEluZm8yICBWTUdFWElUIGluZm9ybWF0aW9u IHRvIGJlIGFzc2lnbmVkIHRvIHRoZQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN3RXhpdEluZm8yIGZpZWxkIG9mIHRoZSBHSENCLg0KPiA+Pj4+DQo+ID4+ Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHJldHVybiAgMCAgICAgICAgICAgICAgICAgIFZNR0VY SVQgc3VjY2VlZGVkLg0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHJldHVybiAgT3RoZXJzICAgICAgICAg ICAgIFZNR0VYSVQgcHJvY2Vzc2luZyBkaWQgbm90IHN1Y2NlZWQuDQo+IEV4Y2VwdGlvbg0KPiA+ Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciB0byBiZSBw cm9wYWdhdGVkLg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyoqLw0KPiA+Pj4+ DQo+ID4+Pj4gK1VJTlQ2NA0KPiA+Pj4+DQo+ID4+Pj4gK0VGSUFQSQ0KPiA+Pj4+DQo+ID4+Pj4g K1ZtZ0V4aXQgKA0KPiA+Pj4+DQo+ID4+Pj4gKyAgSU4gT1VUIEdIQ0IgICAgICAgICAgICAgICAg KkdoY2IsDQo+ID4+Pj4NCj4gPj4+PiArICBJTiAgICAgVUlOVDY0ICAgICAgICAgICAgICBFeGl0 Q29kZSwNCj4gPj4+Pg0KPiA+Pj4+ICsgIElOICAgICBVSU5UNjQgICAgICAgICAgICAgIEV4aXRJ bmZvMSwNCj4gPj4+Pg0KPiA+Pj4+ICsgIElOICAgICBVSU5UNjQgICAgICAgICAgICAgIEV4aXRJ bmZvMg0KPiA+Pj4+DQo+ID4+Pj4gKyAgKTsNCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+ Pj4+ICsvKioNCj4gPj4+Pg0KPiA+Pj4+ICsgIFBlcmZvcm0gcHJlLVZNR0VYSVQgaW5pdGlhbGl6 YXRpb24vcHJlcGFyYXRpb24uDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBQ ZXJmb3JtcyB0aGUgbmVjZXNzYXJ5IHN0ZXBzIGluIHByZXBhcmF0aW9uIGZvciBpbnZva2luZyBW TUdFWElULg0KPiA+Pj4+ICsgTXVzdA0KPiA+Pj4+IGJlDQo+ID4+Pj4NCj4gPj4+PiArICBjYWxs ZWQgYmVmb3JlIHNldHRpbmcgYW55IGZpZWxkcyB3aXRoaW4gdGhlIEdIQ0IuDQo+ID4+Pj4NCj4g Pj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW4sIG91dF0gIEdoY2IgICAgICAgQSBw b2ludGVyIHRvIHRoZSBHSENCDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArKiov DQo+ID4+Pj4NCj4gPj4+PiArVk9JRA0KPiA+Pj4+DQo+ID4+Pj4gK0VGSUFQSQ0KPiA+Pj4+DQo+ ID4+Pj4gK1ZtZ0luaXQgKA0KPiA+Pj4+DQo+ID4+Pj4gKyAgSU4gT1VUIEdIQ0IgICAgICAgICAg ICAgICAgKkdoY2INCj4gPj4+Pg0KPiA+Pj4+ICsgICk7DQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiArLyoqDQo+ID4+Pj4NCj4gPj4+PiArICBQZXJmb3JtIHBvc3QtVk1HRVhJVCBj bGVhbnVwLg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgUGVyZm9ybXMgdGhl IG5lY2Vzc2FyeSBzdGVwcyB0byBjbGVhbnVwIGFmdGVyIGludm9raW5nIFZNR0VYSVQuDQo+ID4+ Pj4gKyBNdXN0IGJlDQo+ID4+Pj4NCj4gPj4+PiArICBjYWxsZWQgYWZ0ZXIgb2J0YWluaW5nIG5l ZWRlZCBmaWVsZHMgd2l0aGluIHRoZSBHSENCLg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ ID4+Pj4gKyAgQHBhcmFtW2luLCBvdXRdICBHaGNiICAgICAgIEEgcG9pbnRlciB0byB0aGUgR0hD Qg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyoqLw0KPiA+Pj4+DQo+ID4+Pj4g K1ZPSUQNCj4gPj4+Pg0KPiA+Pj4+ICtFRklBUEkNCj4gPj4+Pg0KPiA+Pj4+ICtWbWdEb25lICgN Cj4gPj4+Pg0KPiA+Pj4+ICsgIElOIE9VVCBHSENCICAgICAgICAgICAgICAgICpHaGNiDQo+ID4+ Pj4NCj4gPj4+PiArICApOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKy8qKg0K PiA+Pj4+DQo+ID4+Pj4gKyAgSGFuZGxlIGEgI1ZDIGV4Y2VwdGlvbi4NCj4gPj4+Pg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIFBlcmZvcm1zIHRoZSBuZWNlc3NhcnkgcHJvY2Vzc2luZyB0 byBoYW5kbGUgYSAjVkMgZXhjZXB0aW9uLg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+ Pj4gKyAgVGhlIGJhc2UgbGlicmFyeSBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIGVxdWFsIHRv DQo+ID4+Pj4gKyBWQ19FWENFUFRJT04sDQo+ID4+Pj4NCj4gPj4+PiArICB0byBiZSBwcm9wYWdh dGVkIHRvIHRoZSBzdGFuZGFyZCBleGNlcHRpb24gaGFuZGxpbmcgc3RhY2suDQo+ID4+Pj4NCj4g Pj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW4sIG91dF0gIEV4Y2VwdGlvblR5cGUg IFBvaW50ZXIgdG8gYW4gRUZJX0VYQ0VQVElPTl9UWVBFDQo+ID4+Pj4gKyB0byBiZQ0KPiA+Pj4+ IHNldA0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cyB2YWx1ZSB0byB1c2Ugb24gZXJyb3IuDQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW4sIG91 dF0gIFN5c3RlbUNvbnRleHQgIFBvaW50ZXIgdG8gRUZJX1NZU1RFTV9DT05URVhUDQo+ID4+Pj4N Cj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAg ICAgIEV4Y2VwdGlvbiBoYW5kbGVkDQo+ID4+Pj4NCj4gPj4+PiArICBAcmV0dmFsICBFRklfVU5T VVBQT1JURUQgICAgICAgICNWQyBub3Qgc3VwcG9ydGVkLCAobmV3KQ0KPiBleGNlcHRpb24NCj4g Pj4+PiB2YWx1ZSB0bw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9wYWdhdGUgcHJvdmlkZWQNCj4gPj4+Pg0KPiA+Pj4+ICsgIEByZXR2YWwgIEVG SV9QUk9UT0NPTF9FUlJPUiAgICAgI1ZDIGhhbmRsaW5nIGZhaWxlZCwgKG5ldykNCj4gZXhjZXB0 aW9uDQo+ID4+Pj4gdmFsdWUgdG8NCj4gPj4+Pg0KPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJvcGFnYXRlIHByb3ZpZGVkDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiArKiovDQo+ID4+Pj4NCj4gPj4+PiArRUZJX1NUQVRVUw0KPiA+Pj4+DQo+ID4+ Pj4gK0VGSUFQSQ0KPiA+Pj4+DQo+ID4+Pj4gK1ZtZ0V4aXRIYW5kbGVWYyAoDQo+ID4+Pj4NCj4g Pj4+PiArICBJTiBPVVQgRUZJX0VYQ0VQVElPTl9UWVBFICAqRXhjZXB0aW9uVHlwZSwNCj4gPj4+ Pg0KPiA+Pj4+ICsgIElOIE9VVCBFRklfU1lTVEVNX0NPTlRFWFQgIFN5c3RlbUNvbnRleHQNCj4g Pj4+Pg0KPiA+Pj4+ICsgICk7DQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArI2Vu ZGlmDQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4 aXRMaWJOdWxsL1ZtZ0V4aXRMaWJOdWxsLmMNCj4gPj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9W bWdFeGl0TGliTnVsbC9WbWdFeGl0TGliTnVsbC5jDQo+ID4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gPj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjMwYTIzOWRmMjk4ZQ0KPiA+Pj4+IC0tLSAv ZGV2L251bGwNCj4gPj4+PiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvVm1nRXhpdExpYk51bGwv Vm1nRXhpdExpYk51bGwuYw0KPiA+Pj4+IEBAIC0wLDAgKzEsMTIxIEBADQo+ID4+Pj4gKy8qKiBA ZmlsZQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgVk1HRVhJVCBCYXNlIFN1cHBvcnQgTGlicmFyeS4NCj4g Pj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIENvcHlyaWdodCAoQykgMjAyMCwgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzDQo+ID4+Pj4gKyByZXNlcnZlZC48 QlI+DQo+ID4+Pj4NCj4gPj4+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyoqLw0KPiA+Pj4+ DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+ID4+Pj4NCj4g Pj4+PiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gPj4+Pg0KPiA+Pj4+ICsjaW5jbHVkZSA8TGlicmFy eS9WbWdFeGl0TGliLmg+DQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArLyoqDQo+ ID4+Pj4NCj4gPj4+PiArICBQZXJmb3JtIFZNR0VYSVQuDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiArICBTZXRzIHRoZSBuZWNlc3NhcnkgZmllbGRzIG9mIHRoZSBHSENCLCBpbnZv a2VzIHRoZSBWTUdFWElUDQo+ID4+Pj4gKyBpbnN0cnVjdGlvbg0KPiA+Pj4+IGFuZA0KPiA+Pj4+ DQo+ID4+Pj4gKyAgdGhlbiBoYW5kbGVzIHRoZSByZXR1cm4gYWN0aW9ucy4NCj4gPj4+Pg0KPiA+ Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIFRoZSBiYXNlIGxpYnJhcnkgZnVuY3Rpb24gcmV0dXJu cyBhbiBlcnJvciBpbiB0aGUgZm9ybSBvZiBhDQo+ID4+Pj4NCj4gPj4+PiArICBHSENCX0VWRU5U X0lOSkVDVElPTiByZXByZXNlbnRpbmcgYSBHUF9FWENFUFRJT04uDQo+ID4+Pj4NCj4gPj4+PiAr DQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW4sIG91dF0gIEdoY2IgICAgICAgQSBwb2ludGVy IHRvIHRoZSBHSENCDQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW5dICAgICAgIEV4aXRDb2Rl ICAgVk1HRVhJVCBjb2RlIHRvIGJlIGFzc2lnbmVkIHRvIHRoZQ0KPiA+PiBTd0V4aXRDb2RlDQo+ ID4+Pj4NCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgb2YgdGhl IEdIQ0IuDQo+ID4+Pj4NCj4gPj4+PiArICBAcGFyYW1baW5dICAgICAgIEV4aXRJbmZvMSAgVk1H RVhJVCBpbmZvcm1hdGlvbiB0byBiZSBhc3NpZ25lZCB0byB0aGUNCj4gPj4+Pg0KPiA+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTd0V4aXRJbmZvMSBmaWVsZCBvZiB0aGUgR0hD Qi4NCj4gPj4+Pg0KPiA+Pj4+ICsgIEBwYXJhbVtpbl0gICAgICAgRXhpdEluZm8yICBWTUdFWElU IGluZm9ybWF0aW9uIHRvIGJlIGFzc2lnbmVkIHRvIHRoZQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN3RXhpdEluZm8yIGZpZWxkIG9mIHRoZSBHSENCLg0K PiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHJldHVybiAgMCAgICAgICAgICAg ICAgICAgIFZNR0VYSVQgc3VjY2VlZGVkLg0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHJldHVybiAgT3Ro ZXJzICAgICAgICAgICAgIFZNR0VYSVQgcHJvY2Vzc2luZyBkaWQgbm90IHN1Y2NlZWQuDQo+IEV4 Y2VwdGlvbg0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2 ZW50IHRvIGJlIHByb3BhZ2F0ZWQuDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiAr KiovDQo+ID4+Pj4NCj4gPj4+PiArVUlOVDY0DQo+ID4+Pj4NCj4gPj4+PiArRUZJQVBJDQo+ID4+ Pj4NCj4gPj4+PiArVm1nRXhpdCAoDQo+ID4+Pj4NCj4gPj4+PiArICBJTiBPVVQgR0hDQiAgICAg ICAgICAgICAgICAqR2hjYiwNCj4gPj4+Pg0KPiA+Pj4+ICsgIElOICAgICBVSU5UNjQgICAgICAg ICAgICAgIEV4aXRDb2RlLA0KPiA+Pj4+DQo+ID4+Pj4gKyAgSU4gICAgIFVJTlQ2NCAgICAgICAg ICAgICAgRXhpdEluZm8xLA0KPiA+Pj4+DQo+ID4+Pj4gKyAgSU4gICAgIFVJTlQ2NCAgICAgICAg ICAgICAgRXhpdEluZm8yDQo+ID4+Pj4NCj4gPj4+PiArICApDQo+ID4+Pj4NCj4gPj4+PiArew0K PiA+Pj4+DQo+ID4+Pj4gKyAgR0hDQl9FVkVOVF9JTkpFQ1RJT04gIEV2ZW50Ow0KPiA+Pj4+DQo+ ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgRXZlbnQuVWludDY0ID0gMDsNCj4gPj4+Pg0KPiA+ Pj4+ICsgIEV2ZW50LkVsZW1lbnRzLlZlY3RvciA9IEdQX0VYQ0VQVElPTjsNCj4gPj4+Pg0KPiA+ Pj4+ICsgIEV2ZW50LkVsZW1lbnRzLlR5cGUgICA9IEdIQ0JfRVZFTlRfSU5KRUNUSU9OX1RZUEVf RVhDRVBUSU9OOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgRXZlbnQuRWxlbWVudHMuVmFsaWQgID0gMTsN Cj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIHJldHVybiBFdmVudC5VaW50NjQ7 DQo+ID4+Pj4NCj4gPj4+PiArfQ0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKy8q Kg0KPiA+Pj4+DQo+ID4+Pj4gKyAgUGVyZm9ybSBwcmUtVk1HRVhJVCBpbml0aWFsaXphdGlvbi9w cmVwYXJhdGlvbi4NCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIFBlcmZvcm1z IHRoZSBuZWNlc3Nhcnkgc3RlcHMgaW4gcHJlcGFyYXRpb24gZm9yIGludm9raW5nIFZNR0VYSVQu DQo+ID4+Pj4gKyBNdXN0DQo+ID4+Pj4gYmUNCj4gPj4+Pg0KPiA+Pj4+ICsgIGNhbGxlZCBiZWZv cmUgc2V0dGluZyBhbnkgZmllbGRzIHdpdGhpbiB0aGUgR0hDQi4NCj4gPj4+Pg0KPiA+Pj4+ICsN Cj4gPj4+Pg0KPiA+Pj4+ICsgIFRoZSBiYXNlIGxpYnJhcnkgZnVuY3Rpb24gZG9lcyBub3RoaW5n Lg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHBhcmFtW2luLCBvdXRdICBH aGNiICAgICAgIEEgcG9pbnRlciB0byB0aGUgR0hDQg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+ DQo+ID4+Pj4gKyoqLw0KPiA+Pj4+DQo+ID4+Pj4gK1ZPSUQNCj4gPj4+Pg0KPiA+Pj4+ICtFRklB UEkNCj4gPj4+Pg0KPiA+Pj4+ICtWbWdJbml0ICgNCj4gPj4+Pg0KPiA+Pj4+ICsgIElOIE9VVCBH SENCICAgICAgICAgICAgICAgICpHaGNiDQo+ID4+Pj4NCj4gPj4+PiArICApDQo+ID4+Pj4NCj4g Pj4+PiArew0KPiA+Pj4+DQo+ID4+Pj4gK30NCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+ Pj4+ICsvKioNCj4gPj4+Pg0KPiA+Pj4+ICsgIFBlcmZvcm0gcG9zdC1WTUdFWElUIGNsZWFudXAu DQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBQZXJmb3JtcyB0aGUgbmVjZXNz YXJ5IHN0ZXBzIHRvIGNsZWFudXAgYWZ0ZXIgaW52b2tpbmcgVk1HRVhJVC4NCj4gPj4+PiArIE11 c3QgYmUNCj4gPj4+Pg0KPiA+Pj4+ICsgIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgbmVlZGVkIGZp ZWxkcyB3aXRoaW4gdGhlIEdIQ0IuDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiAr ICBUaGUgYmFzZSBsaWJyYXJ5IGZ1bmN0aW9uIGRvZXMgbm90aGluZy4NCj4gPj4+Pg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIEBwYXJhbVtpbiwgb3V0XSAgR2hjYiAgICAgICBBIHBvaW50 ZXIgdG8gdGhlIEdIQ0INCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+Pj4+ICsqKi8NCj4g Pj4+Pg0KPiA+Pj4+ICtWT0lEDQo+ID4+Pj4NCj4gPj4+PiArRUZJQVBJDQo+ID4+Pj4NCj4gPj4+ PiArVm1nRG9uZSAoDQo+ID4+Pj4NCj4gPj4+PiArICBJTiBPVVQgR0hDQiAgICAgICAgICAgICAg ICAqR2hjYg0KPiA+Pj4+DQo+ID4+Pj4gKyAgKQ0KPiA+Pj4+DQo+ID4+Pj4gK3sNCj4gPj4+Pg0K PiA+Pj4+ICt9DQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArLyoqDQo+ID4+Pj4N Cj4gPj4+PiArICBIYW5kbGUgYSAjVkMgZXhjZXB0aW9uLg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+ Pj4+DQo+ID4+Pj4gKyAgUGVyZm9ybXMgdGhlIG5lY2Vzc2FyeSBwcm9jZXNzaW5nIHRvIGhhbmRs ZSBhICNWQyBleGNlcHRpb24uDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArICBU aGUgYmFzZSBsaWJyYXJ5IGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IgZXF1YWwgdG8NCj4gPj4+ PiArIFZDX0VYQ0VQVElPTiwNCj4gPj4+Pg0KPiA+Pj4+ICsgIHRvIGJlIHByb3BhZ2F0ZWQgdG8g dGhlIHN0YW5kYXJkIGV4Y2VwdGlvbiBoYW5kbGluZyBzdGFjay4NCj4gPj4+Pg0KPiA+Pj4+ICsN Cj4gPj4+Pg0KPiA+Pj4+ICsgIEBwYXJhbVtpbiwgb3V0XSAgRXhjZXB0aW9uVHlwZSAgUG9pbnRl ciB0byBhbiBFRklfRVhDRVBUSU9OX1RZUEUNCj4gPj4+PiArIHRvIGJlDQo+ID4+Pj4gc2V0DQo+ ID4+Pj4NCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIHZhbHVl IHRvIHVzZSBvbiBlcnJvci4NCj4gPj4+Pg0KPiA+Pj4+ICsgIEBwYXJhbVtpbiwgb3V0XSAgU3lz dGVtQ29udGV4dCAgUG9pbnRlciB0byBFRklfU1lTVEVNX0NPTlRFWFQNCj4gPj4+Pg0KPiA+Pj4+ ICsNCj4gPj4+Pg0KPiA+Pj4+ICsgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgICAgICAgRXhj ZXB0aW9uIGhhbmRsZWQNCj4gPj4+Pg0KPiA+Pj4+ICsgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRF RCAgICAgICAgI1ZDIG5vdCBzdXBwb3J0ZWQsIChuZXcpDQo+IGV4Y2VwdGlvbg0KPiA+Pj4+IHZh bHVlIHRvDQo+ID4+Pj4NCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByb3BhZ2F0ZSBwcm92aWRlZA0KPiA+Pj4+DQo+ID4+Pj4gKyAgQHJldHZhbCAgRUZJX1BST1RP Q09MX0VSUk9SICAgICAjVkMgaGFuZGxpbmcgZmFpbGVkLCAobmV3KQ0KPiBleGNlcHRpb24NCj4g Pj4+PiB2YWx1ZSB0bw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9wYWdhdGUgcHJvdmlkZWQNCj4gPj4+Pg0KPiA+Pj4+ICsNCj4gPj4+Pg0KPiA+ Pj4+ICsqKi8NCj4gPj4+Pg0KPiA+Pj4+ICtFRklfU1RBVFVTDQo+ID4+Pj4NCj4gPj4+PiArRUZJ QVBJDQo+ID4+Pj4NCj4gPj4+PiArVm1nRXhpdEhhbmRsZVZjICgNCj4gPj4+Pg0KPiA+Pj4+ICsg IElOIE9VVCBFRklfRVhDRVBUSU9OX1RZUEUgICpFeGNlcHRpb25UeXBlLA0KPiA+Pj4+DQo+ID4+ Pj4gKyAgSU4gT1VUIEVGSV9TWVNURU1fQ09OVEVYVCAgU3lzdGVtQ29udGV4dA0KPiA+Pj4+DQo+ ID4+Pj4gKyAgKQ0KPiA+Pj4+DQo+ID4+Pj4gK3sNCj4gPj4+Pg0KPiA+Pj4+ICsgICpFeGNlcHRp b25UeXBlID0gVkNfRVhDRVBUSU9OOw0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4g KyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPj4+Pg0KPiA+Pj4+ICt9DQo+ID4+Pj4NCj4g Pj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxsL1ZtZ0V4 aXRMaWJOdWxsLnVuaQ0KPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxs L1ZtZ0V4aXRMaWJOdWxsLnVuaQ0KPiA+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+Pj4g aW5kZXggMDAwMDAwMDAwMDAwLi44NjM5YmMwZThjZTkNCj4gPj4+PiAtLS0gL2Rldi9udWxsDQo+ ID4+Pj4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1ZtZ0V4aXRMaWJOdWxsL1ZtZ0V4aXRMaWJO dWxsLnVuaQ0KPiA+Pj4+IEBAIC0wLDAgKzEsMTUgQEANCj4gPj4+PiArLy8gLyoqIEBmaWxlDQo+ ID4+Pj4NCj4gPj4+PiArLy8gVk1HRVhJVCBzdXBwb3J0IGxpYnJhcnkgaW5zdGFuY2UuDQo+ID4+ Pj4NCj4gPj4+PiArLy8NCj4gPj4+Pg0KPiA+Pj4+ICsvLyBWTUdFWElUIHN1cHBvcnQgbGlicmFy eSBpbnN0YW5jZS4NCj4gPj4+Pg0KPiA+Pj4+ICsvLw0KPiA+Pj4+DQo+ID4+Pj4gKy8vIENvcHly aWdodCAoQykgMjAyMCwgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzDQo+ ID4+Pj4gK3Jlc2VydmVkLjxCUj4NCj4gPj4+Pg0KPiA+Pj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+Pj4+DQo+ID4+Pj4gKy8vDQo+ID4+Pj4N Cj4gPj4+PiArLy8gKiovDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiArI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5n dWFnZSBlbi1VUyAiVk1HRVhJVA0KPiA+PiBzdXBwb3J0DQo+ID4+Pj4gTlVMTCBsaWJyYXJ5IGlu c3RhbmNlIg0KPiA+Pj4+DQo+ID4+Pj4gKw0KPiA+Pj4+DQo+ID4+Pj4gKyNzdHJpbmcgU1RSX01P RFVMRV9ERVNDUklQVElPTiAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlZNR0VYSVQNCj4gPj4+ PiBzdXBwb3J0IE5VTEwgbGlicmFyeSBpbnN0YW5jZS4iDQo+ID4+Pj4NCj4gPj4+PiArDQo+ID4+ Pj4NCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMjcuMA0KPiA+Pj4NCj4gPj4NCj4gPj4NCj4gPg0KPiA+ DQo+ID4NCj4gDQo+IA0K