From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0627.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1e::627]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CC1DC1A1EDF for ; Wed, 21 Sep 2016 04:33:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LZZrO+bZMCoWhI7BZj3SQQKbtu3Repe+mZoiX5Ru5gQ=; b=YJSn5irUMsWm8IGxTOj6SAXZLYR1QF2OnKt5mVuJJSAT2ThchnR09Z7tPIGARvlJyuHDGbRFzHM/7uLnPnnUwqGMcZPkymdQDfpPTUtPsjdB+SMstHs75WBC4kHjegwtZvaAsgJJT/EaEQjr21XNvWhmK01DTKGqrXpZPEa0dm8= Received: from AM4PR0401MB2289.eurprd04.prod.outlook.com (10.165.45.12) by DB5PR04MB2166.eurprd04.prod.outlook.com (10.166.172.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.2; Wed, 21 Sep 2016 11:32:58 +0000 Received: from AM4PR0401MB2289.eurprd04.prod.outlook.com ([10.165.45.12]) by AM4PR0401MB2289.eurprd04.prod.outlook.com ([10.165.45.12]) with mapi id 15.01.0639.005; Wed, 21 Sep 2016 11:32:58 +0000 From: Bhupesh Sharma To: Ard Biesheuvel , Laszlo Ersek CC: "edk2-devel@lists.01.org" , Sakar Arora Thread-Topic: [edk2] Exporting discontiguous System Memory to EFI STUB Thread-Index: AQHSDxksWkz+miXOZ0idgVUkRmEEj6B6PL3sgAAEogCAACm4gIAJGO1QgABRVgCAAACrAIAAAn4w Date: Wed, 21 Sep 2016 11:32:58 +0000 Message-ID: References: <4d4fe42c-0aeb-698b-9da5-63d8c215a160@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=bhupesh.sharma@nxp.com; x-originating-ip: [192.88.169.1] x-ms-office365-filtering-correlation-id: 3f8f87b0-999d-4d98-1cb0-08d3e21309ac x-microsoft-exchange-diagnostics: 1; DB5PR04MB2166; 6:JKkFzTDJQvQWTf+cTt638677FPm+0dFiakcJRcbF7uZ3MRp9se4CW54OBmBe49s8E+EHXUojk0O390Lj6AAjvKDqqIVCk8GUSXf8u6NPiwt29xdLN9Nl151q1CbWpOxcbT3EZNT2hNaCuAcYjf1EqINZ58irN9UxBizFwHzPsM0XkURmWfCUpAKujbmcW+ng/VancjP1yI0lcE4QVuXm1oiBK0jDx3r6DmeXuIRGtk4F/SSbLXUQj/NP9xbayoPNicPFiSwItw4cbqnwymJEuADstUKJpbW9NQ0DfFRhOcVUru9CfpJfPb5NNgnWgaaKmOF2CjUZJfb/9On3pmGhAw==; 5:ySnnYIu199PtwJs4Kq7W4Y3MsQ2aEJ98UqxFjSSaSEdlfajNnNSx/xCNJrK1MXEbdx34OPi4cqqSdPqx3Uo2wmU6OyHXIvvL1gjeZFpCzTcAITfNYEPmpxJLLeVIAFsVSdo1wehBGywt4N4Km0CijA==; 24:KKfBn6hxo+bu4XE7Zn9Vdzw+02youpVmHt6MeWhurJIVFdBZ9Hm125/VKdZtYyTl/z5bS4TCuGQdjlIiaJJnDywlLQ/W35NyjPUGQ+Och60=; 7:2f+RfZaDNQLp2ntY88nxGNBk87RuchWdr+8lLSe2qflNFI2nEFNzQhoIiWt+ve38edDcwApBdtmsfnM4oip5AXZuCHD5PCed+dxrDuBOlAbXgo07f5m5vzsuPh+wtFQxAyc9l1dSCy+ZKVThymvtobqa8NWDFzBf/WzjxXP/yzE/t2Npu38qAthibv6xtddO7zIC8VbTZhhfE4et+dCusJsBxPsJt2D2Z50+2Vr6bOfWfdqewVMVUrrNh9MRUo9kVs+Ysso4JdAMLuUEPUTqSwTH4p18kRUAofK4zWVfJPKjA2uhD/D40YLMEYert7Ke x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR04MB2166; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:DB5PR04MB2166; BCL:0; PCL:0; RULEID:; SRVR:DB5PR04MB2166; x-forefront-prvs: 007271867D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(199003)(24454002)(189002)(377454003)(10400500002)(105586002)(106116001)(106356001)(3280700002)(50986999)(3660700001)(102836003)(6116002)(3846002)(101416001)(586003)(54356999)(76176999)(93886004)(122556002)(7696004)(33656002)(2950100001)(2900100001)(77096005)(5660300001)(189998001)(92566002)(66066001)(97736004)(11100500001)(19580405001)(86362001)(305945005)(7846002)(74316002)(2906002)(7736002)(19580395003)(5001770100001)(5002640100001)(68736007)(76576001)(81156014)(81166006)(87936001)(8936002)(8676002)(4326007)(9686002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR04MB2166; H:AM4PR0401MB2289.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2016 11:32:58.3191 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR04MB2166 Subject: Re: Exporting discontiguous System Memory to EFI STUB X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Sep 2016 11:33:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkLA0KDQo+IEZyb206IEFyZCBCaWVzaGV1dmVsDQo+IFNlbnQ6IFdlZG5lc2RheSwgU2Vw dGVtYmVyIDIxLCAyMDE2IDQ6NTAgUE0NCj4gDQo+IE9uIDIxIFNlcHRlbWJlciAyMDE2IGF0IDEy OjE3LCBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPiB3cm90ZToNCj4gPiBPbiAwOS8y MS8xNiAxMToxMCwgQmh1cGVzaCBTaGFybWEgd3JvdGU6DQo+ID4+IFRoYW5rcyBBcmQsIExhc3ps by4NCj4gPj4NCj4gPj4gU2VlIHJlcGxpZXMgaW4tbGluZToNCj4gPj4NCj4gPj4+IEZyb206IEFy ZCBCaWVzaGV1dmVsDQo+ID4+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE1LCAyMDE2IDU6 MDEgUE0NCj4gPj4+DQo+ID4+PiBPbiAxNSBTZXB0ZW1iZXIgMjAxNiBhdCAxMDowMSwgTGFzemxv IEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gd3JvdGU6DQo+ID4+Pj4gT24gMDkvMTUvMTYg MTA6NDUsIFNha2FyIEFyb3JhIHdyb3RlOg0KPiA+Pj4+PiBIaQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBU aGlzIGlzIGluIGFhcmNoNjQgVUVGSSBjb250ZXh0Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgZWZp IHN0dWIgY29kZSBpZ25vcmVzIGFueSBtZW1vcnkgbm9kZXMgaW4gdGhlIGRldmljZSB0cmVlLiBJ dA0KPiA+Pj4+PiBvbmx5IHJlbGllcyBvbiB0aGUgVUVGSSBtZW1vcnkgbWFwIGZvciBtZW1vcnkg aW5mby4NCj4gPj4+Pj4NCj4gPj4+Pj4gSW4gc3VjaCBhIHNjZW5hcmlvLCBob3cgY2FuIG9uZSBl eHBvcnQgZGlzY29udGlndW91cyByZWdpb25zIG9mDQo+ID4+Pj4+IHN5c3RlbSBtZW1vcnkgdG8g dGhlIGVmaSBzdHViPyBUaGVyZSBzZWVtcyB0byBiZSBvbmx5IG9uZSB3YXkgdG8NCj4gPj4+Pj4g aW5mb3JtIFVFRkkgYWJvdXQgc3lzdGVtIG1lbW9yeSwgdmlhIFBjZFN5c3RlbU1lbW9yeUJhc2Uu DQo+ID4+Pj4+DQo+ID4+Pj4+IExvb2tpbmcgYXQgdGhlIGxhdGVzdCBBcm0gSnVubyBjb2RlLCBp dCBzZWVtcyBsaWtlIGJ1aWxkaW5nIGENCj4gPj4+Pj4gbWVtb3J5IHJlc291cmNlIGRlc2NyaXB0 b3IgaG9iLCBmb3IgdGhlIGV4dHJhIG1lbW9yeSByZWdpb24sIGRvZXMNCj4gPj4+Pj4gdGhlDQo+ ID4+PiB0cmljay4NCj4gPj4+Pj4gV291bGQgdGhhdCBiZSB0aGUgYmVzdCB3YXkgdG8gZ28/DQo+ ID4+Pj4+DQo+ID4+Pj4+IFN1Z2dlc3Rpb25zIHBsZWFzZS4NCj4gPj4+Pg0KPiA+Pj4+IFRoZXJl IGFyZSB0d28gd2F5cy4NCj4gPj4+Pg0KPiA+Pj4+IEZpcnN0LCBpbiB0aGUgUEVJIHBoYXNlLCB5 b3UgY2FuIHByb2R1Y2UgbWVtb3J5IHJlc291cmNlDQo+IGRlc2NyaXB0b3INCj4gPj4+PiBIT0Jz IHRoYXQgd2lsbCBkZXNjcmliZSBzeXN0ZW0gbWVtb3J5IGFyZWFzLiBXaGVuIHRoZSBEWEUgY29y ZQ0KPiA+Pj4gc3RhcnRzLA0KPiA+Pj4+IGl0IHdpbGwgY29udmVydCB0aGUgc3VpdGFibGUgSE9C cyB0byBFZmlHY2RNZW1vcnlUeXBlU3lzdGVtTWVtb3J5DQo+ID4+Pj4gbWVtb3J5IHNwYWNlLiBE dXJpbmcgRFhFIGFuZCBCRFMsIGJvb3QvcnVudGltZSBjb2RlL2RhdGENCj4gPj4+PiBhbGxvY2F0 aW9ucyB3aWxsIGJlIHNhdGlzZmllZCBmcm9tIHRoZXNlLiBUaGVuIHRoZSBVRUZJIG1lbW1hcA0K PiB3aWxsDQo+ID4+Pj4gcmVmbGVjdCB0aG9zZSBhbGxvY2F0aW9ucywgYW5kIHRoZSBzeXN0ZW0g bWVtb3J5IGxlZnQgdW51c2VkLCB0bw0KPiB0aGUgRUZJIHN0dWIuDQo+ID4+Pj4NCj4gPj4+PiBT ZWNvbmQsIHlvdSBjYW4gYWRkIEVmaUdjZE1lbW9yeVR5cGVTeXN0ZW1NZW1vcnkgbWVtb3J5IHNw YWNlDQo+ID4+Pj4gZHVyaW5nIGFuZCBhZnRlciB0aGUgRFhFIHBoYXNlLCBleHBsaWNpdGx5LCB1 c2luZyB0aGUgRFhFDQo+IHNlcnZpY2VzLg0KPiA+Pj4+IChJSVJDLCB0aGUgUEkgc3BlYyBzYXlz IHRoYXQgbWVtb3J5IHNwYWNlIGFkZGVkIHRoaXMgd2F5IG1heSBiZQ0KPiA+Pj4+IHBpY2tlZCBi eQ0KPiA+Pj4gdGhlDQo+ID4+Pj4gVUVGSSBtZW1vcnkgYWxsb2NhdGlvbiBzeXN0ZW0gaW1tZWRp YXRlbHk7IElPVywgaXQgbWF5IGltbWVkaWF0ZWx5DQo+ID4+Pj4gYmVjb21lIGF2YWlsYWJsZSB0 byB0aGUgcG9vbCBhbmQgcGFnZSBhbGxvY2F0aW9uIGJvb3Qgc2VyaXZjZXMsIHRvDQo+ID4+Pj4g YWxsb2NhdGUgZnJvbS4gSUlSQywgaW4gZWRrMiB0aGlzIGFjdHVhbGx5IGhhcHBlbnMuKSBUaGUg cmVzdCBpcw0KPiA+Pj4+IHRoZSBzYW1lIGFzIGFib3ZlLCB3cnQuIHRoZSBVRUZJIG1lbW1hcC4N Cj4gPj4+Pg0KPiA+Pj4+IFlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgZm9yIHRoZSBzZWNvbmQgbWV0 aG9kIHVuZGVyDQo+ID4+Pj4gIkFybVZpcnRQa2cvSGlnaE1lbUR4ZSIuIEkgdGhpbmsgaXQgbWln aHQgYmUgcGFydGljdWxhcmx5IGNsb3NlIHRvDQo+ID4+Pj4geW91ciB1c2UgY2FzZSwgYXMgaXQg cHJhY3RpY2FsbHkgdHJhbnNsYXRlcyB0aGUgbWVtb3J5IG5vZGVzIGZvdW5kDQo+ID4+Pj4gaW4g UUVNVSdzDQo+ID4+Pj4gKGNvcGllZCkgRFRCIHRvIEVmaUdjZE1lbW9yeVR5cGVTeXN0ZW1NZW1v cnkgbWVtb3J5IHNwYWNlLg0KPiA+Pj4+DQo+ID4+Pj4gKEFyZCwgd2hlbiBkbyB5b3UgcGxhbiB0 byBwb3J0IHRoaXMgZHJpdmVyIHRvIEZEVF9DTElFTlRfUFJPVE9DT0w/DQo+ID4+PiA6KSkNCj4g Pj4+Pg0KPiA+Pj4NCj4gPj4+IEFueSBkYXkgbm93IDotKQ0KPiA+Pj4NCj4gPj4+IEJ1dCBzZXJp b3VzbHksIEkgdGhpbmsgdGhpcyBpcyBvcnRob2dvbmFsIHRvIHRoZSBxdWVzdGlvbiwgc2luY2Ug SQ0KPiA+Pj4gZG9uJ3QgZXhwZWN0IHRoYXQgdGhpcyBwbGF0Zm9ybSB1c2VzIERUQiB0byBkZXNj cmliZSB0aGUgcGxhdGZvcm0NCj4gPj4+ICp0byBVRUZJKiwgYW5kIGl0IHdvdWxkIG5vdCBydW4g YW55IG9mIHRoZSBydW50aW1lIERUIHByb2JpbmcgY29kZS4NCj4gPj4+DQo+ID4+PiBTbyBpbiB0 aGlzIHBhcnRpY3VsYXIgY2FzZSwgaXQgaXMgc2ltcGx5IGEgbWF0dGVyIG9mIGFkZGluZyB0aGUN Cj4gPj4+IGFkZGl0aW9uYWwgbWVtb3J5IGF0IGFueSBwb2ludCBkdXJpbmcgdGhlIGV4ZWN1dGlv biBvZiBVRUZJIHRoYXQgaXMNCj4gPj4+IGNvbnZlbmllbnQsIGJ5IHVzaW5nIG9uZSBvZiB0aGUg dHdvIG1ldGhvZHMgeW91IGRlc2NyaWJlLg0KPiA+Pj4NCj4gPj4NCj4gPj4gWWVzLCB0aGlzIHBs YXRmb3JtLCB3aGljaCBoYXMgYmVlbiBleHRlbnNpdmVseSBkaXNjdXNzaW9uIG9uIExpbnV4DQo+ ID4+IG1haWxpbmctbGlzdHMgYXMgd2VsbCBmb3IgZGlzY29udGlndW91cyBtZW1vcnkgcmVnaW9u cyBhbmQgdGhlaXINCj4gPj4gc3VwcG9ydCBpbiBMaW51eCAoc2VlIFsxXSksIGRvZXNuJ3QgdXNl IERUQiB0byBkZXNjcmliZSB0aGUgcGxhdGZvcm0NCj4gKnRvIFVFRkkqLg0KPiA+Pg0KPiA+PiBI b3dldmVyIEkgaGF2ZSBvbmUgZ2VuZXJpYyBxdWVzdGlvbi4gQXQgdGhlIG1vbWVudCB3ZSBzZWVt IHRvIHVzZQ0KPiB0aGUNCj4gPj4gUGNkU3lzdGVtTWVtb3J5QmFzZSBhbmQgUGNkU3lzdGVtTWVt b3J5U2l6ZSBQQ0RzIHRvIGNvbnZleSB0byB0aGUNCj4gUEVJDQo+ID4+IGFuZCBEWEUgcGhhc2Vz IGFib3V0IHRoZSBVRUZJIHN5c3RlbSBtZW1vcnkgbGltaXRzLg0KPiA+DQo+ID4gTm8sIHRoYXQn cyBpbmNvcnJlY3QuIFRoZXNlIFBDRHMgZG9uJ3QgY2FwdHVyZSB0aGUgZnVsbCBwaWN0dXJlIGFi b3V0DQo+ID4gdGhlICJVRUZJIHN5c3RlbSBtZW1vcnkgbGltaXRzIi4gVGhleSBqdXN0IGRlc2Ny aWJlIG9uZSBpbml0aWFsDQo+IG1lbW9yeQ0KPiA+IHJhbmdlOyB0aGUgb25lIHRoYXQgd2lsbCBz ZXJ2ZSBhcyB0aGUgcGVybWFuZW50IFBFSSBSQU0uIChJbiB0aGUgUEVJDQo+ID4gcGhhc2UsIG9u ZSBvZiB0aGUgUEVJTXMgZGlzY292ZXJzIGFuZCBpbnN0YWxscyB0aGUgInBlcm1hbmVudCBQRUkN Cj4gPiBSQU0iLCB3aGljaCBpcyBvbmUgY29udGlndW91cyByYW5nZSwgdG8gYmUgdXNlZCBieSB0 aGUgcmVzdCBvZiB0aGUNCj4gUEVJIHBoYXNlLg0KPiA+IEEgYml0IGxhdGVyLCB0aGUgUEVJIGNv cmUsIHRoZSBQRUlNcywgdGhlIEhPQnMgZXRjIChJSVJDKSBhcmUNCj4gbWlncmF0ZWQNCj4gPiBm cm9tIHRoZSB0ZW1wb3JhcnkgUEVJIFJBTSB0byB0aGlzICJpbnN0YWxsZWQiIHBlcm1hbmVudCBQ RUkgUkFNLikNCj4gPg0KPiA+IEhvd2V2ZXIsIHN0YXJ0aW5nIHdpdGggdGhlIERYRSBwaGFzZSwg ZGlzam9pbnQgcmFuZ2VzIG9mIFJBTSBhcmUNCj4gPiBzdXBwb3J0ZWQ7IHRoZXkgY2FuIGJlIGlu c3RhbGxlZCBieSBlaXRoZXIgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIERYRQ0KPiA+IHNlcnZpY2Vz IHdpdGhpbiBEWEUsIG9yIGJ5IHByb2R1Y2luZyBhcHByb3ByaWF0ZSBIT0JzIHN0aWxsIGluIFBF SS4NCj4gPg0KPiA+DQo+ID4+DQo+ID4+IEhvdyBjYW4gd2UgcmVwcmVzZW50IHR3byBkaXNjb250 aWd1b3VzIEREUiByZWdpb25zIGluIFVFRkkgYW5kIG1ha2UNCj4gPj4gdGhlIEVESzIgY29kZSBi YXNlIHVzZSBib3RoIC0gdG8gY3JlYXRlIE1NVSBtYXBwaW5ncyBmcm9tPw0KPiA+DQo+ID4gQXMg SSBzYWlkLCBieSBwcm9kdWNpbmcgdGhlIHJpZ2h0IEhPQnMgaW4gUEVJIG9yIGJ5IGNhbGxpbmcg dGhlIHJpZ2h0DQo+ID4gRFhFIHNlcnZpY2VzIGluIERYRS4gVGhlIGFjdHVhbCByYW5nZSBsb2Nh dGlvbnMgKD0gdGhlIGZpZWxkcyBvZiB0aGUNCj4gPiBIT0JzIG9yIHRoZSBhcmd1bWVudHMgdG8g dGhlIERYRSBzZXJ2aWNlcykgZGVwZW5kIG9uIHlvdXIgcGxhdGZvcm0uDQo+ID4NCj4gPiBSZWdh cmRpbmcgdGhlIE1NVTogSSBkb24ndCBrbm93LiBJIGhhZCBhbHdheXMgYmVsaWV2ZWQgdGhhdCB0 aGUgRFhFDQo+ID4gc2VydmljZXMgc2hvdWxkIGNvdmVyIHRoZSBNTVUgc2V0dXAgdHJhbnNwYXJl bnRseSwgd2hlbiBuZXcgc3lzdGVtDQo+ID4gbWVtb3J5IHJhbmdlcyBhcmUgYWRkZWQgLS0gYXMg bG9uZyBhcyB0aGV5IGV4aXN0IHdpdGhpbiB0aGUgYWRkcmVzcw0KPiA+IHNwYWNlIHByZS1hbm5v dW5jZWQgYnkgdGhlIENQVSBIT0IgLS0sIGJ1dCBJIGRvIHJlY2FsbCBmcm9tIGFub3RoZXINCj4g PiB0aHJlYWQgb24gdGhlIGxpc3QgdGhhdCB0aGlzIHdhc24ndCB0aGUgY2FzZSBvbiBBUk0uIEkg ZG9uJ3Qga25vdw0KPiB3aHkuDQo+ID4NCj4gDQo+IEkgcmVjZW50bHkgZml4ZWQgYSBwcm9ibGVt IGluIHRoZSBNTVUgY29kZSB3aGVyZSB0aGUgbWF4aW11bSBzaXplIG9mDQo+IHRoZSBWQSByYW5n ZSB3aGljaCBpcyBwcm9ncmFtbWVkIGludG8gdGhlIE1NVSByZWdpc3RlcnMgd2FzIGJhc2VkIG9u DQo+IHRoZSBpbml0aWFsIG1lbW9yeSBzaXplLCBhbmQgYWRkaW5nIG1lbW9yeSAob3IgTU1JTykg cmFuZ2VzIGxhdGVyIHdvdWxkDQo+IGNhdXNlIHByb2JsZW1zLg0KPiANCj4gV0l0aCB0aGUgbGF0 ZXN0IEVESzIsIGFkZGluZyBtZW1vcnkgbWF5IGJlIGRvbmUgYXQgYW55IHRpbWUsIGFuZCB3aWxs DQo+IGJlIHJlZmxlY3RlZCBpbiB0aGUgMToxIG1hcHBpbmcgaW4gdGhlIE1NVQ0KDQpUaGFua3Mu IFRoYXQgbG9va3MgcHJvbWlzaW5nLiBDYW4geW91IHBsZWFzZSBzaGFyZSB0aGUgU0hBLUlELCBj b21taXQtSUQNCm9mIHRoaXMgKk1NVSBmaXh1cCogcGF0Y2guDQoNClJlZ2FyZHMsDQpCaHVwZXNo DQo=