From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0C8F9210C2791 for ; Wed, 25 Jul 2018 22:20:20 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jul 2018 22:20:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,403,1526367600"; d="scan'208";a="70008714" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga003.jf.intel.com with ESMTP; 25 Jul 2018 22:20:19 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 25 Jul 2018 22:20:19 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.81]) by shsmsx102.ccr.corp.intel.com ([169.254.2.124]) with mapi id 14.03.0319.002; Thu, 26 Jul 2018 13:18:59 +0800 From: "Ni, Ruiyu" To: "Dong, Eric" , Laszlo Ersek , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [Patch v3 1/3] UefiCpuPkg/MpInitLib: Remove redundant CpuStateFinished State. Thread-Index: AQHUI+xItjHLI3BcWk2JN4gQaCQ4zaSfPd2AgAAFxICAAbTEMA== Date: Thu, 26 Jul 2018 05:18:58 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BD8C191@SHSMSX104.ccr.corp.intel.com> References: <20180725075020.240-1-eric.dong@intel.com> <20180725075020.240-2-eric.dong@intel.com> <191141df-1a1a-0228-9055-86fa8982287e@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch v3 1/3] UefiCpuPkg/MpInitLib: Remove redundant CpuStateFinished State. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2018 05:20:21 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RXJpYywNClBsZWFzZSBhbHNvIGluY2x1ZGUgdGhlIHN0YXRlIG1hY2hpbmUgaW4gY29tbWVudHMg Zm9yIEVOVU0gQ1BVX1NUQVRFIGRlZmluaXRpb24uDQoNClJldmlld2VkLWJ5OiBSdWl5dSBOaSA8 cnVpeXUubmlAaW50ZWwuY29tPg0KDQpUaGFua3MvUmF5DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gRnJvbTogRG9uZywgRXJpYw0KPiBTZW50OiBXZWRuZXNkYXksIEp1bHkgMjUs IDIwMTggNzoxNSBQTQ0KPiBUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNv bT4NCj4gU3ViamVjdDogUkU6IFtlZGsyXSBbUGF0Y2ggdjMgMS8zXSBVZWZpQ3B1UGtnL01wSW5p dExpYjogUmVtb3ZlIHJlZHVuZGFudA0KPiBDcHVTdGF0ZUZpbmlzaGVkIFN0YXRlLg0KPiANCj4g SGkgTGFzemxvLA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPiBTZW50OiBX ZWRuZXNkYXksIEp1bHkgMjUsIDIwMTggNjo1NSBQTQ0KPiA+IFRvOiBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiBDYzogTmksIFJ1 aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUGF0Y2gg djMgMS8zXSBVZWZpQ3B1UGtnL01wSW5pdExpYjogUmVtb3ZlDQo+ID4gcmVkdW5kYW50IENwdVN0 YXRlRmluaXNoZWQgU3RhdGUuDQo+ID4NCj4gPiBIaSBFcmljLA0KPiA+DQo+ID4gT24gMDcvMjUv MTggMDk6NTAsIEVyaWMgRG9uZyB3cm90ZToNCj4gPiA+IEN1cnJlbnQgQ1BVIHN0YXRlIGRlZmlu aXRpb24gaW5jbHVkZSBDcHVTdGF0ZUlkbGUgYW5kIENwdVN0YXRlRmluaXNoZWQuDQo+ID4gPiBB ZnRlciBpbnZlc3RpZ2F0aW9uLCBjdXJyZW50IGNvZGUgY2FuIHVzZSBDcHVTdGF0ZUlkbGUgdG8g cmVwbGFjZQ0KPiA+ID4gdGhlIENwdVN0YXRlRmluaXNoZWQuIEl0IHdpbGwgcmVkdWNlIHRoZSBz dGF0ZSBudW1iZXIgYW5kIGVhc3kgZm9yDQo+IG1haW50ZW5hbmNlLg0KPiA+ID4NCj4gPiA+IENj OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gQ2M6IFJ1aXl1IE5pIDxy dWl5dS5uaUBpbnRlbC5jb20+DQo+ID4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENv bnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBFcmljIERvbmcg PGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBVZWZpQ3B1UGtnL0xpYnJh cnkvTXBJbml0TGliL01wTGliLmMgfCAxOCArKysrKysrKy0tLS0tLS0tLS0NCj4gPiA+IFVlZmlD cHVQa2cvTGlicmFyeS9NcEluaXRMaWIvTXBMaWIuaCB8ICAxIC0NCj4gPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBBZnRlciBs b29raW5nIG92ZXIgdGhpcyBwYXRjaCwgaXQgc2VlbXMgdGhhdCB5b3UgYXJlIHByZXNlcnZpbmcg dGhlDQo+ID4gQ3B1U3RhdGVSZWFkeSBlbnVtIGNvbnN0YW50LCByZWxhdGl2ZSB0bzoNCj4gPg0K PiA+DQo+ID4gaHR0cDovL21pZC5tYWlsLWFyY2hpdmUuY29tLzIwMTgwNjI4MTEyOTIwLjUyOTYt MS1lcmljLmRvbmdAaW50ZWwuY29tDQo+ID4NCj4gPiBIb3dldmVyLCBiYXNlZCBvbiB5b3VyIGFu YWx5c2lzIGluDQo+ID4NCj4gPiAgIGh0dHA6Ly9taWQubWFpbC0NCj4gPiBhcmNoaXZlLmNvbS9F RDA3NzkzMEMyNTg4ODRCQkNCNDUwREI3MzdFNjYyMjRBQzVBNDUzQHNoc21zeDEwMi4NCj4gPiBj Y3IuY29ycC5pbnRlbC5jb20NCj4gPg0KPiA+IGlzbid0IGl0IHN0aWxsIHBvc3NpYmxlIHRvIHJ1 biBpbnRvIHRoZSBleGFjdCBzYW1lIGlzc3VlPyAoTmFtZWx5LCBCU1ANCj4gPiB0aGlua3MgdGhl IEFQIGhhcyBnb25lIHRocm91Z2ggSWRsZSAtPiBCdXN5IC0+IElkbGUsIGJ1dCB0aGUgQVAgaGFz DQo+ID4gbmV2ZXIgYWN0dWFsbHkgbGVmdA0KPiA+IElkbGU/KQ0KPiA+DQo+ID4gSG0sIHdhaXQs IGlzIGl0IHRoZSBjYXNlIHRoYXQgdGhlIEJTUCBmaXJzdCBzZXRzIFJlYWR5LCBhbmQgc28gaWYg dGhlDQo+ID4gY2hlY2sgZm9yIGFuIEFQIHJldHVybnMgSWRsZSwgaXQgaW1wbGllcyB0aGUgQVAg bXVzdCBoYXZlIGdvbmUgdGhyb3VnaDoNCj4gPg0KPiA+ICAgSWRsZSAtLS0tPiBSZWFkeSAtLS0t PiBCdXN5IC0tLS0+IElkbGUNCj4gPg0KPiA+ID8NCj4gDQo+IENvcnJlY3QhIFRoZSBSZWFkeSBz dGF0ZSBpcyBiZWdpbiBzdGF0ZSBhbmQgdGhlIElkbGUgaXMgdGhlIGZpbmlzaCBzdGF0ZS4NCj4g DQo+ID4NCj4gPiBJZiB0aGlzIGlzIGNvcnJlY3QsIGNhbiB5b3UgcGxlYXNlIGluY2x1ZGUgdGhl IGZvbGxvd2luZyBpbiB0aGUgY29tbWl0DQo+ID4gbWVzc2FnZToNCj4gPg0KPiA+ID4gQmVmb3Jl IHRoaXMgcGF0Y2gsIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucyBmb3IgYW4gQVAgYXJlOg0KPiA+ID4N Cj4gPiA+ICAgSWRsZSAtLS0tPiBSZWFkeSAtLS0tPiBCdXN5IC0tLS0+IEZpbmlzaGVkIC0tLS0+ IElkbGUNCj4gPiA+ICAgICAgICBbQlNQXSAgICAgICBbQVBdICAgICAgIFtBUF0gICAgICAgICAg IFtCU1BdDQo+ID4gPg0KPiA+ID4gQWZ0ZXIgdGhlIHBhdGNoLCB0aGUgc3RhdGUgdHJhbnNpdGlv bnMgZm9yIGFuIEFQIGFyZToNCj4gPiA+DQo+ID4gPiAgIElkbGUgLS0tLT4gUmVhZHkgLS0tLT4g QnVzeSAtLS0tPiBJZGxlDQo+ID4gPiAgICAgICAgW0JTUF0gICAgICAgW0FQXSAgICAgICBbQVBd DQo+ID4NCj4gPiBEbyB5b3UgYWdyZWU/DQo+IA0KPiBHb29kIHN1Z2dlc3Rpb24sICBJIHdpbGwg aW5jbHVkZSB0aGlzIGluZm8gaW4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gPg0KPiA+IEkg aGF2ZSBhbm90aGVyIHF1ZXN0aW9uOg0KPiA+DQo+ID4gT24gMDcvMjUvMTggMDk6NTAsIEVyaWMg RG9uZyB3cm90ZToNCj4gPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0 TGliL01wTGliLmMNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5j DQo+ID4gPiBpbmRleCBjODJiOTg1OTQzLi5mZjA5YTBlOWU3IDEwMDY0NA0KPiA+ID4gLS0tIGEv VWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5jDQo+ID4gPiArKysgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvTXBJbml0TGliL01wTGliLmMNCj4gPiA+IEBAIC02OTYsNyArNjk2LDcgQEAg QXBXYWtldXBGdW5jdGlvbiAoDQo+ID4gPiAgICAgICAgICAgICAgfQ0KPiA+ID4gICAgICAgICAg ICB9DQo+ID4gPiAgICAgICAgICB9DQo+ID4gPiAtICAgICAgICBTZXRBcFN0YXRlICgmQ3B1TXBE YXRhLT5DcHVEYXRhW1Byb2Nlc3Nvck51bWJlcl0sDQo+ID4gQ3B1U3RhdGVGaW5pc2hlZCk7DQo+ ID4gPiArICAgICAgICBTZXRBcFN0YXRlICgmQ3B1TXBEYXRhLT5DcHVEYXRhW1Byb2Nlc3Nvck51 bWJlcl0sDQo+ID4gPiArIENwdVN0YXRlSWRsZSk7DQo+ID4gPiAgICAgICAgfQ0KPiA+ID4gICAg ICB9DQo+ID4gPg0KPiA+ID4gQEAgLTEzNTIsMTggKzEzNTIsMTcgQEAgQ2hlY2tUaGlzQVAgKA0K PiA+ID4gICAgQ3B1RGF0YSAgID0gJkNwdU1wRGF0YS0+Q3B1RGF0YVtQcm9jZXNzb3JOdW1iZXJd Ow0KPiA+ID4NCj4gPiA+ICAgIC8vDQo+ID4gPiAtICAvLyAgQ2hlY2sgdGhlIENQVSBzdGF0ZSBv ZiBBUC4gSWYgaXQgaXMgQ3B1U3RhdGVGaW5pc2hlZCwgdGhlbg0KPiA+ID4gdGhlIEFQIGhhcw0K PiA+IGZpbmlzaGVkIGl0cyB0YXNrLg0KPiA+ID4gKyAgLy8gIENoZWNrIHRoZSBDUFUgc3RhdGUg b2YgQVAuIElmIGl0IGlzIENwdVN0YXRlSWRsZSwgdGhlbiB0aGUgQVANCj4gPiA+ICsgaGFzDQo+ ID4gZmluaXNoZWQgaXRzIHRhc2suDQo+ID4gPiAgICAvLyAgT25seSBCU1AgYW5kIGNvcnJlc3Bv bmRpbmcgQVAgYWNjZXNzIHRoaXMgdW5pdCBvZiBDUFUgRGF0YS4NCj4gPiA+IFRoaXMgbWVhbnMg dGhlIEFQIHdpbGwgbm90IG1vZGlmeSB0aGUNCj4gPiA+IC0gIC8vICB2YWx1ZSBvZiBzdGF0ZSBh ZnRlciBzZXR0aW5nIHRoZSBpdCB0byBDcHVTdGF0ZUZpbmlzaGVkLCBzbw0KPiA+ID4gQlNQIGNh biBzYWZlbHkNCj4gPiBtYWtlIHVzZSBvZiBpdHMgdmFsdWUuDQo+ID4gPiArICAvLyAgdmFsdWUg b2Ygc3RhdGUgYWZ0ZXIgc2V0dGluZyB0aGUgaXQgdG8gQ3B1U3RhdGVJZGxlLCBzbyBCU1ANCj4g PiA+ICsgY2FuIHNhZmVseQ0KPiA+IG1ha2UgdXNlIG9mIGl0cyB2YWx1ZS4NCj4gPiA+ICAgIC8v DQo+ID4gPiAgICAvLw0KPiA+ID4gICAgLy8gSWYgdGhlIEFQIGZpbmlzaGVzIGZvciBTdGFydHVw VGhpc0FQKCksIHJldHVybiBFRklfU1VDQ0VTUy4NCj4gPiA+ICAgIC8vDQo+ID4gPiAtICBpZiAo R2V0QXBTdGF0ZShDcHVEYXRhKSA9PSBDcHVTdGF0ZUZpbmlzaGVkKSB7DQo+ID4gPiArICBpZiAo R2V0QXBTdGF0ZShDcHVEYXRhKSA9PSBDcHVTdGF0ZUlkbGUpIHsNCj4gPiA+ICAgICAgaWYgKENw dURhdGEtPkZpbmlzaGVkICE9IE5VTEwpIHsNCj4gPiA+ICAgICAgICAqKENwdURhdGEtPkZpbmlz aGVkKSA9IFRSVUU7DQo+ID4gPiAgICAgIH0NCj4gPiA+IC0gICAgU2V0QXBTdGF0ZSAoQ3B1RGF0 YSwgQ3B1U3RhdGVJZGxlKTsNCj4gPiA+ICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4g ICAgfSBlbHNlIHsNCj4gPiA+ICAgICAgLy8NCj4gPiA+IEBAIC0xNDIwLDE0ICsxNDE5LDEzIEBA IENoZWNrQWxsQVBzICgNCj4gPiA+DQo+ID4gPiAgICAgIENwdURhdGEgPSAmQ3B1TXBEYXRhLT5D cHVEYXRhW1Byb2Nlc3Nvck51bWJlcl07DQo+ID4gPiAgICAgIC8vDQo+ID4gPiAtICAgIC8vIENo ZWNrIHRoZSBDUFUgc3RhdGUgb2YgQVAuIElmIGl0IGlzIENwdVN0YXRlRmluaXNoZWQsIHRoZW4g dGhlIEFQIGhhcw0KPiA+IGZpbmlzaGVkIGl0cyB0YXNrLg0KPiA+ID4gKyAgICAvLyBDaGVjayB0 aGUgQ1BVIHN0YXRlIG9mIEFQLiBJZiBpdCBpcyBDcHVTdGF0ZUlkbGUsIHRoZW4gdGhlDQo+ID4g PiArIEFQIGhhcw0KPiA+IGZpbmlzaGVkIGl0cyB0YXNrLg0KPiA+ID4gICAgICAvLyBPbmx5IEJT UCBhbmQgY29ycmVzcG9uZGluZyBBUCBhY2Nlc3MgdGhpcyB1bml0IG9mIENQVSBEYXRhLg0KPiA+ ID4gVGhpcw0KPiA+IG1lYW5zIHRoZSBBUCB3aWxsIG5vdCBtb2RpZnkgdGhlDQo+ID4gPiAtICAg IC8vIHZhbHVlIG9mIHN0YXRlIGFmdGVyIHNldHRpbmcgdGhlIGl0IHRvIENwdVN0YXRlRmluaXNo ZWQsIHNvIEJTUCBjYW4NCj4gPiBzYWZlbHkgbWFrZSB1c2Ugb2YgaXRzIHZhbHVlLg0KPiA+ID4g KyAgICAvLyB2YWx1ZSBvZiBzdGF0ZSBhZnRlciBzZXR0aW5nIHRoZSBpdCB0byBDcHVTdGF0ZUlk bGUsIHNvIEJTUA0KPiA+ID4gKyBjYW4gc2FmZWx5DQo+ID4gbWFrZSB1c2Ugb2YgaXRzIHZhbHVl Lg0KPiA+ID4gICAgICAvLw0KPiA+ID4gLSAgICBpZiAoR2V0QXBTdGF0ZShDcHVEYXRhKSA9PSBD cHVTdGF0ZUZpbmlzaGVkKSB7DQo+ID4gPiArICAgIGlmIChHZXRBcFN0YXRlKENwdURhdGEpID09 IENwdVN0YXRlSWRsZSkgew0KPiA+ID4gICAgICAgIENwdU1wRGF0YS0+UnVubmluZ0NvdW50ICsr Ow0KPiA+ID4gICAgICAgIENwdU1wRGF0YS0+Q3B1RGF0YVtQcm9jZXNzb3JOdW1iZXJdLldhaXRp bmcgPSBGQUxTRTsNCj4gPiA+IC0gICAgICBTZXRBcFN0YXRlKENwdURhdGEsIENwdVN0YXRlSWRs ZSk7DQo+ID4gPg0KPiA+ID4gICAgICAgIC8vDQo+ID4gPiAgICAgICAgLy8gSWYgaW4gU2luZ2xl IFRocmVhZCBtb2RlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIG5leHQgd2FpdGluZw0KPiA+ID4gQVAg Zm9yDQo+ID4gZXhlY3V0aW9uLg0KPiA+DQo+ID4gVGhpcyBwYXJ0IG9mIHRoZSBjb2RlLCBhZnRl ciB0aGUgcGF0Y2gsIGRvZXMgbm90IHNlZW0gaWRlbXBvdGVudDsgaW4NCj4gPiBvdGhlciB3b3Jk cywgaWYgdGhlIEJTUCBjYWxscyBDaGVja0FsbEFQcygpIG11bHRpcGxlIHRpbWVzLCB0aGVuDQo+ ID4gUnVubmluZ0NvdW50IHdpbGwgYmUgaW5jcmVhc2VkIGV2ZXJ5IHRpbWUuIEJlZm9yZSB0aGUg cGF0Y2gsIHRoaXMNCj4gPiB3YXNuJ3QgdGhlIGNhc2UsIGJlY2F1c2UgYWZ0ZXIgdGhlIEZpbmlz aGVkIC0+IElkbGUgdHJhbnNpdGlvbiwgdGhlIGluY3JlbWVudA0KPiB3b3VsZG4ndCBiZSByZWFj aGVkIGFnYWluLg0KPiA+DQo+ID4gSG1tbSwgd2FpdCwgSSdtIHdyb25nOiB3ZSBzZXQgdGhlIFdh aXRpbmcgZmllbGQgdG8gRkFMU0UgYXMgd2VsbCwgc28NCj4gPiBhdCB0aGUgbmV4dCBjYWxsIHRv IENoZWNrQWxsQVBzKCksIHdlJ2xsIHRha2UgdGhlIGVhcmx5ICJjb250aW51ZSIgYnJhbmNoLg0K PiA+IExvb2tzIE9LIGFmdGVyIGFsbC4NCj4gPg0KPiANCj4gWWVzLCB3ZSBoYXZlIHR3byBmbGFn cyBoZXJlLiAgV2FpdGluZyBmbGFncyBtZWFucyB0aGUgQVAgd2lsbCBkbyB0aGUgdGFzay4gU3Rh dGUNCj4gZmxhZyBtZWFucyB3aGV0aGVyIHRoZSB0YXNrIGhhcyBmaW5pc2hlZC4NCj4gQm90aCBm bGFncyB3aWxsIGJlIGNoZWNrZWQgYW5kIHVwZGF0ZWQuDQo+IA0KPiA+IEknbGwgZm9sbG93IHVw IHdpdGggdGVzdCByZXN1bHRzLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IExhc3psbw0KPiA+DQo+ ID4gPiBAQCAtMTkyMyw3ICsxOTIxLDcgQEAgU3dpdGNoQlNQV29ya2VyICgNCj4gPiA+ICAgIC8v DQo+ID4gPiAgICAvLyBXYWl0IGZvciBvbGQgQlNQIGZpbmlzaGVkIEFQIHRhc2sNCj4gPiA+ICAg IC8vDQo+ID4gPiAtICB3aGlsZSAoR2V0QXBTdGF0ZSAoJkNwdU1wRGF0YS0+Q3B1RGF0YVtDYWxs ZXJOdW1iZXJdKSAhPQ0KPiA+ID4gQ3B1U3RhdGVGaW5pc2hlZCkgew0KPiA+ID4gKyAgd2hpbGUg KEdldEFwU3RhdGUgKCZDcHVNcERhdGEtPkNwdURhdGFbQ2FsbGVyTnVtYmVyXSkgIT0NCj4gPiA+ ICsgQ3B1U3RhdGVJZGxlKSB7DQo+ID4gPiAgICAgIENwdVBhdXNlICgpOw0KPiA+ID4gICAgfQ0K PiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXBJbml0TGliL01w TGliLmgNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+ID4g PiBpbmRleCA5ZDBiODY2ZDA5Li45NjJiY2U2ODVkIDEwMDY0NA0KPiA+ID4gLS0tIGEvVWVmaUNw dVBrZy9MaWJyYXJ5L01wSW5pdExpYi9NcExpYi5oDQo+ID4gPiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvTXBJbml0TGliL01wTGliLmgNCj4gPiA+IEBAIC04NSw3ICs4NSw2IEBAIHR5cGVkZWYg ZW51bSB7DQo+ID4gPiAgICBDcHVTdGF0ZUlkbGUsDQo+ID4gPiAgICBDcHVTdGF0ZVJlYWR5LA0K PiA+ID4gICAgQ3B1U3RhdGVCdXN5LA0KPiA+ID4gLSAgQ3B1U3RhdGVGaW5pc2hlZCwNCj4gPiA+ ICAgIENwdVN0YXRlRGlzYWJsZWQNCj4gPiA+ICB9IENQVV9TVEFURTsNCj4gPiA+DQo+ID4gPg0K DQo=