From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Void lookup limit of 2 exceeded) identity=mailfrom; client-ip=2a01:111:f400:fe06::620; helo=eur02-ve1-obe.outbound.protection.outlook.com; envelope-from=pankaj.bansal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on0620.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::620]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B7F0722436939 for ; Fri, 23 Feb 2018 02:58:44 -0800 (PST) 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=8Ym94qyNplLoUirz2JrXOmYJIZIElSK/+MpVRABJ+xo=; b=t/70SyZAFfPk2F53A21vP5YmPLZCTLCAYvKgN5OTAebT5FZVByNLZ3M1nvZLStjKcCFZ/R1hZa6r1RqzkXQNykWG7JWW7iV7XXWll1GlQ6JQq/Z9HGi1uFlkWiR+QuhNrzqEif+G3uykWuvaK+2klve3bSaEuKx+5MItUOgLOlQ= Received: from AM0PR0402MB3940.eurprd04.prod.outlook.com (52.133.40.140) by AM0PR0402MB3682.eurprd04.prod.outlook.com (52.133.38.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Fri, 23 Feb 2018 11:04:38 +0000 Received: from AM0PR0402MB3940.eurprd04.prod.outlook.com ([fe80::4815:8101:2a92:25ea]) by AM0PR0402MB3940.eurprd04.prod.outlook.com ([fe80::4815:8101:2a92:25ea%13]) with mapi id 15.20.0506.023; Fri, 23 Feb 2018 11:04:37 +0000 From: Pankaj Bansal To: Laszlo Ersek , Udit Kumar , Leif Lindholm CC: "michael.d.kinney@intel.com" , "edk2-devel@lists.01.org" , "ard.biesheuvel@linaro.org" , Meenakshi Aggarwal Thread-Topic: [edk2] [PATCH edk2-platforms 01/39] Silicon/NXP: Add support for Big Endian Mmio APIs Thread-Index: AQHTpwOBs6WgNXJNN0Obxj0PpJnLXaOvCB6AgAAFmACAADAhAIAA4+2AgAA3aICAACKogIABNlXQgAAPHICAABXfAIAABY8AgAAAT+A= Date: Fri, 23 Feb 2018 11:04:37 +0000 Message-ID: References: <1518771035-6733-1-git-send-email-meenakshi.aggarwal@nxp.com> <1518771035-6733-2-git-send-email-meenakshi.aggarwal@nxp.com> <20180221154601.nkbp2xmy3zb2xolm@bivouac.eciton.net> <20180221185818.arwfhombntutnt23@bivouac.eciton.net> <20180222115223.xtfpc7du22drfkju@bivouac.eciton.net> <2a1fa56f-98db-a1c1-d973-7e84cc7dc1fa@redhat.com> <946bd4f7-ed57-018c-00ca-cee154fcb2f0@redhat.com> <046cf3a9-d865-d651-f2a6-e242a4224d33@redhat.com> In-Reply-To: <046cf3a9-d865-d651-f2a6-e242a4224d33@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pankaj.bansal@nxp.com; x-originating-ip: [192.88.169.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR0402MB3682; 7:88WfIXpF7wLZ43d/k3FWUxOffsIefaHdfbmpg+S3Of+mtybvE2NNdMl3V8lCvyXRPsOMUT65G9qEkOVdynK4SMbiQspEgiJbh2Lnd0bEbWHi0HmnHXuElkb5Dyeyp2vZj6f0x3h88eGgDTR6NLMx28sF3yvlD8CQ+LWo7yf/7j0kO4ATNM/XfEs1kP2dAbB4Nw8cgEWSXFyNdHTRiLAYhSEKTggoYdYp1WJog0jbnD45CDe8EszyVbag6DDLOCOM x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(39380400002)(376002)(396003)(39860400002)(346002)(366004)(53754006)(13464003)(189003)(199004)(8676002)(2906002)(25786009)(5660300001)(316002)(55016002)(6246003)(2900100001)(53936002)(9686003)(4326008)(26005)(186003)(3660700001)(14454004)(68736007)(478600001)(8936002)(97736004)(81166006)(53546011)(6506007)(59450400001)(81156014)(102836004)(74316002)(6116002)(305945005)(3280700002)(7736002)(33656002)(86362001)(106356001)(2950100002)(93886005)(5250100002)(66066001)(6436002)(76176011)(110136005)(105586002)(99286004)(7696005)(229853002)(3846002)(54906003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0402MB3682; H:AM0PR0402MB3940.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 3c64fbd1-b48e-4f2a-0851-08d57aad3ab3 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:AM0PR0402MB3682; x-ms-traffictypediagnostic: AM0PR0402MB3682: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(185117386973197)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(3231101)(944501161)(10201501046)(6055026)(6041288)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:AM0PR0402MB3682; BCL:0; PCL:0; RULEID:; SRVR:AM0PR0402MB3682; x-forefront-prvs: 0592A9FDE6 received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: cP+YqBVtqtPtO1b+dooPFlHBd7fKkoRuLtl7MiyctFe0h83ZA24l61Fi58PL0mkVkSBmLRTyRW6v/IwmLLD7ZoA2f+FEi2jNhJwWKqcT9gb1lrUDKhtQyQDoyxtY8ChSWY8idZ4Je9CLKRlGuUXRJyBjk64s+Zti0tGlbbFhUNU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c64fbd1-b48e-4f2a-0851-08d57aad3ab3 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2018 11:04:37.4129 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3682 Subject: Re: [PATCH edk2-platforms 01/39] Silicon/NXP: Add support for Big Endian Mmio APIs X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Feb 2018 10:58:45 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQWxsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVy c2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkg MjMsIDIwMTggNDoyOSBQTQ0KPiBUbzogVWRpdCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPjsg UGFua2FqIEJhbnNhbA0KPiA8cGFua2FqLmJhbnNhbEBueHAuY29tPjsgTGVpZiBMaW5kaG9sbSA8 bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiBDYzogbWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b207IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOw0KPiBhcmQuYmllc2hldXZlbEBsaW5hcm8ub3Jn OyBNZWVuYWtzaGkgQWdnYXJ3YWwNCj4gPG1lZW5ha3NoaS5hZ2dhcndhbEBueHAuY29tPg0KPiBT dWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCBlZGsyLXBsYXRmb3JtcyAwMS8zOV0gU2lsaWNvbi9O WFA6IEFkZCBzdXBwb3J0DQo+IGZvciBCaWcgRW5kaWFuIE1taW8gQVBJcw0KPiANCj4gT24gMDIv MjMvMTggMTE6MzksIFVkaXQgS3VtYXIgd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZl bC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmDQo+ID4+IE9mIExhc3psbyBFcnNlaw0K PiA+PiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDIzLCAyMDE4IDI6NTEgUE0NCj4gPj4gVG86IFBh bmthaiBCYW5zYWwgPHBhbmthai5iYW5zYWxAbnhwLmNvbT47IExlaWYgTGluZGhvbG0NCj4gPj4g PGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NCj4gPj4gQ2M6IG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsNCj4gPj4gYXJkLmJpZXNoZXV2ZWxAbGlu YXJvLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCBlZGsyLXBsYXRmb3JtcyAw MS8zOV0gU2lsaWNvbi9OWFA6IEFkZA0KPiA+PiBzdXBwb3J0IGZvciBCaWcgRW5kaWFuIE1taW8g QVBJcw0KPiA+Pg0KPiA+PiBPbiAwMi8yMy8xOCAwOTo0MCwgUGFua2FqIEJhbnNhbCB3cm90ZToN Cj4gPj4+IEhpIEFsbA0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMu MDEub3JnXSBPbiBCZWhhbGYNCj4gPj4+PiBPZiBMYXN6bG8gRXJzZWsNCj4gPj4+PiBTZW50OiBU aHVyc2RheSwgRmVicnVhcnkgMjIsIDIwMTggNzoyNiBQTQ0KPiA+Pj4+IFRvOiBMZWlmIExpbmRo b2xtIDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+DQo+ID4+Pj4gQ2M6IG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsNCj4gPj4+PiBhcmQuYmllc2hl dXZlbEBsaW5hcm8ub3JnDQo+ID4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggZWRrMi1w bGF0Zm9ybXMgMDEvMzldIFNpbGljb24vTlhQOiBBZGQNCj4gPj4gc3VwcG9ydA0KPiA+Pj4+IGZv ciBCaWcgRW5kaWFuIE1taW8gQVBJcw0KPiA+Pj4+DQo+ID4+Pj4gT24gMDIvMjIvMTggMTI6NTIs IExlaWYgTGluZGhvbG0gd3JvdGU6DQo+ID4+Pj4+IE9uIFRodSwgRmViIDIyLCAyMDE4IGF0IDA5 OjM0OjA1QU0gKzAxMDAsIExhc3psbyBFcnNlayB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+Pj4+IEJ1 dCB0aGF0IGJyaW5ncyBiYWNrIHRoZSBjb21wbGljYXRpb24gYXMgdG8gaG93IHdlIGhhdmUgYSBk cml2ZXINCj4gPj4+Pj4+PiB0aGF0IG5lZWRzIGFuIExFIElPIGxpYnJhcnkgdG8gd3JpdGUgb3V0 cHV0LCBhbmQgYSBCRSBJTyBsaWJyYXJ5DQo+ID4+Pj4+Pj4gdG8gbWFuaXB1bGF0ZSB0aGUgaGFy ZHdhcmUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQ2FuIHlvdSBwbGVhc2UgZXhwbGFpbiB0aGUgIndy aXRlIG91dHB1dCIgdXNlIGNhc2UgbW9yZSBwcmVjaXNlbHk/DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g TXkgdGhpbmtpbmcgd291bGQgYmUgdGhpczoNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAtIFVzZSB0aGUg SW9MaWIgY2xhc3MgZGlyZWN0bHkgZm9yICJ3cml0aW5nIG91dHB1dCIgaW4gbGl0dGxlDQo+ID4+ Pj4+PiBlbmRpYW4gYnl0ZSBvcmRlciAod2hpY2ggaXMgc3RpbGwgdW5jbGVhciB0byBtZSBzb3Jy eSkuDQo+ID4+Pj4+DQo+ID4+Pj4+IElmIHRoZSBJb0xpYiBjbGFzcyBpcyBtYXBwZWQgdG8gYSBh biBpbnN0YW5jZSB0aGF0IGJ5dGUtc3dhcHMNCj4gPj4+Pj4gKGhlcmV0byByZWZlcnJlZCB0byBh cyBCZUlvTGliIGlmIElvTGliU3dhcCBpcyB1bnN1aXRhYmxlKSwgd291bGQNCj4gPj4+Pj4gd2Ug bm90IHRoZW4gZW5kIHVwIG1hcHBpbmcgdGhlIG5vbi1zd2FwcGluZywgY3VycmVudGx5DQo+IGlt cGxlbWVudGVkDQo+ID4+Pj4+IGluIEJhc2VMaWJJb0ludHJpbnNpYywgdmFyaWFudCBhcyBCZUlv TGliPyBPciBpZiBub3QsIGRvIHdlIGVuZCB1cA0KPiA+Pj4+PiBuZWVkaW5nIHRvIGR1cGxpY2F0 ZWQgYWxsIElvTGliIGltcGxlbWVudGF0aW9uIC5pbmZzIHRvIHByb3ZpZGUgYW4NCj4gPj4+Pj4g SW9MaWIgYW5kIGEgQmVJb0xpYiBmb3IgZWFjaD8NCj4gPj4+Pj4NCj4gPj4+Pj4gSXQncyBhdCB0 aGF0IHBvaW50IEkgYnVyc3QgYW4gYW5ldXJ5c20uDQo+ID4+Pj4+IEFtIEkgb3ZlcnRoaW5raW5n L3VuZGVydGhpbmtpbmcgdGhpcz8NCj4gPj4+Pg0KPiA+Pj4+IFdlIG5lZWQgdHdvIGxpYnJhcnkg Y2xhc3Nlcywgb25lIGZvciB0YWxraW5nIHRvIExFIGRldmljZXMgYW5kDQo+ID4+Pj4gYW5vdGhl ciB0bw0KPiA+PiBCRQ0KPiA+Pj4+IGRldmljZXMuIFRoZXNlIHNob3VsZCBiZSB1c2FibGUgaW4g YSBnaXZlbiBtb2R1bGUgYXQgdGhlIHNhbWUgdGltZSwNCj4gPj4+PiBhcw0KPiA+PiBBcmQNCj4g Pj4+PiBzYXlzLg0KPiA+Pj4+DQo+ID4+Pj4gQm90aCBsaWJyYXJ5IGNsYXNzZXMgbmVlZCB0byB3 b3JrIG9uIGJvdGggTEUgYW5kIEJFIENQVXMgKHdvcmtpbmcNCj4gPj4+PiBmcm9tDQo+ID4+IHlv dXINCj4gPj4+PiBzdWdnZXN0aW9uIHRoYXQgVUVGSSBtaWdodCBncm93IEJFIENQVSBzdXBwb3J0 IGF0IHNvbWUgcG9pbnQpLg0KPiA+Pj4+IFdoZXRoZXIgdGhhdCBpcyBpbXBsZW1lbnRlZCBieSBk dW1iLCBzZXBhcmF0ZSBsaWJyYXJ5IGluc3RhbmNlcw0KPiA+PiAoeWllbGRpbmcgaW4NCj4gPj4+ PiB0b3RhbCAyKjI9NCBsaWJyYXJ5IGluc3RhbmNlcyksIG9yIGJ5IHNtYXJ0LA0KPiA+Pj4+IENQ VS1lbmRpYW5uZXNzLWFnbm9zdGljDQo+ID4+IGxpYnJhcnkNCj4gPj4+PiBpbnN0YW5jZXMgKGlu IHRvdGFsLCAyKSwgaXMgYSBkaWZmZXJlbnQgcXVlc3Rpb24uDQo+ID4+Pj4NCj4gPj4+PiBOb3Rl IHRoYXQgc3VjaCAic21hcnRzIiBjb3VsZCBiZSBsZXNzIHRoYW4gdHJpdmlhbCB0byBpbXBsZW1l bnQ6DQo+ID4+Pj4gLSBjaGVjayBDUFUgZW5kaWFubmVzcyBpbiBlYWNoIGxpYnJhcnkgQVBJPw0K PiA+Pj4+IC0gb3IgY2hlY2sgaW4gdGhlIGxpYiBjb25zdHJ1Y3RvciBvbmx5LCBhbmQgZmxpcCBz b21lIGZ1bmN0aW9uIHBvaW50ZXJzPw0KPiA+Pj4+IC0gdXNlIGEgZHluYW1pYyBQQ0QgZm9yIGNh Y2hpbmcgQ1BVIGVuZGlhbm5lc3M/DQo+ID4+Pj4gLSB1c2UgYSBIT0IgZm9yIHRoZSBzYW1lPw0K PiA+Pj4+IC0gdXNlIGEgbGliIGdsb2JhbCB2YXJpYWJsZSAoZm9yIGNhY2hpbmcgb25seSBvbiB0 aGUgbW9kdWxlIGxldmVsKT8NCj4gPj4+Pg0KPiA+Pj4+IEkgdGhpbmsgdGhlIHNvbHV0aW9uIHRo YXQgc2F2ZXMgdGhlIG1vc3Qgb24gdGhlICpzb3VyY2UqIGNvZGUgc2l6ZSBpczoNCj4gPj4+PiAt IGludHJvZHVjZSB0aGUgQmVJb0xpYiBjbGFzcw0KPiA+Pj4+IC0gZHVwbGljYXRlIHRoZSBNTUlP IGZ1bmN0aW9ucyBmcm9tIEJhc2VJb0xpYkludHJpbnNpYyB0byB0aGUgb25lDQo+ID4+Pj4gICBC ZUlvTGliIGluc3RhbmNlIHRoYXQgd2UgaW50cm9kdWNlDQo+ID4+Pj4gLSBtb2RpZnkgdGhlIE1N SU8gZnVuY3Rpb25zIGluICpib3RoKiBsaWIgaW5zdGFuY2VzIChvcmlnaW5hbCBMRSwgYW5kDQo+ ID4+Pj4gICBuZXcgQkUpLCBsaWtlIHRoaXM6DQo+ID4+Pj4NCj4gPj4+PiAgIC0gSWYgdGhlIENQ VSBhcmNoaXRlY3R1cmUgaXMga25vd24gdG8gYmUgYm91bmQgdG8gYSBzaW5nbGUgZW5kaWFubmVz cywNCj4gPj4+PiAgICAgdGhlbiBoYXJkY29kZSB0aGUgYXBwcm9wcmlhdGUgb3BlcmF0aW9uLiBU aGlzIGNhbiBiZSBkb25lIHdpdGgNCj4gPj4+PiAgICAgcHJlcHJvY2Vzc29yIG1hY3Jvcywgb3Ig d2l0aCB0aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnQgb2YgSU5GIGZpbGVzIC8NCj4gPj4+PiAgICAg c2VwYXJhdGUgc291cmNlIGZpbGVzLiBGb3IgZXhhbXBsZSwgb24gSUEzMiBhbmQgWDY0LCB0aGUg SW9MaWINCj4gPj4+PiAgICAgaW5zdGFuY2Ugc2hvdWxkIHdvcmsgdHJhbnNwYXJlbnRseSwgdW5j b25kaXRpb25hbGx5LCBhbmQgdGhlIEJlSW9MaWINCj4gPj4+PiAgICAgaW5zdGFuY2Ugc2hvdWxk IGJ5dGUtc3dhcCwgdW5jb25kaXRpb25hbGx5Lg0KPiA+Pj4+DQo+ID4+Pj4gICAtIE9uIG90aGVy IENQVSBhcmNoZXMsIGFsbCB0aGUgd2lkZXItdGhhbi1ieXRlIE1NSU8gZnVuY3Rpb25zLCBpbg0K PiA+Pj4+ICAgICAqYm90aCogbGliIGluc3RhbmNlcyBzaG91bGQgZG8gc29tZXRoaW5nIGxpa2Ug dGhpczoNCj4gPj4+Pg0KPiA+Pj4+ICAgICAvLw0KPiA+Pj4+ICAgICAvLyBhdCBmaWxlIHNjb3Bl DQo+ID4+Pj4gICAgIC8vDQo+ID4+Pj4gICAgIFNUQVRJQyBDT05TVCBVSU5UMTYgbU9uZSA9IDE7 DQo+ID4+Pj4NCj4gPj4+PiAgICAgLy8NCj4gPj4+PiAgICAgLy8gYXQgZnVuY3Rpb24gc2NvcGUN Cj4gPj4+PiAgICAgLy8NCj4gPj4+PiAgICAgaWYgKCooQ09OU1QgVUlOVDggKikmbU9uZSA9PSAx KSB7DQo+ID4+Pj4gICAgICAgLy8NCj4gPj4+PiAgICAgICAvLyBDUFUgaW4gTEUgbW9kZToNCj4g Pj4+PiAgICAgICAvLyAtIHdvcmsgdHJhbnNwYXJlbnRseSBpbiB0aGUgSW9MaWIgaW5zdGFuY2UN Cj4gPj4+PiAgICAgICAvLyAtIGJ5dGUtc3dhcCBpbiB0aGUgQmVJb0xpYiBpbnN0YW5jZQ0KPiA+ Pj4+ICAgICAgIC8vDQo+ID4+Pj4gICAgIH0gZWxzZSB7DQo+ID4+Pj4gICAgICAgLy8NCj4gPj4+ PiAgICAgICAvLyBDUFUgaW4gQkUgbW9kZToNCj4gPj4+PiAgICAgICAvLyAtIGJ5dGUtc3dhcCBp biB0aGUgSW9MaWIgaW5zdGFuY2UNCj4gPj4+PiAgICAgICAvLyAtIHdvcmsgdHJhbnNwYXJlbnRs eSBpbiB0aGUgQmVJb0xpYiBpbnN0YW5jZQ0KPiA+Pj4+ICAgICAgIC8vDQo+ID4+Pj4gICAgIH0N Cj4gPj4+DQo+ID4+PiBJIHN1Z2dlc3QgdGhpcyBhcHByb2FjaCA6DQo+ID4+Pg0KPiA+Pj4gMS4g QWRkIEJlTW1pbyogZnVuY3Rpb25zIGluIGV4aXN0aW5nIElvTGliLiBCZU1taW8qIGZ1bmN0aW9u cyB3aWxsDQo+ID4+PiBzd2FwDQo+ID4+IHRoZSBpbnB1dCBiZWZvcmUgd3JpdGUgYW5kIHN3YXAg b3V0cHV0IGFmdGVyIHJlYWQgYW5kIHNvIG9uLg0KPiA+Pj4gICAgIE1taW8qIGZ1bmN0aW9ucyB3 aWxsIG5vdCBwZXJmb3JtIGFueSBieXRlIHN3YXBwaW5nIDIuIGNyZWF0ZQ0KPiA+Pj4gc2Vjb25k IGluc3RhbmNlIChhIGNvcHkpIG9mIHRoaXMgSW9MaWIgZm9yIENQVXMgdGhhdCBhcmUgQmlnIEVu ZGlhbi4NCj4gPj4gV2UgY2FuIGNhbGwgaXQgQmlnRW5kaWFuSW9MaWIuDQo+ID4+PiAgICAgIElu IHRoaXMgbGlicmFyeSBNbWlvKiBmdW5jdGlvbnMgd2lsbCBzd2FwIHRoZSBpbnB1dCBiZWZvcmUN Cj4gPj4+IHdyaXRlIGFuZA0KPiA+PiBzd2FwIG91dHB1dCBhZnRlciByZWFkIGFuZCBzbyBvbi4N Cj4gPj4+ICAgICAgQmVNbWlvKiBmdW5jdGlvbnMgd2lsbCBub3QgcGVyZm9ybSBhbnkgYnl0ZSBz d2FwcGluZy4NCj4gPj4+IDMuIEluY2x1ZGUgdGhlIGluc3RhbmNlIG9mIElvTGliIGluIGRzYyBm aWxlIGJhc2VkIG9uIGNwdSBlbmRpYW5uZXNzDQo+ID4+PiB0aGF0IHRoZQ0KPiA+PiBwbGF0Zm9y bSB3YW50cyB0byB1c2UuIGkuZS4NCj4gPj4+ICAgICBJZiBCSUdfRU5ESUFOID09IEZBTFNFDQo+ ID4+PiAgICAgICAgSW9MaWIgfCAuLlwuLlwuLlxJb0xpYg0KPiA+Pj4gICAgRWxzZQ0KPiA+Pj4g ICAgICAgSW9MaWIgfCAuLlwuLlwuLlxCaWdFbmRpYW5Jb0xpYiA0LiBUaGUgZGV2aWNlcyB0aGF0 IGFyZSBCaWcNCj4gPj4+IGVuZGlhbiBpbiBwbGF0Zm9ybSB3aWxsIGFsd2F5cyBjYWxsIEJlTW1p byoNCj4gPj4gZnVuY3Rpb25zLiBUaGV5IG5lZWQgbm90IGNoZWNrIENQVSBlbmRpYW5uZXNzLg0K PiA+Pj4gNS4gVGhlIGRldmljZXMgdGhhdCBhcmUgTGl0dGxlIGVuZGlhbiBpbiBwbGF0Zm9ybSB3 aWxsIGFsd2F5cyBjYWxsDQo+ID4+PiBNbWlvKg0KPiA+PiBmdW5jdGlvbnMuIFRoZXkgbmVlZCBu b3QgY2hlY2sgQ1BVIGVuZGlhbm5lc3MuDQo+ID4+DQo+ID4+IFRoaXMgY2FuIHdvcmsgdG9vLCBi dXQgdGhlcmUgaXMgYSBkb3duc2lkZTogYSBsYXJnZSBudW1iZXIgb2YgSW9MaWINCj4gPj4gaW5z dGFuY2VzIGV4aXN0IGluIHRoZSB0cmVlIGFscmVhZHkuIElmIHlvdSBhZGQgdGhlIEJlTW1pbyog ZnVuY3Rpb25zDQo+ID4+IHRvIHRoZSBleGlzdGVudCBJb0xpYiBjbGFzcywgeW91J2xsIGhhdmUg dG8gZHVwbGljYXRlIHRoZQ0KPiA+PiBpbXBsZW1lbnRhdGlvbiB0byBhbGwgaW5zdGFuY2VzIChp ZGVudGljYWxseSwgSSB0aGluaykuDQo+ID4+DQo+ID4+IFdlJ3ZlIGhhZCB0aGlzIGRlYmF0ZSBp biB0aGUgcGFzdC4gQmFjayB0aGVuIGl0IHdhcyBhYm91dCBJb0ZpZm8NCj4gPj4gcm91dGluZXMu IEkgYXJndWVkIGZvciBhbiBJb0ZpZm8gbGliIGNsYXNzLiBVbHRpbWF0ZWx5IHRoZSBJb0ZpZm8N Cj4gPj4gcm91dGluZXMgd2VyZSBhZGRlZCB0byBJb0xpYiwgYW5kIHRoZXkgaGFkIHRvIGJlIGlt cGxlbWVudGVkIGZvciBtYW55DQo+ID4+IG1vcmUgbGlicmFyeSBpbnN0YW5jZXMgdGhhbiBjbGll bnQgY29kZSB3b3VsZCBoYXZlIGFjdHVhbGx5IHJlcXVpcmVkLg0KPiA+PiAoU2VlIHRoZSBzZXJp ZXMgYXQgMTNhNTBhNmZlMWRjLi4yYjYzMTM5MGY5ZjUuKSBJbiB0dXJuIHRoaXMgcnVucyB0aGUN Cj4gPj4gcmlzayBvZiBhZGRpbmcgdW50ZXN0ZWQgY29kZS4NCj4gPj4NCj4gPj4gUmVnYXJkaW5n IHRoZSBpbnN0YW5jZXMgZm9yIEJFIENQVXM6IHRoZSBuYW1lIHNob3VsZCBsaWtlbHkgYmUNCj4g Pj4gQmFzZUlvTGliQmlnRW5kaWFuIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBJbiBsaWIgaW5zdGFu Y2UgbmFtZXMsIHRoZQ0KPiA+PiBsaWIgY2xhc3MgbmFtZSBpcyB1c3VhbGx5IHByZWZpeGVkIHdp dGggdGhlIGZpcm13YXJlIHBoYXNlcyB3aGVyZSB0aGUNCj4gPj4gaW5zdGFuY2UgaXMgdXNhYmxl LCBhbmQgaGludHMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uIG9yIGNvbnN0cmFpbnRzDQo+ID4+ IGFyZSBhZGRlZCBhcyBhIHN1ZmZpeC4NCj4gPg0KPiA+IEkgc2VlIGxpa2UgYmVsb3cNCj4gPiBD UFUgCQkJSVAJCUNhbGwJCQlMaWINCj4gPiBMRQkJCUxFCQlNTUlPICAgICAgIAkJQmFzZUlvTGli DQo+ID4gTEUJCQlCRQkJU3dhcHBlZE1NSU8NCj4gCUJhc2VJb0xpYkV4DQo+ID4gQkUJCQlCRQkJ TU1JTwkJCUJhc2VJb0xpYg0KPiA+IEJFCQkJTEUgCQlTd2FwcGVkTU1JTw0KPiBCYXNlSW9MaWJF eA0KPiANCj4gSW4gbXkgb3BpbmlvbiwgdGhpcyBpcyB3cm9uZy4gVGhlICJDYWxsIiBjb2x1bW4g c2hvdWxkIG5vdCB2YXJ5IHdpdGggQ1BVDQo+IGVuZGlhbm5lc3MsIGl0IHNob3VsZCBvbmx5IHZh cnkgd2l0aCAiSVAiIChkZXZpY2UpIGVuZGlhbm5lc3MuDQo+IA0KPiBCYXNpY2FsbHkgeW91IGFy ZSBwdXR0aW5nIHRoZSBlbnRpcmUgd29yayBvbiB0aGUgZHJpdmVyIGNvZGUsIHRvIGZpZ3VyZSBv dXQNCj4gd2hldGhlciBzd2FwcGluZyB3aWxsIGJlIG5lY2Vzc2FyeSBvciBub3QuIEZvciB0aGF0 LCB0aGUgZHJpdmVyIGhhcyB0byBjb25zdWx0DQo+IHRoZSBieXRlIG9yZGVyIG9mICpib3RoKiB0 aGUgQ1BVICphbmQqIHRoZSBkZXZpY2UsIGFuZCB0aGVuIGNhbGwNCj4gInRyYW5zcGFyZW50IiBv ciAic3dhcHBlZCIgTU1JTyBmdW5jdGlvbnMuDQo+IA0KPiBXaGF0IEkgYW0gc3VnZ2VzdGluZyBp cyB0aGF0IHRoZSBkcml2ZXIgY2FyZSBhYm91dCBkZXZpY2UgYnl0ZSBvcmRlciBvbmx5Lg0KPiBU aGlzIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRyaXZlciBjYWxscyBNbWlvV3JpdGUzMigp IG9yDQo+IEJlTW1pb1dyaXRlMzIoKS4NCj4gDQo+IEluIHR1cm4sIHdoZXRoZXIgb3Igbm90IHRo b3NlIGZ1bmN0aW9ucyBieXRlLXN3YXAsIGFjY29yZGluZyB0byBDUFUgYnl0ZQ0KPiBvcmRlciwg aXMgYW4gaW50ZXJuYWwgbWF0dGVyIG9mIHRoZSBsaWJyYXJpZXMuDQo+IA0KPiAgIElQICBDYWxs ICAgICAgICAgICBMaWIgICAgICBDUFUgIEJ5dGUtc3dhcCB3aXRoaW4gTGliDQo+ICAgLS0gIC0t LS0tLS0tLS0tLS0gIC0tLS0tLS0gIC0tLSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICBMRSAg TW1pb1dyaXRlMzIgICAgSW9MaWIgICAgTEUgICBubw0KPiAgIExFICBNbWlvV3JpdGUzMiAgICBJ b0xpYiAgICBCRSAgIHllcw0KPiAgIEJFICBCZU1taW9Xcml0ZTMyICBCZUlvTGliICBMRSAgIHll cw0KPiAgIEJFICBCZU1taW9Xcml0ZTMyICBCZUlvTGliICBCRSAgIG5vDQo+IA0KPiBPYnZpb3Vz bHksIHRoZSBlbmQgcmVzdWx0IGlzIHRoZSBzYW1lOyB0aGUgcXVlc3Rpb24gaXMgd2hhdCAqY29u Y2VwdHMqIHRoZQ0KPiBkZXZpY2UgZHJpdmVyIGhhcyB0byBjYXJlIGFib3V0Lg0KPiANCj4gVW5k ZXIgeW91ciBzY2hlbWUsIGV2ZXJ5IGRldmljZSBkcml2ZXIgaGFzIHRvIGNhcmUgYWJvdXQgY29u Y2VwdHMgc3VjaCBhcw0KPiAiZGV2aWNlIGJ5dGUgb3JkZXIiLCAiY3B1IGJ5dGUgb3JkZXIiLCBh bmQgInN3YXBwaW5nIi4NCj4gDQo+IFVuZGVyIG15IHNjaGVtZSwgZXZlcnkgZGV2aWNlIGRyaXZl ciBoYXMgdG8gY2FyZSBhYm91dCAiZGV2aWNlIGJ5dGUgb3JkZXIiLg0KDQpJIGFncmVlIHdpdGgg TGFzemxvLiBEZXZpY2UgZHJpdmVyJ3MgY29uY2VybiBzaG91bGQgYmUgZGV2aWNlJ3MgZW5kaWFu bmVzcyBOT1QgY3B1IGVuZGlhbm5lc3MuDQpIb3dldmVyIExhc3psbywgd2l0aCB0aGUgbWV0aG9k IHlvdSBzdWdnZXN0ICh1c2luZyBTVEFUSUMgQ09OU1QgVUlOVDE2IG1PbmUpLCB3b3VsZCBpdCBu b3QgYWRkIGRlbGF5IGluIGVhY2ggTW1pbyBPcGVyYXRpb24gPw0KDQpJIGFtIGNvbmNlcm5lZCBh Ym91dCBib290IGRlbGF5IHVzaW5nIHRoaXMgYXBwcm9hY2guDQoNCj4gDQo+IExhc3psbw0K