From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.32.69; helo=nam01-sn1-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0069.outbound.protection.outlook.com [104.47.32.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 745172194D387 for ; Thu, 13 Sep 2018 12:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tkBxaYLDbWwoudfFMXfXCVhY4Ow8lc1N6FPE69nQidI=; b=A49Rg87AiS5tRrSAlY3Oar6vPe7LSveaetnDdfyjhx5I0sxO58IIh5dk8yyOtXM5+3iUa2tZJWeTMxE8kKf4uWBQdOHId1SENj425FboCSEiCCDdmHuRtlfP9DgFyZZujLnVxNqYZHbe90YVj1hmfQTwDE+43w97PwvvDDd7VJA= Received: from CY4PR12MB1815.namprd12.prod.outlook.com (10.175.63.21) by CY4PR12MB1269.namprd12.prod.outlook.com (10.168.167.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Thu, 13 Sep 2018 19:31:20 +0000 Received: from CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82]) by CY4PR12MB1815.namprd12.prod.outlook.com ([fe80::ecd7:135f:4e1b:2d82%3]) with mapi id 15.20.1122.020; Thu, 13 Sep 2018 19:31:20 +0000 From: "Duran, Leo" To: "Ni, Ruiyu" , Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Dong, Eric" Thread-Topic: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. Thread-Index: AQHUSeX3EbC17fDvXkWWIRAmwJTcUaTrbK6AgAANLJCAAO+ogIAAVCzAgAAzL4CAAAHbwIAAj1YAgAEZC8A= Date: Thu, 13 Sep 2018 19:31:20 +0000 Message-ID: References: <1536680498-6554-1-git-send-email-leo.duran@amd.com> <1536680498-6554-2-git-send-email-leo.duran@amd.com> <17c6d6d1-2655-fe06-a8b9-f48141bfb0d7@redhat.com> <610eaa55-c87b-5e0c-4f87-5c1e79ffc5ba@redhat.com> <12abd990-3b08-9159-e7a9-ffd7eb7282b3@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5BE07168@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BE07168@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CY4PR12MB1269; 20:5X6kxgN7rluW1/UpL5GzlVi1d96N6J1gsksyv4AojgBkY0tpfrrqrk4FtlH6CbPnfgN4Jds0+BZ/NNjLa6l14Ohfnhsi+HWGd7NF+dtN0Iwz4jCRh2w7cvgvUUi4mB02ZDCAfbGiSdTkQJ+bdMtPoSHHY9PrmjzxpyUzgTrFskVhkT2UXHbCzAkMD2uSpIcTICOVbVXijmdXOeEtr4YRWCThUYWCVibtqV4KxAxEzy8tj83P++TvvbCUDM41LK7f x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: dc9a1271-83e3-4632-c9a7-08d619af7bc9 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1269; x-ms-traffictypediagnostic: CY4PR12MB1269: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(767451399110)(162533806227266)(163750095850)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231311)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123560045)(20161123558120)(201708071742011)(7699050); SRVR:CY4PR12MB1269; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1269; x-forefront-prvs: 07943272E1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(346002)(396003)(376002)(39860400002)(13464003)(189003)(52314003)(54094003)(199004)(446003)(55016002)(2900100001)(110136005)(33656002)(11346002)(102836004)(316002)(97736004)(6506007)(53546011)(229853002)(93886005)(6436002)(26005)(186003)(7736002)(9686003)(105586002)(106356001)(66066001)(2501003)(5250100002)(53936002)(14454004)(5660300001)(7696005)(478600001)(68736007)(305945005)(99286004)(74316002)(4326008)(81156014)(6116002)(8676002)(6246003)(76176011)(486006)(86362001)(25786009)(2906002)(476003)(81166006)(3846002)(256004)(575784001)(14444005)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1269; H:CY4PR12MB1815.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: KZxV8Dwe0JkFk2yLasjdsOEjEYSyy7/NHNdiLmMtmV0fiqE6ajDwhltGfEylDfUMKoZXXl7pjZnTFyRSmz7oNEZO4UrW67+4flCCB8XtFJby0KeczitfTQokn18PB/hcupMrzlMXHHuoRjRiORaGFvlsOfsfODn8UCUwoBXFu2JTWDYIlAPrjVh9VRA2fC+/D/T8c9Aas0nHauuKBhsTHkFiEglyS3PlAQ2dALjUtU9xH6c+Jte/bkYFjXfCwjRyWGexGFkG+1zqoKv2VzH2PGWXjx4Q3BMjrUD8o1iYfh1foh9WlLjoeYJGPWufPt1NyIy/gT+sxnTSfeDJtDKtP4IM6uj2vE0JwOJA+Og8woA= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc9a1271-83e3-4632-c9a7-08d619af7bc9 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2018 19:31:20.4685 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1269 Subject: Re: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Sep 2018 19:31:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmksIFJ1aXl1IDxydWl5 dS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDEyLCAyMDE4IDk6 MzkgUE0NCj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBE b25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIXSBV ZWZpQ3B1UGtnL010cnJMaWI6IEFkZCBmbGFnIHRvIHNraXAgZGlzYWJsaW5nIE1UUlJzDQo+IHBy aW9yIHRvIE1UUlIgY2hhbmdlLg0KPiANCj4gTGVvLA0KPiBTb3JyeSBJIHdhcyBpbiBsZWF2ZSB5 ZXN0ZXJkYXkgc28gZGlkbid0IHNlZSB0aGUgbWFpbC4NCj4gV2hpY2ggTVNScyBhcmUgc2hhcmVk PyBPbmx5IHRoZSBNU1JfSUEzMl9NVFJSX0RFRl9UWVBFX1JFR0lTVEVSPw0KPiBPciBhbGwgdGhl IE1TUnMgdGhhdCBjb25maWd1cmVzIHRoZSBDUFUgTVRSUiBzZXR0aW5nPw0KPiANCg0KSGkgUmF5 LA0KVGhlIE1UVFIgY29uZmlnIE1TUnMgYXJlIGFsc28gc2hhcmVkIGJ5IHRocmVhZHMgd2l0aGlu IGEgY29yZS4NCg0KPiBJIGFsc28gYWdyZWUgd2l0aCBMYXN6bG8ncyBjb21tZW50cyB0byBmaXgg dGhlIGNhbGxlciBpZiBhbGwgTVNScyByZWxhdGluZyB0bw0KPiBNVFJSIGFyZSBzaGFyZWQuDQo+ IFRoYXQgd2lsbCBiZSB0byBmaXggTXBJbml0TGliIGFuZCBDcHVEeGUgZHJpdmVyLg0KPiANCj4g VGhhbmtzL1JheQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206 IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBTZXB0 ZW1iZXIgMTMsIDIwMTggMjoyMiBBTQ0KPiA+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRo YXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBDYzogRG9uZywgRXJpYyA8ZXJp Yy5kb25nQGludGVsLmNvbT47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPiA+IFN1 YmplY3Q6IFJFOiBbUEFUQ0hdIFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcCBk aXNhYmxpbmcNCj4gPiBNVFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS4NCj4gPg0KPiA+DQo+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIg MTIsIDIwMTggMTI6NTkgUE0NCj4gPiA+IFRvOiBEdXJhbiwgTGVvIDxsZW8uZHVyYW5AYW1kLmNv bT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRv bmdAaW50ZWwuY29tPjsgUnVpeXUgTmkgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPiA+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcCBkaXNh YmxpbmcNCj4gPiA+IE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0KPiA+ID4NCj4gPiA+IE9u IDA5LzEyLzE4IDE3OjE3LCBEdXJhbiwgTGVvIHdyb3RlOg0KPiA+ID4gPiBMYXN6bG8sIGV0IGFs LA0KPiA+ID4gPg0KPiA+ID4gPiBQZXJoYXBzIGl0IHdvdWxkIGJlIGJlc3QgaWYgSSBwcm92aWRl IGFuIGV4YW1wbGUgb2YgdGhlIHByb2JsZW0NCj4gPiA+ID4gSSdtIHRyeWluZw0KPiA+ID4gdG8g c29sdmUsIGFuZCBwZXJoYXBzIHdlIG1heSBjaGltZSBpbiB3aXRoIHN1Z2dlc3Rpb25zLg0KPiA+ ID4gPg0KPiA+ID4gPiBBZ2FpbiwNCj4gPiA+ID4gVGhlIGZ1bmRhbWVudGFsIGlzc3VlIGhhcyB0 byBkbyB3aXRoIHNoYXJlZCBNVFJSIGNvbnRyb2wgYnkgc2V0IG9mDQo+ID4gPiB0aHJlYWRzIHdp dGhpbiBhIGNvcmUgd2l0aCBTTVQgZW5hYmxlZC4NCj4gPiA+ID4gU28gaWRlYWxseSBvbmx5IG9u ZSB0aHJlYWQgKHRoZSBmaXJzdCB0aHJlYWQgdGhhdCB3YWtlcyB1cCkgZnJvbSBhDQo+ID4gPiA+ IHNldCB3b3VsZA0KPiA+ID4gY29uZmlndXJlIHRoZSBNU1IsIGFuZCBvdGhlciB0aHJlYWRzIGlu IHRoZSBzZXQgd291bGQgbm90IG5lZWQgdG8uDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBwcm9ibGVt IHdpdGggdGhlIGV4aXN0aW5nIGNvZGUgaXMgdGhhdCBvbmNlIHRoZSBmaXJzdCB0aHJlYWQNCj4g PiA+ID4gY29uZmlndXJlcw0KPiA+ID4gdGhlIE1TUiwgYW5vdGhlciB0aHJlYWQgaW4gdGhlIHNl dCBmb2xsb3dzIGFuZCBjbGVhcnMgdGhlIEVOQUJMRSBiaXQNCj4gPiA+IGluIE10cnJMaWJQcmVN dHJyQ2hhbmdlKCkuDQo+ID4gPg0KPiA+ID4gUmlnaHQsIEkgdGhpbmsgSSB1bmRlcnN0b29kIHRo YXQuIFdoYXQgSSBkb24ndCB1bmRlcnN0YW5kIGlzOg0KPiA+ID4NCj4gPiA+ID4gKEJhc2ljYWxs eSwgdGhlIHNlY29uZCB0aHJlYWQgcHVsbHMgdGhlIHJ1ZyBmcm9tIHVuZGVyIHRoZSBmaXJzdCB0 aHJlYWQpLg0KPiA+ID4NCj4gPiA+IHdoeSBpdCBpcyBhIHByb2JsZW0gdGhhdCwgd2hlbiB0aGUg c2Vjb25kIHRocmVhZCB3YWtlcyB1cCBvbiB0aGUNCj4gPiA+IHNhbWUgY29yZSwgaXQgcmVwZWF0 cyB0aGUgd2hvbGUgTVRSUiBjb25maWd1cmF0aW9uPyBJdCBkb2VzIGNsZWFyDQo+ID4gPiB0aGUg RW5hYmxlIGJpdCB0ZW1wb3JhcmlseSwgeWVzLCBidXQgaW4gdGhlIGVuZCBpdCByZS1zdG9yZXMg dGhlDQo+ID4gPiBleGFjdCBzYW1lIE1UUlIgY29uZmlnLiBBbmQgd2hpbGUgdGhpcyBoYXBwZW5z LCB0aGUgZmlyc3QgdGhyZWFkIG9uDQo+ID4gPiB0aGUgY29yZSAoYWxyZWFkeSBwYXN0IHRoZSBN VFJSDQo+ID4gPiBzZXR1cCkgc2hvdWxkbid0IGJlIGRvaW5nIGFueXRoaW5nIGF0IGFsbCwgYmVj YXVzZSBhbGwgbG9naWNhbCBDUFVzDQo+ID4gPiBzaG91bGQgc2l0IHRpZ2h0IHVudGlsIGFsbCBv ZiB0aGVtIGNvbXBsZXRlIHRoZSBNVFJSIHNldHVwLg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBOb3cs IG9mIGNvdXJzZSwgaWYgdGhlIE1UUlIgc2V0dXAgcnVucyBpbiBwYXJhbGxlbCBvbiBhbGwgbG9n aWNhbA0KPiA+ID4gQ1BVcyAoSSBjYW4ndCByZWNhbGwgb2ZmLWhhbmQgd2hldGhlciB0aGV5IGFy ZSBzdGFydGVkIHVwIGluDQo+ID4gPiBwYXJhbGxlbCBvciBvbmUtYnktb25lIC0tIEkgdGhpbmsg aXQncyAiZnJlZSBmb3IgYWxsIiB0aG91Z2gpLCBhbmQNCj4gPiA+IG9uIHZhcmlvdXMgQ1BVIG1v ZGVscyB0aGlzIG1vZGlmaWVzIHJlc291cmNlcyB0aGF0IGFyZSBzaGFyZWQsIHRoZW4NCj4gPiA+ IHdlIGhhdmUgYSBtb3JlIHNlcmlvdXMgcHJvYmxlbS4gQmVjYXVzZSB0aGVuIHR3byB0aHJlYWRz IG9uIHRoZSBzYW1lDQo+ID4gPiBjb3JlIG1heSBtb2RpZnkgcGFydHMgb2YgdGhlIHNoYXJlZCBN VFJSIHNldHRpbmdzICpvdGhlciogdGhhbiBqdXN0IHRoZQ0KPiBFbmFibGUgYml0Lg0KPiA+ID4N Cj4gPg0KPiA+IEkgYWxzbyB0aGluayBpdCdzIGEgJ2ZyZWUgZm9yIGFsbCINCj4gPiAoTXkgdW5k ZXJzdGFuZGluZyBpcyB0aGF0IHRoZSBCU1AgaXNzdWVzIGEgYnJvYWRjYXN0IHRvIHRoZSBBUHMu KQ0KPiA+DQo+ID4gUGVyaGFwcyBpZiB0aGUgc2Vjb25kIHRocmVhZCB3YWl0cyBmb3IgdGhlIGZp cnN0IHRocmVhZCB0byBjb21wbGV0ZQ0KPiA+IGFuZCBnZXQgc2FmZWx5IHBhcmtlZCwgdGhlIGZp cnN0IHRocmVhZCBtYXkgYmUgdGhlbiBpbW11bmUgdG8gdGhlDQo+ID4gc3Vic2VxdWVudCBjaGFu Z2VzLg0KPiA+DQo+ID4gPiBQZXJoYXBzIHRoaXMgc2hvdWxkIGJlIHNvbHZlZCBieSBhZGRpbmcg c3VpdGFibGUgZXhjbHVzaW9uLCBzbyB0aGF0DQo+ID4gPiBvbmx5IG9uZSB0aHJlYWQgb24gZWFj aCBjb3JlIGNvbmZpZ3VyZSB0aGUgTVRSUi4gSW4gb3RoZXIgd29yZHMsDQo+ID4gPiBjb250aW51 ZSB0byBwZXJtaXQgZnVsbCBwYXJhbGxlbGlzbSBiZXR3ZWVuIGNvcmVzLCBidXQgcmVzdHJpY3Qg ZWFjaA0KPiA+ID4gY29yZSB0byBqdXN0IG9uZSBsb2dpY2FsIHRocmVhZCwgd2hlbiBkb2luZyB0 aGUgTVRSUiBjaGFuZ2VzLg0KPiA+ID4NCj4gPg0KPiA+IFllcywgYWdyZWVkIQ0KPiA+IFRoYXQg d291bGQgYmUgaWRlYWwgZm9yIHRoZSBjYXNlIHdoZXJlIHRocmVhZHMgaW4gYSBjb3JlIHNoYXJl IE1UUlINCj4gPiByZXNvdXJjZXMuDQo+ID4NCj4gPiBVbmZvcnR1bmF0ZWx5LCBNdHJyU2V0QWxs TXRycnMoKSBnZXRzIGNhbGxlZCBmcm9tIHF1aXRlIGEgZmV3IHBsYWNlcywNCj4gPiBzbyBvcmNo ZXN0cmF0aW5nIHRoZSAib25seSBvbmUgbG9naWNhbCB0aHJlYWQiIGxvZ2ljIG1heSBiZSBxdWl0 ZQ0KPiBjb21wbGljYXRlZC4NCj4gPiBBZ2FpbiwgSSBwcmVzdW1lIHRoYXQgd2hpbGUgdGhlIHdv cmtlciB0aHJlYWQgbWFrZXMgdGhlIE1UUlIgY2hhbmdlcywNCj4gPiB0aGUgb3RoZXIgdGhyZWFk cyBtdXN0IGJlIHNhZmVseSBwYXJrZWQgYW5kIGltbXVuZSB0byB0b2dnbGluZyBvZiB0aGUNCj4g PiBFbmFibGUgYml0Lg0KPiA+DQo+ID4gPiBJIHdvbmRlciBpZiB0aGUgcmlnaHQgYXBwcm9hY2gg aXMgdG8gZGlzY292ZXIgdGhlIENQVSB0b3BvbG9neQ0KPiA+ID4gdXAtZnJvbnQgKGJhc2VkIG9u IHRoZSBpbml0aWFsIEFQSUMgSURzIHBlcmhhcHM/KSwgYW5kIHRvIG1vZGlmeSB0aGUNCj4gPiA+ IE1UUlIgc2V0dXAgY2FsbGJhY2sgZm9yIFN0YXJ0dXBBbGxBUHMgLS0gb24gdGhlIGFmZmVjdGVk IENQVSBtb2RlbHMNCj4gPiA+IC0tIHNvIHRoYXQgdGhlIGNhbGxiYWNrIHJldHVybnMgd2l0aG91 dCBkb2luZyBhbnl0aGluZyBvbiB0aGUNCj4gPiA+IGluaXRpYWxseQ0KPiA+ICJibGFja2xpc3Rl ZCINCj4gPiA+IHRocmVhZHMuDQo+ID4gPg0KPiA+ID4gQnkgdGhlIHRpbWUgd2UgYXJlIGluIE10 cnJMaWIsIGl0J3MgbGlrZWx5IHRvbyBsYXRlIHRvIGNhdGNoIHRoZQ0KPiA+ID4gbm9uLWZhdm9y ZWQgdGhlYWRzLg0KPiA+ID4NCj4gPiA+IChJJ2QgdmVyeSBtdWNoIGxpa2Ugb3RoZXJzIHRvIGNo aW1lIGluIHRvby4pDQo+ID4gPg0KPiA+ID4gVGhhbmtzDQo+ID4gPiBMYXN6bG8NCj4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+IEkgaG9wZSB0aGF0IGhlbHBzIGV4cGxhaW4gd2hhdCBJJ20gYWZ0ZXIu DQo+ID4gPiA+IExlby4NCj4gPiA+ID4NCj4gPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ ID4gPj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMTIsIDIwMTggNDo1NSBBTQ0KPiA+ID4g Pj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmcNCj4gPiA+ID4+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBSdWl5 dSBOaQ0KPiA+ID4gPj4gPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPiA+ID4+IFN1YmplY3Q6IFJl OiBbUEFUQ0hdIFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcA0KPiA+ID4gPj4g ZGlzYWJsaW5nIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLg0KPiA+ID4gPj4NCj4gPiA+ID4+ IE9uIDA5LzExLzE4IDIxOjQ3LCBEdXJhbiwgTGVvIHdyb3RlOg0KPiA+ID4gPj4+DQo+ID4gPiA+ Pj4NCj4gPiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4+Pj4gRnJv bTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiA+ID4+Pj4gU2VudDogVHVl c2RheSwgU2VwdGVtYmVyIDExLCAyMDE4IDE6NTAgUE0NCj4gPiA+ID4+Pj4gVG86IER1cmFuLCBM ZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4+ Pj4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFJ1aXl1IE5pDQo+ID4gPiA+ Pj4+IDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IFVlZmlDcHVQa2cvTXRyckxpYjogQWRkIGZsYWcgdG8gc2tpcA0KPiA+ID4gPj4+PiBkaXNhYmxp bmcgTVRSUnMgcHJpb3IgdG8gTVRSUiBjaGFuZ2UuDQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pj4+IE9u IDA5LzExLzE4IDE3OjQxLCBMZW8gRHVyYW4gd3JvdGU6DQo+ID4gPiA+Pj4+PiBUaGUgZGVmYXVs dCBiZWhhdmlvciBpcyB0byBkaXNhYmxlIE1UUlJzIHByaW9yIHRvIGFuIE1UUlIgY2hhbmdlLg0K PiA+ID4gPj4+Pj4gSG93ZXZlciwgb24gU01UIHBsYXRmb3JtcyB3aXRoIHNoYXJlZCBDUFUgcmVz b3VyY2VzIGl0IG1heSBiZQ0KPiA+ID4gPj4+Pj4gZGVzaXJhYmxlIHRvIHNraXAgdGhlIGRlZmF1 bHQgYmVoYXZpb3IsIGFuZCBsZWF2ZSB0aGUgY3VycmVudA0KPiA+ID4gPj4+Pj4gc3RhdGUgb2Yg dGhlDQo+ID4gPiA+Pj4+IEVuYWJsZSBiaXQuDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gQ2M6 IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiA+ID4+Pj4+IENjOiBMYXN6bG8g RXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gPj4+Pj4gQ29udHJpYnV0ZWQtdW5kZXI6 IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4gPj4+Pj4gU2lnbmVk LW9mZi1ieTogTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4NCj4gPiA+ID4+Pj4+IC0tLQ0K PiA+ID4gPj4+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuYyAgIHwgMTAg KysrKysrKy0tLQ0KPiA+ID4gPj4+Pj4gIFVlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJM aWIuaW5mIHwgIDMgKysrDQo+ID4gPiA+Pj4+PiAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYyAg ICAgICAgICAgICAgfCAgNyArKysrKysrDQo+ID4gPiA+Pj4+PiAgMyBmaWxlcyBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+ IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmMNCj4gPiA+ ID4+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5jDQo+ID4gPiA+Pj4+ PiBpbmRleCBkZmNlOWE5Li5iYWY5YTBmIDEwMDY0NA0KPiA+ID4gPj4+Pj4gLS0tIGEvVWVmaUNw dVBrZy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5jDQo+ID4gPiA+Pj4+PiArKysgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmMNCj4gPiA+ID4+Pj4+IEBAIC02LDYgKzYsOCBA QA0KPiA+ID4gPj4+Pj4gICAgICBleGNlcHQgZm9yIE10cnJTZXRBbGxNdHJycygpIHdoaWNoIGlz IHVzZWQgdG8gc3luYyBCU1Ancw0KPiA+ID4gPj4+Pj4gTVRSUiBzZXR0aW5nIHRvDQo+ID4gPiA+ Pj4+IEFQcy4NCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+PiAgICBDb3B5cmlnaHQgKGMpIDIwMDgg LSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPj4+Pj4gcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4gPj4+Pj4gKyAgQ29weXJpZ2h0IChjKSAyMDE4LCBBTUQgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4+Pj4+ICsNCj4gPiA+ID4+Pj4+ICAgIFRoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiA+ID4+Pj4+ICAgIGFy ZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZA0KPiA+ID4g Pj4+Pj4gY29uZGl0aW9ucyBvZiB0aGUNCj4gPiA+ID4+Pj4gQlNEIExpY2Vuc2UNCj4gPiA+ID4+ Pj4+ICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUNCj4gPiA+ID4+Pj4+IGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0IEBAIC0zMTAsOSAr MzEyLDExIEBADQo+ID4gPiBNdHJyTGliUHJlTXRyckNoYW5nZQ0KPiA+ID4gPj4gKA0KPiA+ID4g Pj4+Pj4gICAgLy8NCj4gPiA+ID4+Pj4+ICAgIC8vIERpc2FibGUgTVRSUnMNCj4gPiA+ID4+Pj4+ ICAgIC8vDQo+ID4gPiA+Pj4+PiAtICBEZWZUeXBlLlVpbnQ2NCA9IEFzbVJlYWRNc3I2NA0KPiAo TVNSX0lBMzJfTVRSUl9ERUZfVFlQRSk7DQo+ID4gPiA+Pj4+PiAtICBEZWZUeXBlLkJpdHMuRSA9 IDA7DQo+ID4gPiA+Pj4+PiAtICBBc21Xcml0ZU1zcjY0IChNU1JfSUEzMl9NVFJSX0RFRl9UWVBF LCBEZWZUeXBlLlVpbnQ2NCk7DQo+ID4gPiA+Pj4+PiArICBpZiAoIVBjZEdldEJvb2wgKFBjZFNr aXBEaXNhYmxlTXRycnNPblByZU10cnJDaGFuZ2UpKSB7DQo+ID4gPiA+Pj4+PiArICAgIERlZlR5 cGUuVWludDY0ID0gQXNtUmVhZE1zcjY0DQo+IChNU1JfSUEzMl9NVFJSX0RFRl9UWVBFKTsNCj4g PiA+ID4+Pj4+ICsgICAgRGVmVHlwZS5CaXRzLkUgPSAwOw0KPiA+ID4gPj4+Pj4gKyAgICBBc21X cml0ZU1zcjY0IChNU1JfSUEzMl9NVFJSX0RFRl9UWVBFLA0KPiA+IERlZlR5cGUuVWludDY0KTsg IH0NCj4gPiA+ID4+Pj4+ICB9DQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gIC8qKg0KPiA+ID4g Pj4+Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuaW5m DQo+ID4gPiA+Pj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5pbmYNCj4g PiA+ID4+Pj4+IGluZGV4IGE5N2NjNjEuLjA2ZjMzZTggMTAwNjQ0DQo+ID4gPiA+Pj4+PiAtLS0g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmluZg0KPiA+ID4gPj4+Pj4gKysr IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5pbmYNCj4gPiA+ID4+Pj4+IEBA IC0yLDYgKzIsOCBAQA0KPiA+ID4gPj4+Pj4gICMgIE1UUlIgbGlicmFyeSBwcm92aWRlcyBBUElz IGZvciBNVFJSIG9wZXJhdGlvbi4NCj4gPiA+ID4+Pj4+ICAjDQo+ID4gPiA+Pj4+PiAgIyAgQ29w eXJpZ2h0IChjKSAyMDA2IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4g PiA+ID4+Pj4+IHJlc2VydmVkLjxCUj4NCj4gPiA+ID4+Pj4+ICsjICBDb3B5cmlnaHQgKGMpIDIw MTgsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAjDQo+ID4gPiA+Pj4+PiAgIyAg VGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgIyAgYXJlDQo+ID4g PiA+Pj4+PiBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mDQo+ID4gPiA+Pj4+PiB0aGUNCj4gPiA+ID4+Pj4gQlNEIExpY2Vuc2UNCj4g PiA+ID4+Pj4+ICAjICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBm dWxsIHRleHQgb2YgdGhlDQo+ID4gPiA+Pj4+PiBsaWNlbnNlIG1heSBiZQ0KPiA+ID4gPj4+PiBm b3VuZCBhdA0KPiA+ID4gPj4+Pj4gQEAgLTQzLDQgKzQ1LDUgQEANCj4gPiA+ID4+Pj4+DQo+ID4g PiA+Pj4+PiAgW1BjZF0NCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pg0KPiBnVWVmaUNwdVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZENwdU51bWJlck9mUmVzZXJ2ZWRWYXJpYWJsZU10cnJzDQo+ID4gPiA+Pj4+ ICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiA+ID4gPj4+Pj4gKw0KPiA+ID4gZ1VlZmlDcHVQa2dU b2tlblNwYWNlR3VpZC5QY2RTa2lwRGlzYWJsZU10cnJzT25QcmVNdHJyQ2hhbmdlDQo+ID4gPiA+ Pj4+ICMjIENPTlNVTUVTDQo+ID4gPiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gZGlmZiAtLWdpdCBhL1Vl ZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4gPiA+IGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRl Yw0KPiA+ID4gPj4+Pj4gaW5kZXggNjlkNzc3YS4uNjRlYzc2MyAxMDA2NDQNCj4gPiA+ID4+Pj4+ IC0tLSBhL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4gPiA+ID4+Pj4+ICsrKyBiL1VlZmlD cHVQa2cvVWVmaUNwdVBrZy5kZWMNCj4gPiA+ID4+Pj4+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4g Pj4+Pj4gICMgVGhpcyBQYWNrYWdlIHByb3ZpZGVzIFVFRkkgY29tcGF0aWJsZSBDUFUgbW9kdWxl cyBhbmQNCj4gbGlicmFyaWVzLg0KPiA+ID4gPj4+Pj4gICMNCj4gPiA+ID4+Pj4+ICAjIENvcHly aWdodCAoYykgMjAwNyAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4g PiA+Pj4+PiByZXNlcnZlZC48QlI+DQo+ID4gPiA+Pj4+PiArIyBDb3B5cmlnaHQgKGMpIDIwMTgs IEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPj4+Pj4gICMNCj4gPiA+ ID4+Pj4+ICAjIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJl IGxpY2Vuc2VkDQo+ID4gPiA+Pj4+PiBhbmQgbWFkZQ0KPiA+ID4gPj4+PiBhdmFpbGFibGUgdW5k ZXINCj4gPiA+ID4+Pj4+ICAjIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExp Y2Vuc2Ugd2hpY2gNCj4gPiA+ID4+Pj4+IGFjY29tcGFuaWVzIHRoaXMNCj4gPiA+ID4+Pj4gZGlz dHJpYnV0aW9uLg0KPiA+ID4gPj4+Pj4gQEAgLTI3Myw2ICsyNzQsMTIgQEANCj4gPiA+ID4+Pj4+ ICAgICMgQFByb21wdCBDdXJyZW50IGJvb3QgaXMgYSBwb3dlci1vbiByZXNldC4NCj4gPiA+ID4+ Pj4+DQo+ID4gPiA+Pj4+DQo+ID4gPiA+Pg0KPiA+ID4NCj4gPg0KPiBnVWVmaUNwdVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZElzUG93ZXJPblJlc2V0fEZBTFNFfEJPT0xFQU58MHgwMDAwDQo+ID4gPiA+ Pj4+IDAwMUINCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+PiArICAjIyBJbmRpY2F0ZXMgZGVzaXJl ZCBiZWhhdmlvciBmb3IgZGlzYWJsaW5nIE1UUlJzIHByaW9yIHRvDQo+ID4gPiA+Pj4+PiArIE1U UlINCj4gPiA+ID4+Pj4gY2hhbmdlLjxCUj48QlI+DQo+ID4gPiA+Pj4+PiArICAjICAgVFJVRSAg LSBTa2lwIGRpc2FibGluZyBNVFJScyBwcmlvciB0byBNVFJSIGNoYW5nZS48QlI+DQo+ID4gPiA+ Pj4+PiArICAjICAgRkFMU0UgLSBEaXNhYmxlIE1UUlJzIHByaW9yIHRvIE1UUlIgY2hhbmdlLjxC Uj4NCj4gPiA+ID4+Pj4+ICsgICMgQFByb21wdCBEZXNpcmVkIGJlaGF2aW9yIGZvciBkaXNhYmxp bmcgTVRSUnMgcHJpb3IgdG8NCj4gPiA+ID4+Pj4+ICsgTVRSUg0KPiA+ID4gPj4gY2hhbmdlLg0K PiA+ID4gPj4+Pj4gKw0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4NCj4gPiA+DQo+ID4NCj4gZ1VlZmlD cHVQa2dUb2tlblNwYWNlR3VpZC5QY2RTa2lwRGlzYWJsZU10cnJzT25QcmVNdHJyQ2hhbmdlfEZB TFNFDQo+ID4gPiA+Pj4+IHxCT09MRUFOfDB4MDAwMDAwMUUNCj4gPiA+ID4+Pj4+ICsNCj4gPiA+ ID4+Pj4+ICBbUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhdDQo+ID4gPiA+Pj4+PiAgICAjIyBD b250YWlucyB0aGUgcG9pbnRlciB0byBhIENQVSBTMyBkYXRhIGJ1ZmZlciBvZg0KPiA+ID4gPj4+ Pj4gc3RydWN0dXJlDQo+ID4gPiA+Pj4+IEFDUElfQ1BVX0RBVEEuDQo+ID4gPiA+Pj4+PiAgICAj IEBQcm9tcHQgVGhlIHBvaW50ZXIgdG8gYSBDUFUgUzMgZGF0YSBidWZmZXIuDQo+ID4gPiA+Pj4+ Pg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBSZWNlbnRseSwgUmF5IGhhcyB3cml0dGVuIHNldmVy YWwgJiBzaWduaWZpY2FudCBwYXRjaGVzIGZvcg0KPiA+ID4gPj4+PiBNdHJyTGliOyBJJ20gYWRk aW5nIGhpbS4NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pj4gSSBkb24ndCB1bmRlcnN0YW5kIHRoZSBt b3RpdmF0aW9uIGJlaGluZCB0aGlzIHBhdGNoLiBBcyBmYXIgYXMNCj4gPiA+ID4+Pj4gSSByZW1l bWJlciAod2hpY2ggaXMgYWRtaXR0ZWRseSAicXVpdGUgdmFndWVseSIpLCB0aGUgU0RNDQo+ID4g PiA+Pj4+IHJlcXVpcmVzIGFsbCBsb2dpY2FsIHByb2Nlc3NvcnMgdG8gcHJvZ3JhbSB0aGVpciBN VFJScyBpZGVudGljYWxseSBpbg0KPiBwYXJhbGxlbC4NCj4gPiA+ID4+Pj4gVGhhdCBpcywgdGhl cmUgc2hvdWxkIGJlIGEgc3RhcnQgbGluZSB3aGVyZSBhbGwgdGhlIENQVXMgd2FpdA0KPiA+ID4g Pj4+PiBmb3IgZWFjaCBvdGhlciwgdGhlbiB0aGV5IGFsbCBzZXQgdXAgdGhlaXIgTVRSUnMsIHRo ZW4gdGhleSBhbGwNCj4gPiA+ID4+Pj4gd2FpdCB1bnRpbCB0aGV5IGFsbCBmaW5pc2gsIHRoZW4g dGhleSBhbGwgZ28gdGhlaXIgbWVycnkgd2F5cy4NCj4gPiA+ID4+Pj4gQUlVSSB0aGUgQ1BVIE1Q IFBQSSBhbmQgcHJvdG9jb2wgaW1wbGVtZW50IHRoaXMgYWxyZWFkeS4gSQ0KPiA+ID4gPj4+PiBk b24ndCB1bmRlcnN0YW5kIGluIHdoYXQgc2l0dWF0aW9uIHlvdSdkIGhhdmUgb25lIHRocmVhZCBv ZiBhDQo+ID4gPiA+Pj4+IGNvcmUgbWFuaXB1bGF0aW5nIE1UUlIsIHdpdGggdGhlIHNpYmxpbmcg dGhyZWFkICpub3QqDQo+ID4gPiA+Pj4+IG1hbmlwdWxhdGluZyBNVFJSIChpLmUuLCBkb2luZyBz b21ldGhpbmcgZWxzZSkuIFRoYXQgZG9lc24ndA0KPiA+ID4gPj4+PiBzZWVtIHRvIG1hdGNoIHdo YXQgdGhlIFNETSBkaWN0YXRlcyAob3IsIHdlbGwsIHdoYXQgbXkgbWVtb3JpZXMNCj4gPiA+ID4+ Pj4gb2YgdGhlIFNETQ0KPiA+IGFyZSA6KSApLg0KPiA+ID4gPj4+Pg0KPiA+ID4gPj4+PiBJIHNl ZSB0aGF0IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGRvZXNuJ3QgY2hhbmdlLCBhbmQgSSdtIG5vdA0K PiA+ID4gPj4+PiBhZ2FpbnN0IHRoZSBwYXRjaDsgSSBqdXN0IHN1c3BlY3QgdGhhdCwgZm9yIGlu dHJvZHVjaW5nIGEgbmV3DQo+ID4gPiA+Pj4+IFBDRCwgbW9yZSBjb25jcmV0ZSAvIHByYWN0aWNh bCBqdXN0aWZpY2F0aW9uIGNvdWxkIGJlIG5lZWRlZC4NCj4gPiA+ID4+Pj4NCj4gPiA+ID4+Pg0K PiA+ID4gPj4+IEluIG91ciBjYXNlIG11bHRpcGxlIHByb2Nlc3NvcnMgKHRocmVhZHMpIHNoYXJl IE1UVFIgc2V0dGluZ3MsDQo+ID4gPiA+Pj4gaGVuY2UgdGhlDQo+ID4gPiA+PiBFbmFibGUgYml0 IGlzIHNoYXJlZC4NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+PiBNb3JlIHF1ZXN0aW9uczoNCj4gPiA+ ID4+Pj4NCj4gPiA+ID4+Pj4gLSBEb24ndCB5b3UgbmVlZCBhIHNpbWlsYXIgKHN5bW1ldHJpYykg Y2hhbmdlIGluDQo+ID4gPiA+Pj4+IE10cnJMaWJQb3N0TXRyckNoYW5nZSgpPyBJZiBub3QsIHdo eSBub3Q/IENhbiB5b3UgYWRkIHRoYXQgdG8NCj4gPiA+ID4+Pj4gdGhlIGNvbW1pdCBtZXNzYWdl Pw0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gTm8gbmVlZC4gVGhlICJQb3N0IiBjb2RlIGp1c3QgcmVz dG9yZXMuDQo+ID4gPiA+Pj4gU3VyZSwgSSBjYW4gYWRkIGEgY29tbWVudC4NCj4gPiA+ID4+DQo+ ID4gPiA+PiBTdXJlLCBmdW5jdGlvbmFsbHkgaXQgZG9lc24ndCBodXJ0IEkgZ3Vlc3MsIGJ1dCB5 b3UgY291bGQgYXZvaWQgYQ0KPiA+ID4gPj4gUk1XIHRvIE1TUl9JQTMyX01UUlJfREVGX1RZUEUu DQo+ID4gPiA+Pg0KPiA+ID4gPj4gT3IgaXMgaXQgbmVjZXNzYXJ5IHRvIHJld3JpdGUgdGhlIEZF IGJpdD8gKEl0IGRvZXNuJ3QgbG9vaw0KPiA+ID4gPj4gbmVjZXNzYXJ5IHRvIG1lLCBidXQgSSBj b3VsZCBiZSB3cm9uZy4pDQo+ID4gPiA+Pg0KPiA+ID4gPj4gT3IgbWF5YmUgeW91IG5lZWQgdG8g d3JpdGUgdG8gdGhlIE1TUiB0aGUgKmZpcnN0KiB0aW1lIHRoYXQNCj4gPiA+ID4+IE10cnJMaWJQ b3N0TXRyckNoYW5nZSgpIGlzIGNhbGxlZC4uLg0KPiA+ID4gPj4NCj4gPiA+ID4+IEFueXdheSwg SSdtIE9LIHdpdGggdGhlIHBhdGNoLCBJJ2xsIGxldCBFcmljIGFuZCBSYXkgZGVjaWRlLg0KPiA+ ID4gPj4NCj4gPiA+ID4+IEFja2VkLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t Pg0KPiA+ID4gPj4NCj4gPiA+ID4+DQo+ID4gPiA+PiBUaGFua3MNCj4gPiA+ID4+IExhc3psbw0K DQo=