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.web09.3079.1571810297962710366 for ; Tue, 22 Oct 2019 22:58:18 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Oct 2019 22:58:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,219,1569308400"; d="scan'208";a="228003474" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 22 Oct 2019 22:58:17 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 22 Oct 2019 22:58:17 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 22 Oct 2019 22:58:17 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.166]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.96]) with mapi id 14.03.0439.000; Wed, 23 Oct 2019 13:58:15 +0800 From: "Ni, Ray" To: "Wang, Jian J" , "Wang, Sunny (HPS SW)" , "Gao, Zhichao" , "devel@edk2.groups.io" , "lersek@redhat.com" , "Wu, Hao A" CC: "Li, Walon" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/BdsDxe: Make PlatformRecovery work regardless of OsIndications Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/BdsDxe: Make PlatformRecovery work regardless of OsIndications Thread-Index: AQHVg/UYLPwJAJZnf0yublGCVrQPYKdcYfSAgAAJaQCAABLQAIAJrIcAgAGa4gA= Date: Wed, 23 Oct 2019 05:58:14 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C32D9C2@SHSMSX104.ccr.corp.intel.com> References: <20191016074007.17572-1-sunnywang@hpe.com> <573f0624-50c5-1f12-ed4a-a4747339c839@redhat.com> <3CE959C139B4C44DBEA1810E3AA6F9000B857321@SHSMSX101.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmU5YTMwZTgtNGRiNi00MmJjLTk0YTEtOTkyMTI4Mzg1YTEwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicUpIcG9JKzhiXC9xWTMwc3ZMQnF0djYxWnVXRkdDb2J5R1o4S25OWm9xeDFmZkJJVTdIWWJ0TzRDVjd5Q3VUdzQifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 V2l0aCBaaGljaGFvJ3MgY29tbWVudHMgYWRkcmVzc2VkLCBSZXZpZXdlZC1ieTogUmF5IE5pIDxy YXkubmlAaW50ZWwuY29tPg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDIyLCAyMDE5IDk6MjcgUE0NCj4gVG86IFdhbmcsIFN1bm55IChIUFMgU1cpIDxzdW5u eXdhbmdAaHBlLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW87DQo+IGxlcnNla0ByZWRoYXQuY29tOyBXdSwgSGFvIEEgPGhhby5h Lnd1QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IENjOiBMaSwgV2Fs b24gPHdhbG9uLmxpQGhwZS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI XSBNZGVNb2R1bGVQa2cvQmRzRHhlOiBNYWtlIFBsYXRmb3JtUmVjb3Zlcnkgd29yayByZWdhcmRs ZXNzIG9mIE9zSW5kaWNhdGlvbnMNCj4gDQo+IEknbSBub3QgZmFtaWxpYXIgdGhpcyBwYXJ0IG9m IGNvZGUuIFJheSBpcyBleHBlcnQuDQo+IA0KPiBBY2tlZC1ieTogSmlhbiBKIFdhbmcgPGppYW4u ai53YW5nQGludGVsLmNvbT4NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiBGcm9tOiBXYW5nLCBTdW5ueSAoSFBTIFNXKSA8c3Vubnl3YW5nQGhwZS5jb20+DQo+ID4gU2Vu dDogV2VkbmVzZGF5LCBPY3RvYmVyIDE2LCAyMDE5IDU6NDMgUE0NCj4gPiBUbzogR2FvLCBaaGlj aGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPiBs ZXJzZWtAcmVkaGF0LmNvbTsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBX dSwgSGFvIEENCj4gPiA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiA+IENjOiBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgTGksIFdhbG9uIDx3YWxvbi5saUBocGUuY29tPjsgV2FuZywgU3VubnkN Cj4gPiAoSFBTIFNXKSA8c3Vubnl3YW5nQGhwZS5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9CZHNEeGU6IE1ha2UNCj4gPiBQbGF0Zm9ybVJl Y292ZXJ5IHdvcmsgcmVnYXJkbGVzcyBvZiBPc0luZGljYXRpb25zDQo+ID4NCj4gPiBUaGFua3Mg Zm9yIGNhdGNoaW5nIHRoaXMsIExhc3psby4NCj4gPiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9u IGFuZCBpbmZvcm1hdGlvbiwgWmhpY2hhby4gTmV4dCB0aW1lLCBJIHdpbGwgZGVmaW5pdGVseQ0K PiA+IHRha2UgY2FyZSBvZiB0aGlzIGluIHRoZSBmaXJzdCBwbGFjZS4NCj4gPg0KPiA+IEhpIEpp YW4gYW5kIEhhbywNCj4gPiBJIGZvcmdvdCB0byBhZGQgYm90aCBvZiB5b3UgaW4gQ2MuIFNvcnJ5 IGFib3V0IHRoYXQuIEkgd2lsbCBzZW5kIHlvdSBndXlzIGEgbmV3DQo+ID4gcGF0Y2ggd2l0aCB0 aGUgdXBkYXRlZCBjb21taXQgbWVzc2FnZSBiZWxvdy4gSWYgeW91IGd1eXMgbmVlZCBtZSB0byBy ZXNlbmQNCj4gPiBhbiBlbWFpbCB0byBlZGsyLWRldmVsIGZvciB0aGUgbmV3IHBhdGNoLCBmZWVs IGZyZWUgdG8gbGV0IG1lIGtub3cuDQo+ID4NCj4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+IE1kZU1vZHVsZVBrZy9CZHNEeGU6IEZpeCBQbGF0 Zm9ybVJlY292ZXJ5IGlzc3VlDQo+ID4NCj4gPiBGb3Igbm93LCBQbGF0Zm9ybVJlY292ZXJ5IGRv ZXNuJ3Qgd29yayBpZiBPc0luZGljYXRpb25zIHZhcmlhYmxlDQo+ID4gZG9lc24ndCBleGlzdCwg d2hpY2ggaXMgd3JvbmcuDQo+ID4gQWNjb3JkaW5nIHRvIHRoZSBVRUZJIHNwZWNpZmljYXRpb24g c2VjdGlvbiAzLjQuMSBhbmQgMy40LjIsIGlmDQo+ID4gcHJvY2Vzc2luZyBvZiBCb290T3JkZXIg ZG9lcyBub3QgcmVzdWx0IGluIHN1Y2Nlc3MsIHRoZSBPc1JlY292ZXJ5DQo+ID4gYW5kIFBsYXRm b3JtUmVjb3Zlcnkgb3B0aW9ucyBzaG91bGQgc3RpbGwgYmUgcHJvY2Vzc2VkIHJlZ2FyZGxlc3Mg b2YNCj4gPiB0aGUgZXhpc3RlbmNlIG9mIHRoZSBPc0luZGljYXRpb25zIHZhcmlhYmxlLg0KPiA+ IFRoZXJlZm9yZSwgdXBkYXRlIHRoZSBjb2RlIHRvIGNoZWNrIFBjZFBsYXRmb3JtUmVjb3ZlcnlT dXBwb3J0IGluc3RlYWQNCj4gPiBvZiB0aGUgdmFsdWUgb2YgT3NJbmRpY2F0aW9ucyB2YXJpYWJs ZSAoUGxhdGZvcm1SZWNvdmVyeSkgdG8gZml4DQo+ID4gdGhpcyBpc3N1ZS4NCj4gPg0KPiA+IENj OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+IENjOiBIYW8gV3UgPGhh by5hLnd1QGludGVsLmNvbT4NCj4gPiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ IENjOiBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+IENjOiBXYWxvbiBM aSA8d2Fsb24ubGlAaHBlLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTdW5ueSBXYW5nIDxzdW5u eXdhbmdAaHBlLmNvbT4NCj4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IFN1bm55IFdhbmcNCj4gPg0KPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogR2FvLCBaaGljaGFvIFttYWls dG86emhpY2hhby5nYW9AaW50ZWwuY29tXQ0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAx NiwgMjAxOSA0OjM2IFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBsZXJzZWtAcmVk aGF0LmNvbTsgV2FuZywgU3VubnkgKEhQUyBTVykNCj4gPiA8c3Vubnl3YW5nQGhwZS5jb20+DQo+ ID4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBMaSwgV2Fsb24gPHdhbG9uLmxpQGhw ZS5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBr Zy9CZHNEeGU6IE1ha2UNCj4gPiBQbGF0Zm9ybVJlY292ZXJ5IHdvcmsgcmVnYXJkbGVzcyBvZiBP c0luZGljYXRpb25zDQo+ID4gSW1wb3J0YW5jZTogSGlnaA0KPiA+DQo+ID4gTWRlTW9kdWxlUGtn L0Jkc0R4ZTogRG8gUGxhdGZvcm1SZWNvdmVyeSByZWdhcmRsZXNzIG9mIE9zSW5kaWNhdGlvbnMN Cj4gPg0KPiA+IEFjY29yZGluZyB0byB0aGUgVUVGSSBzcGVjaWZpY2F0aW9uIHNlY3Rpb24gMy40 LjEgYW5kIDMuNC4yLCB0aGUgT3NSZWNvdmVyeSBhbmQNCj4gPiBQbGF0Zm9ybVJlY292ZXJ5IG9w dGlvbnMgc2hvdWxkIHN0aWxsIGJlIHByb2Nlc3NlZCByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBv Zg0KPiA+IE9zSW5kaWNhdGlvbnMgdmFyaWFibGUgaWYgcHJvY2Vzc2luZyBvZiBCb290T3JkZXIg ZG9lcyBub3QgcmVzdWx0IGluIHN1Y2Nlc3MuDQo+ID4gVGhlcmVmb3JlLCB1cGRhdGUgdGhlIGNv ZGUgdG8gY2hlY2sgUGNkUGxhdGZvcm1SZWNvdmVyeVN1cHBvcnQgaW5zdGVhZCBvZg0KPiA+IHRo ZSB2YWx1ZSBvZiBPc0luZGljYXRpb25zIHZhcmlhYmxlIChQbGF0Zm9ybVJlY292ZXJ5KS4NCj4g Pg0KPiA+IEkgc3VnZ2VzdCB0byB1c2UgdGhlIGFib3ZlIHRpdGxlIGJlY2F1c2Ugb2YgdGhlIGxl bmd0aCBsaW1pdGF0aW9uLiBBbmQgSSBhbHNvIGJyZWFrDQo+ID4gdGhlIGNvbW1pdCBtZXNzYWdl IGludG8gc2VydmFsIGxpbmVzLg0KPiA+IEhlcmUgaXMgdGhlIGRldmVsb3BtZW50IHByb2Nlc3Mg Zm9yIGVkayBvcGVuIHNvdXJjZSBsaW5rOg0KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2Nv cmUvdGlhbm9jb3JlLmdpdGh1Yi5pby93aWtpL0VESy1JSS1EZXZlbG9wbWVudC0NCj4gPiBQcm9j ZXNzLiBUaGF0IHdvdWxkIGhlbHAgeW91IHRvIHNlbmQgYSBwYXRjaCBpbiBhIGJhc2ljIGNvcnJl Y3QgZm9ybWF0Lg0KPiA+IFdpdGggdGhlIGNvbW1pdCBtYXNzYWdlIGlzc3VlIGFkZHJlc3NlZCwg UmV2aWV3ZWQtYnk6IFpoaWNoYW8gR2FvDQo+ID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4g Pg0KPiA+IFRoYW5rcywNCj4gPiBaaGljaGFvDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVs QGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYgT2YNCj4gPiA+IExhc3psbyBFcnNlaw0KPiA+ID4g U2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDE2LCAyMDE5IDQ6MDIgUE0NCj4gPiA+IFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgc3Vubnl3YW5nQGhwZS5jb20NCj4gPiA+IENjOiBOaSwgUmF5IDxy YXkubmlAaW50ZWwuY29tPjsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+Ow0K PiA+ID4gV2Fsb24gTGkgPHdhbG9uLmxpQGhwZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW2Vk azItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL0Jkc0R4ZTogTWFrZQ0KPiA+ID4gUGxhdGZv cm1SZWNvdmVyeSB3b3JrIHJlZ2FyZGxlc3Mgb2YgT3NJbmRpY2F0aW9ucw0KPiA+ID4NCj4gPiA+ IE9uIDEwLzE2LzE5IDA5OjQwLCBXYW5nLCBTdW5ueSAoSFBTIFNXKSB3cm90ZToNCj4gPiA+ID4g QWNjb3JkaW5nIHRvIHRoZSBVRUZJIHNwZWNpZmljYXRpb24gc2VjdGlvbiAzLjQuMSBhbmQgMy40 LjIsIHRoZQ0KPiA+ID4gPiBPc1JlY292ZXJ5DQo+ID4gPiBhbmQgUGxhdGZvcm1SZWNvdmVyeSBv cHRpb25zIHNob3VsZCBzdGlsbCBiZSBwcm9jZXNzZWQgcmVnYXJkbGVzcyBvZg0KPiA+ID4gdGhl IHZhbHVlIG9mIE9zSW5kaWNhdGlvbnMgdmFyaWFibGUgaWYgcHJvY2Vzc2luZyBvZiBCb290T3Jk ZXIgZG9lcw0KPiA+ID4gbm90IHJlc3VsdCBpbiBzdWNjZXNzLiBUaGVyZWZvcmUsIHVwZGF0ZSB0 aGUgY29kZSB0byBjaGVjaw0KPiA+ID4gUGNkUGxhdGZvcm1SZWNvdmVyeVN1cHBvcnQgaW5zdGVh ZCBvZiB0aGUgdmFsdWUgb2YgT3NJbmRpY2F0aW9ucyB2YXJpYWJsZQ0KPiA+IChQbGF0Zm9ybVJl Y292ZXJ5KS4NCj4gPiA+DQo+ID4gPiBQbGVhc2Ugd3JhcCB0aGUgY29tbWl0IG1lc3NhZ2UgdG8g NzQgY2hhcmFjdGVycy4NCj4gPiA+DQo+ID4gPiAoQ2FuIGJlIGRvbmUgb24gcHVzaCwgaWYgdGhl IG1haW50YWluZXIgYWNjZXB0cyB0aGUgcGF0Y2guKQ0KPiA+ID4NCj4gPiA+IFRoYW5rcw0KPiA+ ID4gTGFzemxvDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBDYzogUmF5IE5pIDxyYXkubmlAaW50 ZWwuY29tPg0KPiA+ID4gPiBDYzogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4N Cj4gPiA+ID4gQ2M6IFdhbG9uIExpIDx3YWxvbi5saUBocGUuY29tPg0KPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBTdW5ueSBXYW5nIDxzdW5ueXdhbmdAaHBlLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4g PiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jIHwgNCArKy0tDQo+ ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K PiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNE eGUvQmRzRW50cnkuYw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNF bnRyeS5jDQo+ID4gPiA+IGluZGV4IGQ2ZWMzMTExOGMuLmQzODdkYmU3YWMgMTAwNjQ0DQo+ID4g PiA+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQmRzRHhlL0Jkc0VudHJ5LmMNCj4gPiA+ ID4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRW50cnkuYw0KPiA+ID4g PiBAQCAtNiw3ICs2LDcgQEANCj4gPiA+ID4gICAgdG8gZW50ZXIgQkRTIHBoYXNlLg0KPiA+ID4g Pg0KPiA+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDA0IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMNCj4gPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPiAtKEMpIENvcHlyaWdo dCAyMDE2IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ ID4gPiArKEMpIENvcHlyaWdodCAyMDE2LTIwMTkgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2Ug RGV2ZWxvcG1lbnQNCj4gPiA+ID4gK0xQPEJSPg0KPiA+ID4gPiAgKEMpIENvcHlyaWdodCAyMDE1 IEhld2xldHQtUGFja2FyZCBEZXZlbG9wbWVudCBDb21wYW55LCBMLlAuPEJSPg0KPiA+ID4gPiAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4NCj4g PiA+ID4gQEAgLTEwNjksNyArMTA2OSw3IEBAIEJkc0VudHJ5ICgNCj4gPiA+ID4gICAgfQ0KPiA+ ID4gPg0KPiA+ID4gPiAgICBpZiAoIUJvb3RTdWNjZXNzKSB7DQo+ID4gPiA+IC0gICAgaWYgKFBs YXRmb3JtUmVjb3ZlcnkpIHsNCj4gPiA+ID4gKyAgICBpZiAoUGNkR2V0Qm9vbCAoUGNkUGxhdGZv cm1SZWNvdmVyeVN1cHBvcnQpKSB7DQo+ID4gPiA+ICAgICAgICBMb2FkT3B0aW9ucyA9IEVmaUJv b3RNYW5hZ2VyR2V0TG9hZE9wdGlvbnMgKCZMb2FkT3B0aW9uQ291bnQsDQo+ID4gPiBMb2FkT3B0 aW9uVHlwZVBsYXRmb3JtUmVjb3ZlcnkpOw0KPiA+ID4gPiAgICAgICAgUHJvY2Vzc0xvYWRPcHRp b25zIChMb2FkT3B0aW9ucywgTG9hZE9wdGlvbkNvdW50KTsNCj4gPiA+ID4gICAgICAgIEVmaUJv b3RNYW5hZ2VyRnJlZUxvYWRPcHRpb25zIChMb2FkT3B0aW9ucywgTG9hZE9wdGlvbkNvdW50KTsN Cj4gPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gDQo+ID4NCg0K