From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.1.83; helo=eur01-ve1-obe.outbound.protection.outlook.com; envelope-from=udit.kumar@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0083.outbound.protection.outlook.com [104.47.1.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3B4E921F2E165 for ; Tue, 17 Apr 2018 01:15:10 -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=gqI4ZYJVftaoxjjRmgVgY0V4V6XU1r8iM+IXuvgAmPg=; b=kamfBffcBYqoEfJudYlKfFoyFNtZn6UKzldAZfJLt/qAkbx4Ps8qTt+5UG4VeyGC0VQ915oaLxWPRLWBNo8I50y19EYUa2KVe4aPs5ApYjr4E4h1tZfQ/0TzYaqzJ0tg+hkiUetbEnMs2vSz3ofBsb49YJbPbJabYwp8IRYZiDw= Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com (52.133.18.151) by AM6PR0402MB3766.eurprd04.prod.outlook.com (52.133.29.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.12; Tue, 17 Apr 2018 08:15:07 +0000 Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::28c1:57d5:1b06:e35b]) by AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::28c1:57d5:1b06:e35b%13]) with mapi id 15.20.0675.015; Tue, 17 Apr 2018 08:15:07 +0000 From: Udit Kumar To: Laszlo Ersek , Leif Lindholm CC: "Kinney, Michael D" , "edk2-devel@lists.01.org" , "Gao, Liming" Thread-Topic: [edk2] [PATCH] MdePkg: add big-endian MMIO BaseBeIoLib Thread-Index: AQHT1iQwDvjdHbPkR0WQ38GOtMXuhA== Date: Tue, 17 Apr 2018 08:15:07 +0000 Message-ID: References: <20180413174211.858-1-leif.lindholm@linaro.org> <20180413193143.t45tua3yi7sopk4d@bivouac.eciton.net> <20180416100712.6v642ycksvmoffvt@bivouac.eciton.net> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=udit.kumar@nxp.com; x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR0402MB3766; 7:1S27Z/M4gIlUGKx4+RQFNMRywbIWQG7hWMKiQP994ncVZif9vdEicJcZhM02gLavFJ0w4ULVqn05QgYi0qyFvzsAVVQQkSBIFNafgAQ9ZZqZ6AxhUQuSPJEOAnjb2DvVkk0+a9uWoYmTIl2tQy9N2PBZSsmWm9fuvVJGPdU28RtUBk5Zd2JXcDi5C7JyrVUTJ98QKf5CIH0A1w2ZTKYtis+nxkmyCOzQ0/KNMo5Wp13AXW5wpOiJme4hkTvixszx x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM6PR0402MB3766; x-ms-traffictypediagnostic: AM6PR0402MB3766: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(162533806227266)(45079756050767)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231232)(944501359)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041310)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:AM6PR0402MB3766; BCL:0; PCL:0; RULEID:; SRVR:AM6PR0402MB3766; x-forefront-prvs: 0645BEB7AA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6029001)(376002)(39380400002)(39860400002)(346002)(396003)(366004)(199004)(189003)(13464003)(105586002)(5660300001)(446003)(45080400002)(305945005)(7736002)(478600001)(2900100001)(68736007)(93886005)(476003)(486006)(44832011)(966005)(11346002)(3280700002)(76176011)(229853002)(59450400001)(3660700001)(74316002)(7696005)(99286004)(33656002)(186003)(66066001)(6306002)(6246003)(8936002)(106356001)(53936002)(6116002)(97736004)(8676002)(4326008)(54906003)(5250100002)(25786009)(53546011)(55236004)(102836004)(6436002)(316002)(26005)(2906002)(81156014)(575784001)(14454004)(86362001)(81166006)(55016002)(110136005)(9686003)(6506007)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0402MB3766; H:AM6PR0402MB3334.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 2XQKD3DWzcT1suTOYNcEtkMpoRUJdYJF9FXL0Xr41U5s7NkGAv06eeu8EJu11ChBP2IIXTK3Ufz7/PhzB/Vsfn4Mc8UJ7BM1vrnSU6PrFYfYX03pZv8e3W3hJmsNaBgsbscsWHGHzkfpkvIqkq3q5hejfkQ/IZWkFcbk1YO39sdXLsei+5ldshJK0qhCoMYy spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: d8b67c68-9da3-42cd-9d44-08d5a43b54f2 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8b67c68-9da3-42cd-9d44-08d5a43b54f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2018 08:15:07.7536 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3766 Subject: Re: [PATCH] MdePkg: add big-endian MMIO BaseBeIoLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Apr 2018 08:15:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLCANCg0KQ29uc2lkZXJpbmcgYWxsIHBvc3NpYmxlIG9wdGlvbiBpcyBiZXN0IHRv IGhhdmUgaW4gY29kZSDwn5iKIA0KQnV0IElNTywgV2UgYXJlIHJ1bm5pbmcgVUVGSSBvbiBMRSBD UFUgb25seSwgTm90IHN1cmUgc29tZW9uZSBpcyBydW5uaW5nIG9uIEJFLiBBRkFJSyBldmVuIHNw ZWNzIHNheXMgTEUuIA0KDQo+IChjKSBhc3N1bWluZyB3ZSBpbnRyb2R1Y2UgYSBDUFUgd2l0aCBC RSBieXRlIG9yZGVyLCB0aGUgc2FtZSBkcml2ZXINCj4gICAgIHNvdXJjZSB3aWxsIHdvcmsgKGZv ciBib3RoIExFIGFuZCBCRSBkZXZpY2VzKSwgb25seSB0aGUgbGliDQo+ICAgICBpbnN0YW5jZXMg d2lsbCBoYXZlIHRvIGJlIHN3aXRjaGVkIGFyb3VuZC4gKFRoaXMgbWlnaHQgZXZlbiBoYXBwZW4N Cj4gICAgIGR5bmFtaWNhbGx5LCB2aWEgZnVuY3Rpb24gcG9pbnRlcnMuKQ0KDQpJIGFzc3VtZSAs IHdoZW4gd2Ugc2F5IENQVSBpbiBCRSAsIHRoaXMgbWVhbnMgd2UgYXJlIHRhbGtpbmcgaGVyZSBu ZXcgQ1BVIGFyY2hpdGVjdHVyZQ0KYW5kIG5ldyBTT0MuICBTbyBJIGV4cGVjdCBzb21lIGNoYW5n ZXMgaW4gaGFyZHdhcmUgSVAgYXMgd2VsbC4NCklmIG5vdCB0aGVuLCBJIHNlZSBzdGlsbCB0aGlz IHdvcmtpbmcgd2l0aCBwYXRjaCBvZiBMZWlmIA0KDQpMaWtlIA0KQ1BVIChMRSwpIERyaXZlciAo TEUpIFVzZXMgTW1pbw0KQ1BVIChMRSwpIERyaXZlciAoQkUpIFVzZXMgQmVNbWlvIChNbWlvIHdp dGggc3dhcCkNCg0KQ1BVIChCRSwpIERyaXZlciAoTEUpIFVzZXMgTW1pbyAoRG9lcyByZWFkIGFu ZCBTd2FwKSA8LS0gVGhpcyB3aWxsIGJlIG5ldyBNbWlvIExpYiBmb3IgcGFydGljdWxhciBhcmNo aXRlY3R1cmUgDQpDUFUgKEJFLCkgRHJpdmVyIChCRSkgVXNlcyBCZU1taW8gKE1taW8gd2l0aCBz d2FwKSAgPC0tIFN3YXAgb2Ygc3dhcCB3aWxsIG1ha2Ugc2FtZSB2YWx1ZSANCg0KV2l0aCB0aGlz LCBJIHNlZSBkcml2ZXIgY29kZSBpcyBzYW1lIGlycmVzcGVjdGl2ZSBvZiBDUFUgYXJjaCANCg0K dGhvdWdodHMgPyANCg0KVGhhbmtzIA0KVWRpdCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3Rz LjAxLm9yZ10gT24gQmVoYWxmIE9mIExhc3psbw0KPiBFcnNlaw0KPiBTZW50OiBUdWVzZGF5LCBB cHJpbCAxNywgMjAxOCAxOjAzIEFNDQo+IFRvOiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xt QGxpbmFyby5vcmc+DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsNCj4gR2FvLCBMaW1pbmcgPGxpbWlu Zy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gTWRlUGtnOiBh ZGQgYmlnLWVuZGlhbiBNTUlPIEJhc2VCZUlvTGliDQo+IA0KPiBPbiAwNC8xNi8xOCAxMjowNywg TGVpZiBMaW5kaG9sbSB3cm90ZToNCj4gPiBPbiBGcmksIEFwciAxMywgMjAxOCBhdCAxMTozMjoz NVBNICswMDAwLCBLaW5uZXksIE1pY2hhZWwgRCB3cm90ZToNCj4gPj4gTGVpZiwNCj4gPj4NCj4g Pj4gSSBhbSBjdXJpb3VzIHdoeSBhIFN3YXAgY2xhc3MvaW5zdGFuY2VzIGlzIG5vdCBzdWZmaWNp ZW50Lg0KPiA+Pg0KPiA+PiBDdXJyZW50bHkgRURLIElJIGZvbGxvd3MgdGhlIFVFRkkvUEkgc3Bl Y3MsIHdoaWNoIGZvciBhbGwgc3VwcG9ydGVkDQo+ID4+IENQVSBhcmNoaXRlY3R1cmVzIHVzZSBs aXR0bGUgZW5kaWFuIEFCSS4gVGhlIEJhc2VJb0xpYiBmb2xsb3dzIHRoZQ0KPiA+PiBlbmRpYW5u ZXNzIG9mIHRoZSBDUFUuICBJZiBVRUZJL1BJIGFkZGVkIGEgQ1BVIHRoYXQgd2FzIGJpZyBlbmRp YW4sIEkNCj4gPj4gd291bGQgZXhwZWN0IEJhc2VJb0xpYiB3aGVuIGJ1aWx0IGZvciB0aGF0IENQ VSB3b3VsZCBwZXJmb3JtIGJpZw0KPiA+PiBlbmRpYW4gb3BlcmF0aW9ucy4NCj4gPj4NCj4gPj4g QW0gSSBtaXNzaW5nIHNvbWV0aGluZz8NCj4gPg0KPiA+IElmIHlvdSBkaWQgYWRkIGEgYmlnLWVu ZGlhbiBDUFUsIHlvdSBjb3VsZCB0aGVuIGZpbmQgeW91cnNlbGYgaW4gdGhlDQo+ID4gZXhhY3Qg b3Bwb3NpdGUgc2l0dWF0aW9uIGFuZCByZXF1aXJlIGEgbGl0dGxlLWVuZGlhbiBpL28gYWNjZXNz DQo+ID4gbGlicmFyeS4gV2hpY2ggd291bGQgYmUgaW1wbGVtZW50ZWQgZXhhY3RseSBhcyB0aGUg Y29udGVudHMgb2YNCj4gPiBJb0xpYlN3YXAuYy4NCj4gPg0KPiA+IFRoZSBoZWFkZXIgZmlsZSBu ZWNlc3NhcmlseSBuZWVkcyB0byBiZSBlbmRpYW5uZXNzLXNwZWNpZmljLCBhbmQgaWYNCj4gPiB0 aGUgY29kaW5nIHN0eWxlIGhhZCBwZXJtaXR0ZWQgZnVuY3Rpb25zIGluIGhlYWRlciBmaWxlcywg bXkgYXV0b21hdGljDQo+ID4gcmVhY3Rpb24gd291bGQgaGF2ZSBiZWVuIHRvIG1ha2UgYWxsIG9m IHRoZXNlIHN0YXRpYyBpbmxpbmUgaGVscGVyDQo+ID4gZnVuY3Rpb25zIChldmVuIHdpdGggdGhl IGNvZGUgZHVwbGljYXRpb24pLg0KPiANCj4gRmlyc3QsIHRvIHJlbWluZCBteXNlbGYgb2YgdGhl IHByZXZpb3VzIGRpc2N1c3Npb24gKGFuZCBwbGVhc2UgY29ycmVjdCBtZSBpZiBJDQo+IHJlbWVt YmVyIGluY29ycmVjdGx5KTogd2hldGhlciBzd2FwcGluZyBpcyBuZWVkZWQgb3Igbm90IGRlcGVu ZHMgb24gYm90aA0KPiBDUFUgYnl0ZSBvcmRlciBhbmQgZGV2aWNlIGJ5dGUgb3JkZXIuIEhvd2V2 ZXIsIHRoZSBsaWJyYXJ5IEFQSSBuYW1lcyB0aGF0DQo+IGRldmljZSBkcml2ZXJzIHVzZSBzaG91 bGQgcmVmbGVjdCBkZXZpY2UgYnl0ZSBvcmRlciAqb25seSogKHJlZ2FyZGxlc3Mgb2YgQ1BVDQo+ IGJ5dGUgb3JkZXIpLiBUaGlzIHdheSwNCj4gDQo+IChhKSBkZXZlbG9wZXJzIHRoYXQgd3JpdGUg ZGV2aWNlIGRyaXZlcnMgY2FuIGZvY3VzIG9uIHRoZSBkZXZpY2VzLA0KPiAgICAgcmVnYXJkbGVz cyBvZiB3aGF0IENQVSB0aGUgZHJpdmVyIGlzIGNvbXBpbGVkIGZvciwNCj4gDQo+IChiKSBsaWJy YXJ5IGNsYXNzZXMgZm9yIGJvdGggTEUgYW5kIEJFIGRldmljZXMgY2FuIGJlIHVzZWQgdG9nZXRo ZXIgaW4NCj4gICAgIHRoZSBzYW1lIGRyaXZlciBtb2R1bGUsDQo+IA0KPiAoYykgYXNzdW1pbmcg d2UgaW50cm9kdWNlIGEgQ1BVIHdpdGggQkUgYnl0ZSBvcmRlciwgdGhlIHNhbWUgZHJpdmVyDQo+ ICAgICBzb3VyY2Ugd2lsbCB3b3JrIChmb3IgYm90aCBMRSBhbmQgQkUgZGV2aWNlcyksIG9ubHkg dGhlIGxpYg0KPiAgICAgaW5zdGFuY2VzIHdpbGwgaGF2ZSB0byBiZSBzd2l0Y2hlZCBhcm91bmQu IChUaGlzIG1pZ2h0IGV2ZW4gaGFwcGVuDQo+ICAgICBkeW5hbWljYWxseSwgdmlhIGZ1bmN0aW9u IHBvaW50ZXJzLikNCj4gDQo+IE5vdywgYWZ0ZXIgc3RhcmluZyBhdCB0aGlzIHBhdGNoIGxvbmcg YW5kIGhhcmQsIGhlcmUncyBteSB1bmRlcnN0YW5kaW5nLg0KPiBDcnVjaWFsbHksIHlvdSB0YWtl IHRoZSBJb0xpYiBjbGFzcyB0byBtZWFuICJpdCBkb2Vzbid0IHN3YXAiLiBZb3UgZG9uJ3QgdGFr ZSBpdCB0bw0KPiBtZWFuICJpdCB0YWxrcyB0byBMRSBkZXZpY2VzIi4gVGhpcyBpcyBldmlkZW50 IGZyb20gdGhlIHNvdXJjZSBmaWxlICJJb0xpYlN3YXAuYyIsDQo+IHdoZXJlIHlvdSBhZGQgdGhl IHN3YXBwaW5nIG9uIHRvcCBvZiBJb0xpYi4NCj4gVGhhdCdzIGZpbmUsIGJ1dCBpdCB3aWxsIGhh dmUgY29uc2VxdWVuY2VzOg0KPiANCj4gKDEpIFdlIG5lZWQgYSBzZXBhcmF0ZSBsaWJyYXJ5IGNs YXNzIGNhbGxlZCBJb1N3YXBMaWIgKG5vdCBJb0xpYlN3YXApLA0KPiAgICAgaW1wbGVtZW50ZWQg dW5kZXIgIk1kZVBrZy9MaWJyYXJ5L0Jhc2VJb1N3YXBMaWIvQmFzZUlvU3dhcExpYi5jIiwNCj4g ICAgIGFuZCB3aXRob3V0IHRoZSBwcmVwcm9jZXNzb3IgdHJpY2tlcnkuIFRoZXJlIHNob3VsZCBi ZSBvbmUgbGlicmFyeQ0KPiAgICAgaW5zdGFuY2Ugb25seSwgYWRkaW5nIG5vdGhpbmcgYnV0IGJ5 dGUgc3dhcHBpbmcgb24gdG9wIG9mIElvTGliLg0KPiANCj4gKDIpIFdlIG5lZWQgc2VwYXJhdGUg bGlicmFyeSBjbGFzc2VzIGNhbGxlZCBCZUlvTGliIGFuZCBMZUlvTGliLiBUaGVzZQ0KPiAgICAg cHJvdmlkZSB0aGUgdWx0aW1hdGUgQVBJcyB0aGF0IEkgZGVzY3JpYmUgbmVhciB0aGUgdG9wLiBJ biB0b3RhbCB3ZQ0KPiAgICAgc2hvdWxkIGhhdmUgZm91ciBsaWJyYXJ5IGluc3RhbmNlcyB0aGF0 IGFyZSBleHBsaWNpdCBhYm91dCBkZXZpY2UNCj4gICAgIGVuZGlhbm5lc3MuIFRoaXMgbWVhbnMg Zm91ciBJTkYgZmlsZXMsIGFuZCBhIHNpbmdsZSBzaGFyZWQgQyBzb3VyY2UNCj4gICAgIGZpbGUs ICp3aXRoKiB0aGUgcHJlcHJvY2Vzc29yIHRyaWNrZXJ5Lg0KPiANCj4gKDIuMSkgQmFzZUJlSW9M aWIuaW5mOiBpbXBsZW1lbnRzIHRoZSBCZUlvTGliIGZ1bmN0aW9ucyBvbiB0b3Agb2YgSW9MaWIs DQo+ICAgICAgIHRoYXQgaXMsIHdpdGhvdXQgc3dhcHBpbmcgLS0gdGhpcyBtZWFucyB0aGF0IGl0 IGlzIHN1aXRhYmxlIGZvcg0KPiAgICAgICB0YWxraW5nIHRvIEJFIGRldmljZXMgb24gQkUgQ1BV cy4NCj4gDQo+ICgyLjIpIEJhc2VCZUlvTGliU3dhcC5pbmY6IGltcGxlbWVudHMgdGhlIEJlSW9M aWIgZnVuY3Rpb25zIG9uIHRvcCBvZg0KPiAgICAgICBJb1N3YXBMaWIgLS0gdGFsa3MgdG8gQkUg ZGV2aWNlcyBvbiBMRSBDUFVzLg0KPiANCj4gKDIuMykgQmFzZUxlSW9MaWIuaW5mOiBpbXBsZW1l bnRzIExlSW9MaWIgZnVuY3Rpb25zIG9uIHRvcCBvZiBJb0xpYiAtLQ0KPiAgICAgICB0YWxrcyB0 byBMRSBkZXZpY2VzIG9uIExFIENQVXMuDQo+IA0KPiAoMi40KSBCYXNlTGVJb0xpYlN3YXAuaW5m OiBpbXBsZW1lbnRzIExlSW9MaWIgZnVuY3Rpb25zIG9uIHRvcCBvZg0KPiAgICAgICBJb1N3YXBM aWIgLS0gdGFsa3MgdG8gTEUgZGV2aWNlcyBvbiBCRSBDUFVzLg0KPiANCj4gSU1PLCBpdCdzIGZp bmUgaWYgeW91IG9ubHkgd2FudCB0byBhZGQgdGhlIEJlSW9MaWIgY2xhc3Mgbm93LCB3aXRoIGl0 cw0KPiBCYXNlQmVJb0xpYlN3YXAgaW5zdGFuY2Ugb25seS4gQnV0IHRoZSBJb1N3YXBMaWIgYW5k IEJlSW9MaWIgY2xhc3NlcyBtdXN0DQo+IGV4aXN0IHNlcGFyYXRlbHkgbm9uZXRoZWxlc3MuIEFu ZCB0aGF0J3MgYmVjYXVzZSB5b3VyIGN1cnJlbnRseSBwcm9wb3NlZCBDDQo+IHNvdXJjZSBmaWxl IGlzIHVuYWJsZSB0byBleHByZXNzIGNhc2UgKDIuMSk6IHlvdSBjYW4gZ2VuZXJhdGUgdGhlICJC ZSIgcHJlZml4DQo+IGFscmlnaHQsIGJ1dCB0aGUgaW50ZXJuYWxzIHdpbGwgYWx3YXlzIHN3YXAs IGFuZCBkbyB0aGF0IG9uIHRvcCBvZiBJb0xpYiAod2hpY2gNCj4gKm5ldmVyKiBzd2FwcykuIFNv IHlvdSB3aWxsIGVuZCB1cCBzd2FwcGluZyBvbmNlIGluIHRoZSBCZSooKSBmdW5jdGlvbnMsIHdo aWNoDQo+IGlzIHdyb25nIGZvciB0YWxraW5nIHRvIEJFIGRldmljZXMgb24gQkUgQ1BVcy4NCj4g DQo+IEkgZ3Vlc3MgLS0gcmVsYXhpbmcgbXkgaW5pdGlhbCBwb2ludCBhIGJpdCAtLSBpdCdzIGFs c28gT0sgaWYgeW91IGRvIG5vdCBpbnRyb2R1Y2UgdGhlDQo+IEJlSW9MaWIgY2xhc3MgYXQgYWxs IChsZXQgYWxvbmUgTGVJb0xpYiksIHNheWluZyB0aGF0IGRyaXZlcnMgYXJlIGdlbmVyYWxseSBl eHBlY3RlZA0KPiB0byBjb21wdXRlIGF0IHN0YXJ0dXAgd2hldGhlciB0aGV5IG5lZWQgdG8gYnl0 ZS1zd2FwIG9yIG5vdCAoY29uc2lkZXJpbmcgYm90aA0KPiBDUFUgYW5kIGRldmljZSBieXRlIG9y ZGVyKSwgYW5kIHRoZW4gdGhleSBuZWVkIHRvIGZsaXAgYSBmZXcgZnVuY3Rpb24gcG9pbnRlcnMN Cj4gYmV0d2VlbiBJb0xpYiB2ZXJzdXMgSW9Td2FwTGliIGZvciBhbGwgZnVydGhlciB1c2UuIElu IHRoYXQgY2FzZSBob3dldmVyIHRoZQ0KPiBwYXRjaCBzaG91bGQgbm90IHNheSAiQmUiIG9yICJM ZSIgaW4gYW55IGxpYiBjbGFzcywgaW5zdGFuY2UsIG9yIEFQSSBuYW1lcywgYXQgYWxsLg0KPiAN Cj4gU29tZSBvdGhlciByYW5kb20gY29tbWVudHMgSSBoYXZlOg0KPiANCj4gKDMpIFlvdSBtZW50 aW9uIHRoYXQgbm8gVU5JIGZpbGUgaXMgYmVpbmcgZHVwbGljYXRlZCwgYnV0IEkgZG8gc2VlIG9u ZS4NCj4gDQo+ICg0KSBQbGVhc2UgY29uc2lkZXIgYWRvcHRpbmcNCj4gDQo+IA0KPiBodHRwczov L2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJG JTJGZ2l0aHViLg0KPiBjb20lMkZ0aWFub2NvcmUlMkZ0aWFub2NvcmUuZ2l0aHViLmlvJTJGd2lr aSUyRkxhc3psbyUyN3MtdW5rZW1wdC1naXQtDQo+IGd1aWRlLWZvci1lZGsyLWNvbnRyaWJ1dG9y cy1hbmQtbWFpbnRhaW5lcnMlMjNjb250cmliLQ0KPiAxMCZkYXRhPTAyJTdDMDElN0N1ZGl0Lmt1 bWFyJTQwbnhwLmNvbSU3Q2VjYTBlMzQyOTk2ZTQwN2M1OWQ4MDhkDQo+IDVhM2QwZDgyMCU3QzY4 NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2MzY1OTUwMzkNCj4gNzg0 ODA4MDg0JnNkYXRhPW5aTGFzWXVmbkp4YzloVWg3aGpET1dhZk53UmNEczlYbHRUMXRKcUw3S00l M0QmcmUNCj4gc2VydmVkPTANCj4gDQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0 aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRodWIuDQo+IGNvbSUyRnRpYW5v Y29yZSUyRnRpYW5vY29yZS5naXRodWIuaW8lMkZ3aWtpJTJGTGFzemxvJTI3cy11bmtlbXB0LWdp dC0NCj4gZ3VpZGUtZm9yLWVkazItY29udHJpYnV0b3JzLWFuZC1tYWludGFpbmVycyUyM2NvbnRy aWItDQo+IDIzJmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIlNDBueHAuY29tJTdDZWNhMGUzNDI5 OTZlNDA3YzU5ZDgwOGQNCj4gNWEzZDBkODIwJTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMz MDE2MzUlN0MwJTdDMCU3QzYzNjU5NTAzOQ0KPiA3ODQ4MDgwODQmc2RhdGE9S0VZWktXMzQ5NUhZ TU94ZDklMkI3Z3NBUldIVTdjTWh4NUJFRVI3Tmd3RiUNCj4gMkJnJTNEJnJlc2VydmVkPTANCj4g DQo+ICAgICBzbyB0aGF0IHBhdGNoZXMgcm91Z2hseSBhZHZhbmNlIGZyb20gImFic3RyYWN0IiB0 byAiY29uY3JldGUiLg0KPiANCj4gKDUpIFlvdSBza2lwcGVkIHRoZSBmb2xsb3dpbmcgZmFtaWx5 IG9mIGZ1bmN0aW9uczoNCj4gICAgIE1taW9CaXRGaWVsZChSZWFkfFdyaXRlfE9yfEFuZHxBbmRU aGVuT3IpKDE2fDMyfDY0KS4gSSBkb24ndCB0aGluaw0KPiAgICAgdGhhdCdzIHJpZ2h0OiB0aGUg bWFzayB2YWx1ZXMgYXQgdGhlIGxlYXN0IGFyZSBleHByZXNzZWQgaW4gaG9zdA0KPiAgICAgYnl0 ZSBvcmRlciwgYW5kIHRoZXknbGwgbmVlZCBjb252ZXJzaW9uLiBBbiBlYXJsaWVyIChpbmRlcGVu ZGVudCkNCj4gICAgIGRpc2N1c3Npb24gd2FzIGF0Og0KPiANCj4gDQo+IGh0dHBzOi8vZW1lYTAx LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm1pZC5t YWkNCj4gbC1hcmNoaXZlLmNvbSUyRjQ4ZDdkMWE5LTUwM2YtMmE3Mi04MDNkLQ0KPiBmNjNhOGJj NjdlOWMlNDByZWRoYXQuY29tJmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIlNDBueHAuY29tJTdD ZQ0KPiBjYTBlMzQyOTk2ZTQwN2M1OWQ4MDhkNWEzZDBkODIwJTdDNjg2ZWExZDNiYzJiNGM2ZmE5 MmNkOTljNWMzMDE2Mw0KPiA1JTdDMCU3QzAlN0M2MzY1OTUwMzk3ODQ4MDgwODQmc2RhdGE9czM4 a0RTeHFTaFFhMk1ZeDAzJTJCZURXDQo+IFhyeDFMcEpoUTJZNFd2eUxQZmdEQSUzRCZyZXNlcnZl ZD0wDQo+IA0KPiAoNikgUGxlYXNlIGRvbid0IHVzZSAiX18iIGFuZCAiX0MiIHByZWZpeGVzIGZv ciBpZGVudGlmaWVycyAoc2VlDQo+ICAgICBfX0NPTkNBVEVOQVRFIGFuZCBfQ09OQ0FURU5BVEUp OyBhY2NvcmRpbmcgdG8gdGhlIEMgc3RhbmRhcmQsICJBbGwNCj4gICAgIGlkZW50aWZpZXJzIHRo YXQgYmVnaW4gd2l0aCBhbiB1bmRlcnNjb3JlIGFuZCBlaXRoZXIgYW4gdXBwZXJjYXNlDQo+ICAg ICBsZXR0ZXIgb3IgYW5vdGhlciB1bmRlcnNjb3JlIGFyZSBhbHdheXMgcmVzZXJ2ZWQgZm9yIGFu eSB1c2UiLg0KPiANCj4gICAgIEkga25vdyBMaW51eCB1c2VzICJfXyIgcHJlZml4ZXMgbGliZXJh bGx5OyB0aGF0IGRvZXNuJ3QgbWFrZSB0aGVtDQo+ICAgICBhbnkgbGVzcyB3cm9uZyA6KQ0KPiAN Cj4gLi4uIE9idmlvdXNseSBJIGRvbid0IGluc2lzdCBvbiB0aGVzZSBwYXRjaGVzIGJlaW5nIGlt cGxlbWVudGVkICJteSB3YXkiOyBJJ20NCj4gc3RhdGluZyBteSBvcGluaW9uIGJlY2F1c2UgeW91 IENDJ2QgbWUgOikgKFRoYW5rcyBmb3IgdGhhdCEpDQo+IA0KPiBUaGFua3MsDQo+IExhc3psbw0K PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBlZGsy LWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBodHRwczov L2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJG JTJGbGlzdHMuMDENCj4gLm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRmVkazItDQo+IGRldmVs JmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIlNDBueHAuY29tJTdDZWNhMGUzNDI5OTZlNDA3YzU5 ZDgwDQo+IDhkNWEzZDBkODIwJTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0Mw JTdDMCU3QzYzNjU5NTANCj4gMzk3ODQ4MDgwODQmc2RhdGE9ZzJaZ0tieHQ3SkQlMkJLMlN1VEs0 V3NQQmFEN1ZMYXNrVzJSWUkyMTBuVkJjJQ0KPiAzRCZyZXNlcnZlZD0wDQo=