From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.31; helo=mga06.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 B53B821184AA6 for ; Fri, 2 Nov 2018 20:19:30 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2018 20:19:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,458,1534834800"; d="scan'208";a="104906208" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 02 Nov 2018 20:19:29 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 2 Nov 2018 20:19:29 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 2 Nov 2018 20:19:28 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.102]) with mapi id 14.03.0415.000; Sat, 3 Nov 2018 11:19:26 +0800 From: "Wu, Hao A" To: Marcin Wojtas CC: edk2-devel-01 , Tomasz Michalec , "nadavh@marvell.com" , "Gao, Liming" , "Kinney, Michael D" Thread-Topic: [edk2] [PATCH v2 3/4] MdeModulePkg/SdMmcPciHcDxe: Add SwitchClockFreqPost to SdMmcOverride Thread-Index: AQHUXK7wnx0jZ5DBt0WE8TcV9dSmsKU3aLsAgAR3sACAAa3lsA== Date: Sat, 3 Nov 2018 03:19:26 +0000 Message-ID: References: <1538745911-22484-1-git-send-email-mw@semihalf.com> <1538745911-22484-4-git-send-email-mw@semihalf.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 3/4] MdeModulePkg/SdMmcPciHcDxe: Add SwitchClockFreqPost to SdMmcOverride 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: Sat, 03 Nov 2018 03:19:30 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJjaW4gV29qdGFzIFttYWls dG86bXdAc2VtaWhhbGYuY29tXQ0KPiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDAyLCAyMDE4IDU6 MzkgUE0NCj4gVG86IFd1LCBIYW8gQQ0KPiBDYzogZWRrMi1kZXZlbC0wMTsgVG9tYXN6IE1pY2hh bGVjOyBuYWRhdmhAbWFydmVsbC5jb207IEdhbywgTGltaW5nOw0KPiBLaW5uZXksIE1pY2hhZWwg RA0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2MiAzLzRdIE1kZU1vZHVsZVBrZy9TZE1t Y1BjaUhjRHhlOiBBZGQNCj4gU3dpdGNoQ2xvY2tGcmVxUG9zdCB0byBTZE1tY092ZXJyaWRlDQo+ IA0KPiBIaSBIYW8sDQo+IA0KPiBjencuLCAxIGxpcyAyMDE4IG8gMDg6MDYgV3UsIEhhbyBBIDxo YW8uYS53dUBpbnRlbC5jb20+IG5hcGlzYcWCKGEpOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwt Ym91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZg0KPiA+ID4gTWFyY2luIFdvanRhcw0K PiA+ID4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDA1LCAyMDE4IDk6MjUgUE0NCj4gPiA+IFRvOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gQ2M6IFRpYW4sIEZlbmc7IHRtQHNlbWloYWxm LmNvbTsgV3UsIEhhbyBBOyBuYWRhdmhAbWFydmVsbC5jb207IEdhbywNCj4gPiA+IExpbWluZzsg S2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+IFN1YmplY3Q6IFtlZGsyXSBbUEFUQ0ggdjIgMy80XSBN ZGVNb2R1bGVQa2cvU2RNbWNQY2lIY0R4ZTogQWRkDQo+ID4gPiBTd2l0Y2hDbG9ja0ZyZXFQb3N0 IHRvIFNkTW1jT3ZlcnJpZGUNCj4gPiA+DQo+ID4gPiBGcm9tOiBUb21hc3ogTWljaGFsZWMgPHRt QHNlbWloYWxmLmNvbT4NCj4gPiA+DQo+ID4gPiBTb21lIFNEIEhvc3QgQ29udHJvbGVycyBuZWVk IHRvIGRvIGFkZGl0aW9uYWwgb3BwZXJhdGlvbnMgYWZ0ZXIgY2xvY2sNCj4gPiA+IGZyZXF1ZW5j eSBzd2l0Y2guDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRjaCBhZGQgbmV3IGNhbGxiYWNrIHR5cGUg dG8gTm90aWZ5UGhhc2Ugb2YgdGhlIFNkTW1jT3ZlcnJpZGUNCj4gPiA+IHByb3RvY29sLiBJdCBp cyBjYWxsZWQgYWZ0ZXIgRW1tY1N3aXRjaENsb2NrRnJlcSBhbmQgU2RNbWNIY0Nsb2NrU3VwcGx5 Lg0KPiA+DQo+ID4gSGkgTWFyY2luLA0KPiA+DQo+ID4gSnVzdCBjdXJpb3VzLCBJIGhhZCBhIHF1 aWNrIGdsYW5jZSBhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlDQo+ID4gWGVub25Td2l0Y2hD bG9ja0ZyZXFQb3N0KCkgaW4geW91ciBwbGF0Zm9ybSBwYXJ0IGNoYW5nZXMuIEFyZSB0aG9zZQ0K PiBvcGVyYXRpb25zDQo+ID4gd2l0aGluIHRoZSBmdW5jdGlvbiBtYW5kYXRvcnkgZHVyaW5nIHRo ZSBIQyBpbml0aWFsaXphdGlvbj8gQXJlIHRoZXkgbWFpbmx5IGZvcg0KPiA+IHBlcmZvcm1hbmNl IG9yIHN0YWJpbGl0eSBjb25zaWRlcmF0aW9uPw0KPiANCj4gQXMgZm9yIE1hcnZlbGx0IGhlIFhl bm9uIGNvbnRyb2xsZXIgaXMgcHJldHR5IGNvbXBsaWNhdGVkIElQLCB3aGljaA0KPiBjb25zaXN0 cyBvZiBzdGFuZGFyZCBTZC9NbWMgcGFydCBhbmQgdGhlIGRlZGljYXRlZCBQSFksIHRoYXQncw0K PiByZXNwb25zaWJsZSBmb3Igc2lnbmFsIGludGVncml0eSBmb3IgYWxsIGJ1cyBtb2Rlcy4gSXQg cmVxdWlyZXMNCj4gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLCBkZXBlbmRpbmcgb24gdGhlIG1v ZGUuDQoNCkdvdCBpdC4NCg0KPiANCj4gPg0KPiA+IEkgYW0gd29uZGVyaW5nIGlmIHRoaXMga2lu ZCBvZiBjdXN0b21pemF0aW9uIGlzIGNvbW1vbiBhbW9uZyB0aGUgU0QgJg0KPiBlTU1DIGRldmlj ZXMuDQo+IA0KPiBXZWxsLCBpbiBMaW51eCB0aGlzIGNsb2NrIHR1bmluZyBhZnRlciBzd2l0Y2hp bmcgdG8gY2VydGFpbiBidXMgbW9kZS4NCj4gVGhpcyBkcml2ZXIgc2ltcGx5IGRvZXMgaXQgaW4g J3NldF9pb3MnIGNhbGxiYWNrLCB3aG9zZSBjdXN0b20NCj4gaW1wbGVtZW50YXRpb24gKHBsYXRm b3JtLXNwZWNpZmljIGNvZGUgc3Vycm91bmRpbmcgZ2VuZXJpYw0KPiBzZGhjaV9zZXRfaW9zIGNh bGwpIGlzIF92ZXJ5XyBjb21tb24gYW1vbmcgYWxsIGRyaXZlcnMvbW1jL2hvc3QNCj4gZHJpdmVy cy4NCj4gDQo+IERvIHlvdSBoYXZlIGFueSBvYmplY3Rpb25zIHRvIHRoZSBwYXRjaCBpdHNlbGYs IGdpdmVuIGFib3ZlIGV4cGxhbmF0aW9uPw0KDQpObywgdGhhbmtzIGZvciB0aGUgZGV0YWlsZWQg ZXhwbGFuYXRpb24uDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQo+IA0KPiBCZXN0IHJlZ2Fy ZHMsDQo+IE1hcmNpbg0KPiANCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPiBIYW8gV3UNCj4g Pg0KPiA+ID4NCj4gPiA+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9u IEFncmVlbWVudCAxLjENCj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmNpbiBXb2p0YXMgPG13QHNl bWloYWxmLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIE1kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3Rv Y29sL1NkTW1jT3ZlcnJpZGUuaCAgIHwgIDEgKw0KPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNp L1NkTW1jUGNpSGNEeGUvRW1tY0RldmljZS5jIHwgNjANCj4gPiA+ICsrKysrKysrKysrKysrKysr KysrDQo+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZERldmljZS5j ICAgfCAxOCArKysrKysNCj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKykN Cj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wv U2RNbWNPdmVycmlkZS5oDQo+ID4gPiBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Nk TW1jT3ZlcnJpZGUuaA0KPiA+ID4gaW5kZXggMjVkYjk4YS4uZDlkYWFkYSAxMDA2NDQNCj4gPiA+ IC0tLSBhL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL1NkTW1jT3ZlcnJpZGUuaA0KPiA+ ID4gKysrIGIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RNbWNPdmVycmlkZS5oDQo+ ID4gPiBAQCAtMzMsNiArMzMsNyBAQCB0eXBlZGVmIGVudW0gew0KPiA+ID4gICAgRWRraWlTZE1t Y0luaXRIb3N0UHJlLA0KPiA+ID4gICAgRWRraWlTZE1tY0luaXRIb3N0UG9zdCwNCj4gPiA+ICAg IEVka2lpU2RNbWNVaHNTaWduYWxpbmcsDQo+ID4gPiArICBFZGtpaVNkTW1jU3dpdGNoQ2xvY2tG cmVxUG9zdCwNCj4gPiA+ICB9IEVES0lJX1NEX01NQ19QSEFTRV9UWVBFOw0KPiA+ID4NCj4gPiA+ ICAvKioNCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhj RHhlL0VtbWNEZXZpY2UuYw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhj RHhlL0VtbWNEZXZpY2UuYw0KPiA+ID4gaW5kZXggMDViZDRhMC4uN2U3NTI4MyAxMDA3NTUNCj4g PiA+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1tY0RldmljZS5j DQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL0VtbWNEZXZp Y2UuYw0KPiA+ID4gQEAgLTc5Niw2ICs3OTYsMjcgQEAgRW1tY1N3aXRjaFRvSGlnaFNwZWVkICgN Cj4gPiA+DQo+ID4gPiAgICBIc1RpbWluZyA9IDE7DQo+ID4gPiAgICBTdGF0dXMgPSBFbW1jU3dp dGNoQ2xvY2tGcmVxIChQY2lJbywgUGFzc1RocnUsIFNsb3QsIFJjYSwgSHNUaW1pbmcsDQo+ID4g PiBDbG9ja0ZyZXEpOw0KPiA+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4g KyAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgaWYgKG1P dmVycmlkZSAhPSBOVUxMICYmIG1PdmVycmlkZS0+Tm90aWZ5UGhhc2UgIT0gTlVMTCkgew0KPiA+ ID4gKyAgICBTdGF0dXMgPSBtT3ZlcnJpZGUtPk5vdGlmeVBoYXNlICgNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgIFByaXZhdGUtPkNvbnRyb2xsZXJIYW5kbGUsDQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICBTbG90LA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgRWRraWlTZE1tY1N3aXRjaENsb2NrRnJlcVBvc3QsDQo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAmVGltaW5nDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAp Ow0KPiA+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAgREVC VUcgKCgNCj4gPiA+ICsgICAgICAgIERFQlVHX0VSUk9SLA0KPiA+ID4gKyAgICAgICAgIiVhOiBT RC9NTUMgc3dpdGNoIGNsb2NrIGZyZXEgcG9zdCBub3RpZmllciBjYWxsYmFjayBmYWlsZWQgLSAl clxuIiwNCj4gPiA+ICsgICAgICAgIF9fRlVOQ1RJT05fXywNCj4gPiA+ICsgICAgICAgIFN0YXR1 cw0KPiA+ID4gKyAgICAgICAgKSk7DQo+ID4gPiArICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ ICsgICAgfQ0KPiA+ID4gKyAgfQ0KPiA+ID4NCj4gPiA+ICAgIHJldHVybiBTdGF0dXM7DQo+ID4g PiAgfQ0KPiA+ID4gQEAgLTkwNSw2ICs5MjYsMjQgQEAgRW1tY1N3aXRjaFRvSFMyMDAgKA0KPiA+ ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+ICsgIGlmICht T3ZlcnJpZGUgIT0gTlVMTCAmJiBtT3ZlcnJpZGUtPk5vdGlmeVBoYXNlICE9IE5VTEwpIHsNCj4g PiA+ICsgICAgU3RhdHVzID0gbU92ZXJyaWRlLT5Ob3RpZnlQaGFzZSAoDQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICBQcml2YXRlLT5Db250cm9sbGVySGFuZGxlLA0KPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgU2xvdCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIEVka2lpU2RNbWNTd2l0Y2hDbG9ja0ZyZXFQb3N0LA0KPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgJlRpbWluZw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg KTsNCj4gPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gKyAgICAgIERF QlVHICgoDQo+ID4gPiArICAgICAgICBERUJVR19FUlJPUiwNCj4gPiA+ICsgICAgICAgICIlYTog U0QvTU1DIHN3aXRjaCBjbG9jayBmcmVxIHBvc3Qgbm90aWZpZXIgY2FsbGJhY2sgZmFpbGVkIC0g JXJcbiIsDQo+ID4gPiArICAgICAgICBfX0ZVTkNUSU9OX18sDQo+ID4gPiArICAgICAgICBTdGF0 dXMNCj4gPiA+ICsgICAgICAgICkpOw0KPiA+ID4gKyAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4g PiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICAgIFN0YXR1cyA9IEVtbWNUdW5p bmdDbGtGb3JIczIwMCAoUGNpSW8sIFBhc3NUaHJ1LCBTbG90LCBCdXNXaWR0aCk7DQo+ID4gPg0K PiA+ID4gICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+IEBAIC05ODksNiArMTAyOCwyNyBAQCBFbW1j U3dpdGNoVG9IUzQwMCAoDQo+ID4gPg0KPiA+ID4gICAgSHNUaW1pbmcgPSAzOw0KPiA+ID4gICAg U3RhdHVzID0gRW1tY1N3aXRjaENsb2NrRnJlcSAoUGNpSW8sIFBhc3NUaHJ1LCBTbG90LCBSY2Es IEhzVGltaW5nLA0KPiA+ID4gQ2xvY2tGcmVxKTsNCj4gPiA+ICsgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ICsgIH0NCj4gPiA+ICsN Cj4gPiA+ICsgIGlmIChtT3ZlcnJpZGUgIT0gTlVMTCAmJiBtT3ZlcnJpZGUtPk5vdGlmeVBoYXNl ICE9IE5VTEwpIHsNCj4gPiA+ICsgICAgU3RhdHVzID0gbU92ZXJyaWRlLT5Ob3RpZnlQaGFzZSAo DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlLT5Db250cm9sbGVySGFu ZGxlLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgU2xvdCwNCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIEVka2lpU2RNbWNTd2l0Y2hDbG9ja0ZyZXFQb3N0LA0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlRpbWluZw0KPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsNCj4gPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K PiA+ID4gKyAgICAgIERFQlVHICgoDQo+ID4gPiArICAgICAgICBERUJVR19FUlJPUiwNCj4gPiA+ ICsgICAgICAgICIlYTogU0QvTU1DIHN3aXRjaCBjbG9jayBmcmVxIHBvc3Qgbm90aWZpZXIgY2Fs bGJhY2sgZmFpbGVkIC0gJXJcbiIsDQo+ID4gPiArICAgICAgICBfX0ZVTkNUSU9OX18sDQo+ID4g PiArICAgICAgICBTdGF0dXMNCj4gPiA+ICsgICAgICAgICkpOw0KPiA+ID4gKyAgICAgIHJldHVy biBTdGF0dXM7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+DQo+ID4gPiAgICByZXR1 cm4gU3RhdHVzOw0KPiA+ID4gIH0NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVz L1BjaS9TZE1tY1BjaUhjRHhlL1NkRGV2aWNlLmMNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvU2RNbWNQY2lIY0R4ZS9TZERldmljZS5jDQo+ID4gPiBpbmRleCA1NjQ1YTcxLi4wNTdhNGUy IDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9T ZERldmljZS5jDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhl L1NkRGV2aWNlLmMNCj4gPiA+IEBAIC04ODcsNiArODg3LDI0IEBAIFNkQ2FyZFNldEJ1c01vZGUg KA0KPiA+ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+ICsg IGlmIChtT3ZlcnJpZGUgIT0gTlVMTCAmJiBtT3ZlcnJpZGUtPk5vdGlmeVBoYXNlICE9IE5VTEwp IHsNCj4gPiA+ICsgICAgU3RhdHVzID0gbU92ZXJyaWRlLT5Ob3RpZnlQaGFzZSAoDQo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlLT5Db250cm9sbGVySGFuZGxlLA0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgU2xvdCwNCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIEVka2lpU2RNbWNTd2l0Y2hDbG9ja0ZyZXFQb3N0LA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgJlRpbWluZw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsNCj4gPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gKyAg ICAgIERFQlVHICgoDQo+ID4gPiArICAgICAgICBERUJVR19FUlJPUiwNCj4gPiA+ICsgICAgICAg ICIlYTogU0QvTU1DIHN3aXRjaCBjbG9jayBmcmVxIHBvc3Qgbm90aWZpZXIgY2FsbGJhY2sgZmFp bGVkIC0gJXJcbiIsDQo+ID4gPiArICAgICAgICBfX0ZVTkNUSU9OX18sDQo+ID4gPiArICAgICAg ICBTdGF0dXMNCj4gPiA+ICsgICAgICAgICkpOw0KPiA+ID4gKyAgICAgIHJldHVybiBTdGF0dXM7 DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICAgIGlmICgoQWNjZXNz TW9kZSA9PSAzKSB8fCAoKEFjY2Vzc01vZGUgPT0gMikgJiYgKENhcGFiaWxpdHktDQo+ID4gPiA+ VHVuaW5nU0RSNTAgIT0gMCkpKSB7DQo+ID4gPiAgICAgIFN0YXR1cyA9IFNkQ2FyZFR1bmluZ0Ns b2NrIChQY2lJbywgUGFzc1RocnUsIFNsb3QpOw0KPiA+ID4gICAgICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpKSB7DQo+ID4gPiAtLQ0KPiA+ID4gMi43LjQNCj4gPiA+DQo+ID4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gZWRrMi1kZXZlbCBt YWlsaW5nIGxpc3QNCj4gPiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiBodHRwczov L2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==