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.100; helo=mga07.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 9B76320356240 for ; Mon, 4 Dec 2017 23:15:44 -0800 (PST) Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Dec 2017 23:20:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,363,1508828400"; d="scan'208";a="147583" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 04 Dec 2017 23:20:14 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 4 Dec 2017 23:20:14 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Tue, 5 Dec 2017 15:20:12 +0800 From: "Zeng, Star" To: "Ni, Ruiyu" , Ard Biesheuvel , "edk2-devel@lists.01.org" CC: "Wu, Hao A" , "Kinney, Michael D" , "Tian, Feng" , "leif.lindholm@linaro.org" , "Zeng, Star" Thread-Topic: [edk2] [PATCH v2 1/2] MdeModulePkg: introduce SD/MMC override protocol Thread-Index: AQHTacOw4aXIawdLXUidB+SaSxsuxKMz1hqAgACIwMA= Date: Tue, 5 Dec 2017 07:20:12 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B9BFA78@shsmsx102.ccr.corp.intel.com> References: <20171130101132.18317-1-ard.biesheuvel@linaro.org> <20171130101132.18317-2-ard.biesheuvel@linaro.org> <1c1b4095-3d21-552e-c54e-251a34191740@Intel.com> In-Reply-To: <1c1b4095-3d21-552e-c54e-251a34191740@Intel.com> 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 1/2] MdeModulePkg: introduce SD/MMC override protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Dec 2017 07:15:44 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SWYgbWFraW5nIHRoaXMgcHJvdG9jb2wgYSBwbGF0Zm9ybSBsZXZlbCBzaW5nbGV0b24gaW5zdGFu Y2UsIGlzIGl0IHNvIGhhcmQgdG8gZGVmaW5lIHRoZSBpbnRlcmZhY2VzIGFuZCBwYXJhbWV0ZXJz IHNpbmNlIGRpZmZlcmVudCBjb250cm9sbGVycyBtYXkgbmVlZCBkaWZmZXJlbnQgaG9vayBwb2lu dHMgYW5kIHBhcmFtZXRlcnM/DQoNClRoYW5rcywNClN0YXINCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBOaSwgUnVpeXUgDQpTZW50OiBUdWVzZGF5LCBEZWNlbWJlciA1LCAyMDE3 IDM6MDkgUE0NClRvOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogImhhby5hLnd1QGludGVsLmNvbTsgS2lubmV5 LmQubWljaGFlbCJAaW50ZWwuY29tOyBUaWFuLCBGZW5nIDxmZW5nLnRpYW5AaW50ZWwuY29tPjsg WmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGxlaWYubGluZGhvbG1AbGluYXJvLm9y Zw0KU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMS8yXSBNZGVNb2R1bGVQa2c6IGludHJv ZHVjZSBTRC9NTUMgb3ZlcnJpZGUgcHJvdG9jb2wNCg0KT24gMTEvMzAvMjAxNyA2OjExIFBNLCBB cmQgQmllc2hldXZlbCB3cm90ZToNCj4gTWFueSBBUk0gYmFzZWQgU29DcyBoYXZlIGludGVncmF0 ZWQgU0RIQ0kgY29udHJvbGxlcnMsIGFuZCBvZnRlbiwgDQo+IHRoZXNlIGltcGxlbWVudGF0aW9u cyBkZXZpYXRlIGluIHN1YnRsZSB3YXlzIGZyb20gdGhlIHBlcnRpbmVudCANCj4gc3BlY2lmaWNh dGlvbnMuIE9uIHRoZSBvbmUgaGFuZCwgdGhlc2UgZGV2aWF0aW9ucyBhcmUgcXVpdGUgZWFzeSB0 byANCj4gd29yayBhcm91bmQsIGJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwgaGF2aW5nIGEgY29sbGVj dGlvbiBvZiBTb0MgDQo+IHNwZWNpZmljIHdvcmthcm91bmRzIGluIHRoZSBnZW5lcmljIGRyaXZl ciBzdGFjayBpcyB1bmRlc2lyYWJsZS4NCj4gDQo+IFNvIGxldCdzIGludHJvZHVjZSBhbiBvcHRp b25hbCBTRC9NTUMgb3ZlcnJpZGUgcHJvdG9jb2wgdGhhdCB3ZSBjYW4gDQo+IGludm9rZSBhdCB0 aGUgYXBwcm9wcmlhdGUgbW9tZW50cyBpbiB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uLg0KPiBU aGF0IHdheSwgdGhlIHdvcmthcm91bmQgaXRzZWxmIHJlbWFpbnMgcGxhdGZvcm0gc3BlY2lmaWMs IGJ1dCB3ZSBjYW4gDQo+IHN0aWxsIHVzZSB0aGUgZ2VuZXJpYyBkcml2ZXIgc3RhY2sgb24gc3Vj aCBwbGF0Zm9ybXMuDQo+IA0KPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1 dGlvbiBBZ3JlZW1lbnQgMS4xDQo+IFNpZ25lZC1vZmYtYnk6IEFyZCBCaWVzaGV1dmVsIDxhcmQu Ymllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiAtLS0NCj4gICBNZGVNb2R1bGVQa2cvSW5jbHVkZS9Q cm90b2NvbC9TZE1tY092ZXJyaWRlLmggfCAxMDMgKysrKysrKysrKysrKysrKysrKysNCj4gICBN ZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICAgICAgICAgICAgfCAgIDMgKw0KPiAg IDIgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9TZE1tY092ZXJyaWRlLmggDQo+IGIvTWRlTW9k dWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RNbWNPdmVycmlkZS5oDQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNWE1YzM5Mzg5NmY0DQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RNbWNPdmVycmlkZS5o DQo+IEBAIC0wLDAgKzEsMTAzIEBADQo+ICsvKiogQGZpbGUNCj4gKyAgUHJvdG9jb2wgdG8gZGVz Y3JpYmUgb3ZlcnJpZGVzIHJlcXVpcmVkIHRvIHN1cHBvcnQgbm9uLXN0YW5kYXJkIA0KPiArU0RI Q0kNCj4gKyAgaW1wbGVtZW50YXRpb25zDQo+ICsNCj4gKyAgQ29weXJpZ2h0IChjKSAyMDE3LCBM aW5hcm8sIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsNCj4gKyAgVGhpcyBwcm9n cmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRl IA0KPiArIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJT RCBMaWNlbnNlICB3aGljaCANCj4gKyBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRo ZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIA0KPiArIGZvdW5kIGF0ICBodHRwOi8v b3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQo+ICsNCj4gKyAgVEhFIFBS T0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIg DQo+ICsgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFO WSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiArDQo+ICsqKi8NCj4gKw0KPiAr I2lmbmRlZiBfX1NEX01NQ19PVkVSUklERV9IX18NCj4gKyNkZWZpbmUgX19TRF9NTUNfT1ZFUlJJ REVfSF9fDQo+ICsNCj4gKyNpbmNsdWRlIDxQcm90b2NvbC9TZE1tY1Bhc3NUaHJ1Lmg+DQo+ICsN Cj4gKyNkZWZpbmUgRURLSUlfU0RfTU1DX09WRVJSSURFX1BST1RPQ09MX0dVSUQgXA0KPiArICB7 IDB4ZWFmOWUzYzEsIDB4YzljZCwgMHg0NmRiLCB7IDB4YTUsIDB4ZTUsIDB4NWEsIDB4MTIsIDB4 NGMsIDB4ODMsIA0KPiArMHgyMywgMHgyMyB9IH0NCj4gKw0KPiArI2RlZmluZSBFREtJSV9TRF9N TUNfT1ZFUlJJREVfUFJPVE9DT0xfVkVSU0lPTiAgICAweDENCj4gKw0KPiArdHlwZWRlZiBzdHJ1 Y3QgX1NEX01NQ19PVkVSUklERSBTRF9NTUNfT1ZFUlJJREU7DQo+ICsNCj4gK3R5cGVkZWYgZW51 bSB7DQo+ICsgIFNEX01NQ19PVkVSUklERV9SRVNFVF9QUkVfSE9PSywNCj4gKyAgU0RfTU1DX09W RVJSSURFX1JFU0VUX1BPU1RfSE9PSywNCj4gKyAgU0RfTU1DX09WRVJSSURFX0lOSVRfSE9TVF9Q UkVfSE9PSywNCj4gKyAgU0RfTU1DX09WRVJSSURFX0lOSVRfSE9TVF9QT1NUX0hPT0ssDQo+ICt9 IFNEX01NQ19PVkVSUklERV9IT09LOw0KPiArDQo+ICsvKioNCj4gKw0KPiArICBPdmVycmlkZSBm dW5jdGlvbiBmb3IgU0RIQ0kgY2FwYWJpbGl0eSBiaXRzDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAg ICAgIFBhc3NUaHJ1ICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1NEX01NQ19QQVNTX1RIUlVfUFJPVE9D T0wgaW5zdGFuY2UuDQo+ICsgIEBwYXJhbVtpbl0gICAgICBDb250cm9sbGVySGFuZGxlICAgICAg VGhlIEVGSV9IQU5ETEUgb2YgdGhlIGNvbnRyb2xsZXIuDQo+ICsgIEBwYXJhbVtpbl0gICAgICBT bG90ICAgICAgICAgICAgICAgICAgVGhlIDAgYmFzZWQgc2xvdCBpbmRleC4NCj4gKyAgQHBhcmFt W2luLG91dF0gIFNkTW1jSGNTbG90Q2FwYWJpbGl0eSBUaGUgU0RIQ0kgY2FwYWJpbGl0eSBzdHJ1 Y3R1cmUuDQo+ICsNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG92ZXJy aWRlIGZ1bmN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwgRUZJX05P VF9GT1VORCAgICAgICAgIFRoZSBzcGVjaWZpZWQgY29udHJvbGxlciBvciBzbG90IGRvZXMgbm90 IGV4aXN0Lg0KPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBTZE1tY0hjU2xvdENh cGFiaWxpdHkgaXMgTlVMTA0KPiArDQo+ICsqKi8NCj4gK3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMN Cj4gKyhFRklBUEkgKiBTRF9NTUNfT1ZFUlJJREVfQ0FQQUJJTElUWSkgKA0KPiArICBJTiAgICAg IEVGSV9TRF9NTUNfUEFTU19USFJVX1BST1RPQ09MICAgKlBhc3NUaHJ1LA0KPiArICBJTiAgICAg IEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCj4gKyAg SU4gICAgICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb3QsDQo+ICsgIElOICBP VVQgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAqU2RNbWNIY1Nsb3RDYXBhYmlsaXR5 DQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArDQo+ICsgIE92ZXJyaWRlIGZ1bmN0aW9uIGZvciBT REhDSSBjb250cm9sbGVyIG9wZXJhdGlvbnMNCj4gKw0KPiArICBAcGFyYW1baW5dICAgICAgUGFz c1RocnUgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFRklfU0RfTU1DX1BBU1NfVEhSVV9QUk9UT0NPTCBpbnN0 YW5jZS4NCj4gKyAgQHBhcmFtW2luXSAgICAgIENvbnRyb2xsZXJIYW5kbGUgICAgICBUaGUgRUZJ X0hBTkRMRSBvZiB0aGUgY29udHJvbGxlci4NCj4gKyAgQHBhcmFtW2luXSAgICAgIFNsb3QgICAg ICAgICAgICAgICAgICBUaGUgMCBiYXNlZCBzbG90IGluZGV4Lg0KPiArICBAcGFyYW1baW4sb3V0 XSAgSG9va1R5cGUgICAgICAgICAgICAgIFRoZSB0eXBlIG9mIG9wZXJhdGlvbiBhbmQgd2hldGhl ciB0aGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob29rIGlz IGludm9rZWQgcmlnaHQgYmVmb3JlIChwcmUpIG9yDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmlnaHQgYWZ0ZXIgKHBvc3QpDQo+ICsNCj4gKyAgQHJldHZhbCBF RklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG92ZXJyaWRlIGZ1bmN0aW9uIGNvbXBsZXRlZCBzdWNj ZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgIFRoZSBzcGVjaWZp ZWQgY29udHJvbGxlciBvciBzbG90IGRvZXMgbm90IGV4aXN0Lg0KPiArICBAcmV0dmFsIEVGSV9J TlZBTElEX1BBUkFNRVRFUiBIb29rVHlwZSBpcyBpbnZhbGlkDQo+ICsNCj4gKyoqLw0KPiArdHlw ZWRlZg0KPiArRUZJX1NUQVRVUw0KPiArKEVGSUFQSSAqIFNEX01NQ19PVkVSUklERV9JTlZPS0Vf SE9PSykgKA0KPiArICBJTiAgICAgIEVGSV9TRF9NTUNfUEFTU19USFJVX1BST1RPQ09MICAgKlBh c3NUaHJ1LA0KPiArICBJTiAgICAgIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgICAgQ29u dHJvbGxlckhhbmRsZSwNCj4gKyAgSU4gICAgICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNsb3QsDQo+ICsgIElOICAgICAgU0RfTU1DX09WRVJSSURFX0hPT0sgICAgICAgICAgICBI b29rVHlwZQ0KPiArICApOw0KPiArDQo+ICtzdHJ1Y3QgX1NEX01NQ19PVkVSUklERSB7DQo+ICsg IC8vDQo+ICsgIC8vIFByb3RvY29sIHZlcnNpb24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbg0KPiAr ICAvLw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb247DQo+ICsg IC8vDQo+ICsgIC8vIENhbGxiYWNrIHRvIG92ZXJyaWRlIFNEL01NQyBob3N0IGNvbnRyb2xsZXIg Y2FwYWJpbGl0eSBiaXRzDQo+ICsgIC8vDQo+ICsgIFNEX01NQ19PVkVSUklERV9DQVBBQklMSVRZ ICAgICAgT3ZlcnJpZGVDYXBhYmlsaXR5Ow0KPiArICAvLw0KPiArICAvLyBDYWxsYmFjayB0byBp bnZva2UgU0QvTU1DIG92ZXJyaWRlIGhvb2tzDQo+ICsgIC8vDQo+ICsgIFNEX01NQ19PVkVSUklE RV9JTlZPS0VfSE9PSyAgICAgSW52b2tlSG9vazsNCj4gK307DQo+ICsNCj4gK2V4dGVybiBFRklf R1VJRCBnRWRraWlTZE1tY092ZXJyaWRlUHJvdG9jb2xHdWlkOw0KPiArDQo+ICsjZW5kaWYNCj4g ZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjIA0KPiBiL01kZU1vZHVs ZVBrZy9NZGVNb2R1bGVQa2cuZGVjIGluZGV4IDg1NmQ2N2FjZWIyMS4uNjRjZWVhMDI5Zjk0IA0K PiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gKysrIGIv TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gQEAgLTU2Miw2ICs1NjIsOSBAQCBbUHJv dG9jb2xzXQ0KPiAgICAgIyMgSW5jbHVkZS9Qcm90b2NvbC9TbW1NZW1vcnlBdHRyaWJ1dGUuaA0K PiAgICAgZ0Vka2lpU21tTWVtb3J5QXR0cmlidXRlUHJvdG9jb2xHdWlkID0geyAweDY5Yjc5MmVh LCAweDM5Y2UsIA0KPiAweDQwMmQsIHsgMHhhMiwgMHhhNiwgMHhmNywgMHgyMSwgMHhkZSwgMHgz NSwgMHgxZCwgMHhmZSB9IH0NCj4gICANCj4gKyAgIyMgSW5jbHVkZS9Qcm90b2NvbC9TZE1tY092 ZXJyaWRlLmggIA0KPiArIGdFZGtpaVNkTW1jT3ZlcnJpZGVQcm90b2NvbEd1aWQgPSB7IDB4ZWFm OWUzYzEsIDB4YzljZCwgMHg0NmRiLCB7IA0KPiArIDB4YTUsIDB4ZTUsIDB4NWEsIDB4MTIsIDB4 NGMsIDB4ODMsIDB4MjMsIDB4MjMgfSB9DQo+ICsNCj4gICAjDQo+ICAgIyBbRXJyb3IuZ0VmaU1k ZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkXQ0KPiAgICMgICAweDgwMDAwMDAxIHwgSW52YWxpZCB2 YWx1ZSBwcm92aWRlZC4NCj4gDQpCYXNlZCBvbiB5b3VyIHBhdGNoICMyLCBJIHRoaW5rIHRoZSBw cm90b2NvbCBpcyBzdXBwb3NlZCB0byBiZSBpbnN0YWxsZWQgYnkgYSBwbGF0Zm9ybSBkcml2ZXIg KGxldCdzIGNhbGwgaXQgU2RNbWNPdmVycmlkZVBsYXRmb3JtKSBvbiB0aGUgY29udHJvbGxlciBo YW5kbGUuDQoNClRoZXJlIGFyZSB0d28gd2F5cyB0byBwcm9kdWNlIHRoaXMgT3ZlcnJpZGUgcHJv dG9jb2w6DQoxLiBTZE1tY092ZXJyaWRlUGxhdGZvcm0gcmVnaXN0ZXJzIGEgcHJvdG9jb2wgbm90 aWZpY2F0aW9uIG9uIFBjaUlvIGFuZCBmaW5kIHRoZSBTRE1NQyBob3N0IGNvbnRyb2xsZXIgUENJ IGhhbmRsZSwgdGhlbiBpbnN0YWxsIFNkTW1jT3ZlcnJpZGUgb24gdGhhdCBoYW5kbGUuDQoyLiBT ZE1NY092ZXJyaWRlUGxhdGZvcm0gaXMgd3JpdHRlbiBhcyBhIGRyaXZlciBtb2RlbCBkcml2ZXIu IA0KRHJpdmVyQmluZGluZ1N0YXJ0KCkgb3BlbnMgUGNpSW8gQllfRFJJVkVSIGFuZCBwcm9kdWNl cyBTZE1tY092ZXJyaWRlLg0KVGhlbiBTZE1tY1BjaUhjIGRyaXZlciBvcGVucyBTZE1tY092ZXJy aWRlIEJZX0RSSVZFUiBhbmQgcHJvZHVjZXMgU2RNbWNQYXNzdGhydS4NCg0KQnV0IHNpbmNlIHRo ZSBTZE1tY092ZXJyaWRlIHByb3RvY29sIGlzIG9wdGlvbmFsLCB0aGF0IG1ha2VzICMyIG5vdCB3 b3JrYWJsZS4NCg0KQnV0ICMxIGNhbm5vdCBoYW5kbGUgdGhlICJyZWNvbm5lY3QgLXIiIGNhc2Uu IEJlY2F1c2UgdGhlcmUgaXMgbm8gcHJvdG9jb2wgbm90aWZpY2F0aW9uIG9uIHVuaW5zdGFsbC4N Cg0KU28gSSBhbSB0aGlua2luZyBpZiBpdCdzIG1vcmUgcHJvcGVyIHRvIG1ha2UgdGhpcyBwcm90 b2NvbCBhIHBsYXRmb3JtIGxldmVsIHNpbmdsZXRvbiBpbnN0YW5jZS4gSSBub3RpY2VkIHRoYXQg YWxsIEFQSXMgZXhwb3NlZCBieSB0aGlzIHByb3RvY29sIGFscmVhZHkgY2FycnkgdGhlIENvbnRy b2xsZXIgSGFuZGxlLg0KDQotLQ0KVGhhbmtzLA0KUmF5DQo=