From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.70.53; helo=eur03-am5-obe.outbound.protection.outlook.com; envelope-from=marvin.haeuser@outlook.com; receiver=edk2-devel@lists.01.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070053.outbound.protection.outlook.com [40.92.70.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 884D9203BEA2E for ; Thu, 17 May 2018 04:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=msie9LMs8yvC4xzA7Ma5b5z+eGrNDtcvuj+01t+k78w=; b=qeS+YHHa/wupXGuH9l/owYXzldZ9ecKmLa5azwmb0Q6F0F9qEPkhCq1ggRi4Fo8wyei1skKyNSbXpXNY1DXIhOEBDheP4Sko/AjL8CZFlcFDgBQsRvfzvLK4W0xTlXRmyEZMQ9xrc/yEacShdar4VzkiC/qecjlovZeaN1pwuMXIhxMKrAG+6LvYLJLfu0qK9rXdOsRtKpvY9H0gK4fXJubToL/hGCIJ0eQuM3PO0k/P3jo3pfYT0I2ZRlpkA0HPJIuwV2Ut7m7xZnNkBYAOSCGxyYrIT/wIys6b6WQJyqF8pddJZTnHv7Egd7RLI1jXpFB/MIrP3/3pHrMGpxbalg== Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com (10.152.18.54) by VE1EUR03HT048.eop-EUR03.prod.protection.outlook.com (10.152.19.127) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.735.16; Thu, 17 May 2018 11:43:12 +0000 Received: from VI1PR0801MB1790.eurprd08.prod.outlook.com (10.152.18.53) by VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.735.16 via Frontend Transport; Thu, 17 May 2018 11:43:12 +0000 Received: from VI1PR0801MB1790.eurprd08.prod.outlook.com ([fe80::7010:5d5e:8dcf:d92e]) by VI1PR0801MB1790.eurprd08.prod.outlook.com ([fe80::7010:5d5e:8dcf:d92e%17]) with mapi id 15.20.0776.010; Thu, 17 May 2018 11:43:12 +0000 From: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= To: "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" , "eric.dong@intel.com" , "ard.biesheuvel@linaro.org" , "jordan.l.justen@intel.com" , "gsomlo@gmail.com" , "star.zeng@intel.com" , Laszlo Ersek Thread-Topic: [edk2] Proposition of a BmEnumerateBootOptions() hook. Thread-Index: AdPrsgMo2EIXJLdYQImjwNC1Y2yr9AAc9lEAAABs7yAACxpkAAACocsgAAI81gAAAcNuIABRkHoAAAe0apA= Date: Thu, 17 May 2018 11:43:12 +0000 Message-ID: References: <12b0e557-4f3b-3766-1e52-c069c02b692e@redhat.com> <9d7aa3e0-d342-ab5a-f54b-2a853a5fcf57@redhat.com> <2aaccb36-5b8b-6f63-a9bb-7f3e7910ae2f@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5BC9E86C@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5BC9E86C@SHSMSX104.ccr.corp.intel.com> Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:33B2C0A5BD695F82E8C9BD3381FE9AEAE971236A63A871138EF2B879EB6C6357; UpperCasedChecksum:24195E25A43B68AF352F80FF854231D3B7ECD24EF12A046ABAC589BF15E2572F; SizeAsReceived:7958; Count:46 x-tmn: [/gks/bP3q87PquZ9xs2zvC2deYN5WZ9r] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VE1EUR03HT048; 7:0fVExhR5LrQNPV/GfqLCdKRGa7DddkmyNmPwAdELKILL3/yVRsnzF412IqZyEilkanwQYjmvn8EeOe5YF3GauDc0UmXFRkLYNKrtdZzBKtqrByy/e4oWnXon1XJEf6nZcDs6Gr4GaiXF/OP93Vglh0ugM4DneBe4HLljQ+cPuPjPIt5AvunBt/yPK3ySsCPehjN9CqrNMW0eVTnlY4eHGZFqMCtI3rFYUqIntMmu0pA9qveCjF0bGE9apV7sZ3lm x-incomingheadercount: 46 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125466)(1603101448)(1701031045); SRVR:VE1EUR03HT048; x-ms-traffictypediagnostic: VE1EUR03HT048: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:VE1EUR03HT048; BCL:0; PCL:0; RULEID:; SRVR:VE1EUR03HT048; x-forefront-prvs: 067553F396 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(6029001)(51914003)(52314003)(13464003)(189003)(199004)(26005)(102836004)(3280700002)(2900100001)(20460500001)(486006)(5890100001)(5660300001)(966005)(305945005)(2351001)(87572001)(2501003)(6246003)(85202003)(54906003)(106356001)(105586002)(4326008)(25786009)(86362001)(72206003)(39060400002)(68736007)(6436002)(8936002)(8676002)(33656002)(476003)(81156014)(97736004)(6346003)(426003)(7696005)(76176011)(53546011)(5640700003)(446003)(55016002)(99286004)(6306002)(3660700001)(85182001)(5250100002)(59450400001)(104016004)(229853002)(14454004)(82202002)(6916009)(74316002)(11346002)(93886005); DIR:OUT; SFP:1901; SCL:1; SRVR:VE1EUR03HT048; H:VI1PR0801MB1790.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:; received-spf: None (protection.outlook.com: outlook.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Marvin.Haeuser@outlook.com; x-microsoft-antispam-message-info: TYbxAp8LNqgdxDk0wywaEXw2WAs7qxiceBVCD6Pe3bIDuUXc9g5+NHclKounSm0WsyEKakJAL5rktj3iE8mWRpXeZ5Lh4lrujou6Qjp1WP4ADNsLv/kBMvCm8GMvrMxehtNEXE5OM8GYxQUCF9/w7gn0aR/UiL7/6WNI6Knto3UM6neNVNoInO7UAhS3um35 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: ba804306-6b21-4326-c869-08d5bbeb5ee8 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 7181d4b0-87d6-4f4e-ba33-0d3746212cec X-MS-Exchange-CrossTenant-Network-Message-Id: ba804306-6b21-4326-c869-08d5bbeb5ee8 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 7181d4b0-87d6-4f4e-ba33-0d3746212cec X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2018 11:43:12.6034 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT048 Subject: Re: Proposition of a BmEnumerateBootOptions() hook. 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: Thu, 17 May 2018 11:43:25 -0000 Content-Language: de-DE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB5b3VyIGNvbW1lbnQsDQpDb21tZW50cyBhcmUgaW5saW5lDQoNClJlZ2FyZHMs DQpNYXJ2aW4uDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmksIFJ1 aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXkgMTcsIDIwMTgg OTo1OCBBTQ0KPiBUbzogTWFydmluIEjDpHVzZXIgPE1hcnZpbi5IYWV1c2VyQG91dGxvb2suY29t PjsgTGFzemxvIEVyc2VrDQo+IDxsZXJzZWtAcmVkaGF0LmNvbT47IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgYXJkLmJpZXNo ZXV2ZWxAbGluYXJvLm9yZzsgSnVzdGVuLA0KPiBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGlu dGVsLmNvbT47IGdzb21sb0BnbWFpbC5jb207IFplbmcsIFN0YXINCj4gPHN0YXIuemVuZ0BpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMl0gUHJvcG9zaXRpb24gb2YgYSBCbUVudW1lcmF0 ZUJvb3RPcHRpb25zKCkgaG9vay4NCj4gDQo+IA0KPiANCj4gVGhhbmtzL1JheQ0KPiANCj4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGVkazItZGV2ZWwgPGVkazItZGV2 ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmc+IE9uIEJlaGFsZiBPZiBNYXJ2aW4NCj4gPiBIw6R1c2Vy DQo+ID4gU2VudDogV2VkbmVzZGF5LCBNYXkgMTYsIDIwMTggMToxNSBBTQ0KPiA+IFRvOiBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4g PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRv bmdAaW50ZWwuY29tPjsNCj4gPiBhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnOyBKdXN0ZW4sIEpv cmRhbiBMDQo+ID4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBnc29tbG9AZ21haWwuY29t OyBaZW5nLCBTdGFyDQo+ID4gPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6 IFtlZGsyXSBQcm9wb3NpdGlvbiBvZiBhIEJtRW51bWVyYXRlQm9vdE9wdGlvbnMoKSBob29rLg0K PiA+DQo+ID4gVGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrIQ0KPiA+IENvbW1lbnRzIGlubGluZQ0K PiA+DQo+ID4gUmVnYXJkcywNCj4gPiBNYXJ2aW4uDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t Pg0KPiA+ID4gU2VudDogVHVlc2RheSwgTWF5IDE1LCAyMDE4IDY6MTIgUE0NCj4gPiA+IFRvOiBN YXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+OyBlZGsyLQ0KPiA+ID4g ZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiBDYzogZ3NvbWxvQGdtYWlsLmNvbTsgYXJkLmJpZXNo ZXV2ZWxAbGluYXJvLm9yZzsgcnVpeXUubmlAaW50ZWwuY29tOw0KPiA+ID4gZXJpYy5kb25nQGlu dGVsLmNvbTsgc3Rhci56ZW5nQGludGVsLmNvbTsgam9yZGFuLmwuanVzdGVuQGludGVsLmNvbQ0K PiA+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBQcm9wb3NpdGlvbiBvZiBhIEJtRW51bWVyYXRlQm9v dE9wdGlvbnMoKSBob29rLg0KPiA+ID4NCj4gPiA+IE9uIDA1LzE1LzE4IDE3OjM4LCBNYXJ2aW4g SMOkdXNlciB3cm90ZToNCj4gPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiA+PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gPj4gU2Vu dDogVHVlc2RheSwgTWF5IDE1LCAyMDE4IDM6NTMgUE0NCj4gPiA+ID4+IFRvOiBNYXJ2aW4gSMOk dXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+OyBlZGsyLQ0KPiA+ID4gPj4gZGV2ZWxA bGlzdHMuMDEub3JnDQo+ID4gPiA+PiBDYzogZXJpYy5kb25nQGludGVsLmNvbTsgc3Rhci56ZW5n QGludGVsLmNvbTsNCj4gPiA+ID4+IGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb207IGFyZC5iaWVz aGV1dmVsQGxpbmFyby5vcmc7DQo+ID4gPiA+PiBydWl5dS5uaUBpbnRlbC5jb207IEdhYnJpZWwg TC4gU29tbG8gKEdNYWlsKSA8Z3NvbWxvQGdtYWlsLmNvbT47DQo+ID4gPiA+PiBHZXJkIEhvZmZt YW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4gPiA+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gUHJv cG9zaXRpb24gb2YgYSBCbUVudW1lcmF0ZUJvb3RPcHRpb25zKCkNCj4gaG9vay4NCj4gPiA+ID4+ DQo+ID4gPiA+PiBPbiAwNS8xNS8xOCAxNTowMiwgTWFydmluIEjDpHVzZXIgd3JvdGU6DQo+ID4g Pg0KPiA+ID4gPj4+IDMuMjogSSB0aGluayBhZGRpbmcgdGhlbSBhcyB2b2xhdGlsZSB2YXJpYWJs ZXMgaXMgdGhlIGJldHRlcg0KPiA+ID4gPj4+IGFwcHJvYWNoLCBleGNlcHQgZm9yIHBsYXRmb3Jt LXNwZWNpZmljIGNvZGUsIHdoaWNoIHNob3VsZCBiZQ0KPiA+ID4gPj4+IGNhcGFibGUgb2YgYWRk aW5nIE5WIG9wdGlvbnMuIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdGhhdA0KPiA+ID4g Pj4+IHVzdWFsbHkgdGhlIGZvdW5kIHZvbHVtZXMgYXJlIHJlbW92YWJsZSB2b2x1bWVzIChzdWNo IGFzIFVTQg0KPiA+ID4gPj4+IEZsYXNoDQo+ID4gPiA+Pj4gRHJpdmVzKSBhbmQgd2lsbCBiZSBj bGVhbmVkIGF3YXkgc29vbiBhZ2FpbiBhbnl3YXkuICJFeHRyYSB3aXNoZXMiDQo+ID4gPiA+Pj4g Zm9yIGJvb3Qgb3B0aW9ucyBzaG91bGQgYmUgYWRkZWQgdmlhIHRoZSBVRUZJIFNldHVwIG1lbnUg b3IgVUVGSQ0KPiA+IFNoZWxsLg0KPiA+ID4gPj4NCj4gPiA+ID4+IEkgY2FuJ3QgcmVhbGx5IGNv bW1lbnQgb24gdGhpcyAtLSB0aGUgZmFjdCB0aGF0IEJvb3QjIyMjIG9wdGlvbnMNCj4gPiA+ID4+ IGFyZQ0KPiA+ID4gPj4gbm9uLSB2b2xhdGlsZSBjb21lcyBmcm9tIHRoZSBVRUZJIHNwZWMuIEkn bSBub3QgaW1tZWRpYXRlbHkgc3VyZQ0KPiA+ID4gPj4gd2hhdCBJIHRoaW5rIG9mIHRoZWlyIHN1 Z2dlc3RlZCB2b2xhdGlsaXR5LCBidXQgdGhpcyBpcyBsaWtlbHkNCj4gPiA+ID4+IHNvbWV0aGlu ZyBmb3IgdGhlDQo+ID4gPiBVU1dHIHRvIGRpc2N1c3MuDQo+ID4gPiA+DQo+ID4gPiA+IEkgdGhp bmsgSSBtaWdodCBoYXZlIGJlZW4gdW5jbGVhciBoZXJlLCBJIHdhcyBzb2xlbHkgcmVmZXJyaW5n IHRvDQo+ID4gPiA+IHRoZSBCb290DQo+ID4gPiBvcHRpb25zIGNyZWF0ZWQgYnkgdGhlIGVudW1l cmF0aW9uIHByb2Nlc3MgYW5kIG5vdCBCb290IyMjIyBpbg0KPiBnZW5lcmFsLg0KPiA+ID4gPiBJ IHdvdWxkbid0IGtub3cgb2YgYW55dGhpbmcgcmVzdHJpY3RpbmcgYWxsIEJvb3QjIyMjIHZhcmlh YmxlcyB0bw0KPiA+ID4gPiBiZSBOViwgZG8NCj4gPiA+IHlvdSBoYXBwZW4gdG8gaGF2ZSBhIHF1 b3RlPw0KPiA+ID4NCj4gPiA+IFNlZSAiMy4zIEdsb2JhbGx5IERlZmluZWQgVmFyaWFibGVzIiBh bmQgIlRhYmxlIDEwLiBHbG9iYWwgVmFyaWFibGVzIg0KPiA+ID4gaW4gdGhlDQo+ID4gPiBVRUZJ LTIuNyBzcGVjOg0KPiA+ID4NCj4gPiA+ICAgWy4uLl0gVGhlIHZhcmlhYmxlcyB3aXRoIGFuIGF0 dHJpYnV0ZSBvZiBOViBhcmUgbm9udm9sYXRpbGUuIFsuLi5dDQo+ID4gPg0KPiA+ID4gICBbLi4u XQ0KPiA+ID4NCj4gPiA+ICAgVmFyaWFibGUgTmFtZSAgQXR0cmlidXRlICAgRGVzY3JpcHRpb24N Cj4gPiA+ICAgLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tICAgLS0tLS0tLS0tLS0NCj4gPiA+ICAg Wy4uLl0NCj4gPiA+ICAgQm9vdCMjIyMgICAgICAgTlYsIEJTLCBSVCAgWy4uLl0NCj4gPiA+ICAg Wy4uLl0NCj4gPg0KPiA+IEkgaGFkIGhvcGVkIGl0IHdhcyBhIHJlY29tbWVuZGF0aW9uLCBidXQg aW5kZWVkIGl0IHNlZW1zIHRvIGJlDQo+IG1hbmRhdG9yeS4NCj4gPiBXaGF0J3MgeW91ciBvcGlu aW9uIG9uIHRoaXMgZmFjdCBhbmQgaG93IGRvIHlvdSB0aGluayB0aGUgY2hhbmNlcyBhcmUNCj4g PiBOViBjb3VsZCBiZSBtYWRlIG9wdGlvbmFsPw0KPiA+DQo+ID4gPg0KPiA+ID4gPj4gU2Vjb25k LCBqdXN0IGJlY2F1c2UgYSBib290IG9wdGlvbiBmYWlscywgaXQgc2hvdWxkIG5vdCBiZSByZW1v dmVkLg0KPiA+ID4gPj4gRm9yIGV4YW1wbGUsIGEgbmV0Ym9vdCBvcHRpb24gY291bGQgZmFpbCwg b3IgYSBVU0IgZHJpdmUgbWlnaHQNCj4gPiA+ID4+IG5vdCBiZSBjb25uZWN0ZWQgKHRlbXBvcmFy aWx5KS4gSSBkb24ndCB0aGluayB0aGF0J3MgZ3JvdW5kcw0KPiA+ID4gPj4gZW5vdWdoIGZvciBz dW1tYXJpbHkgcmVtb3ZpbmcgYSBib290IG9wdGlvbiwgaW4gc2hhcmVkIHJlZmVyZW5jZQ0KPiBj b2RlLg0KPiA+ID4gPg0KPiA+ID4gPiBPaCwgSSB3YXMganVzdCB0YWxraW5nIGFib3V0IHRoZSBw b3NzaWJpbGl0eSwgYmVjYXVzZSB0aGUgY3VycmVudA0KPiA+ID4gPiBjb2RlIGRvZXMNCj4gPiA+ IHJlbW92ZSBvcHRpb25zIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4NCj4gPiA+ID4gSG93ZXZl ciwgZm9yIFVTQiBkZXZpY2VzIGFzIHlvdSBoYXZlIG1lbnRpb25lZCwgSSBkbyBzZWUgdGhpcyBn b29kDQo+ID4gPiBwcmFjdGljZSBzbyBsb25nIGFzIHRoZSBvcHRpb24gaXMgdm9sYXRpbGUuDQo+ ID4gPiA+IFRoZXJlIGlzIG5vIHBvaW50IGluIGV4cG9zaW5nIGEgYm9vdCBvcHRpb24gdG8gYSBy ZW1vdmFibGUgZGV2aWNlDQo+ID4gPiA+IHRoYXQgaXMNCj4gPiA+IG5vdCBhdHRhY2hlZCBpZiBu b3QgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSBGbGFzaCBjeWNsZXMgYXMgZmFyIGFzIEkgY2FuDQo+ IHRoaW5rLg0KPiA+ID4gPiBEbyB5b3UgaGFwcGVuIHRvIGhhdmUgd29ycmllcyBhYm91dCBhIHNj ZW5hcmlvIEkgZGlkIG5vdCBjb25zaWRlcj8NCj4gPiA+DQo+ID4gPiBTdXJlOyBpdCdzIGEgc2lt cGxlIHNjZW5hcmlvOiB0aGUgdXNlciBtaWdodCB3YW50IHRoZSBzeXN0ZW0gdG8NCj4gPiA+IGF1 dG9tYXRpY2FsbHkgYm9vdCBvZmYgb2YgYSBVU0IgZHJpdmUgd2hlbmV2ZXIgdGhleSBjb25uZWN0 IGl0LA0KPiA+ID4gYmVmb3JlIHBvd2VyaW5nIG9uIG9yIHJlYm9vdGluZyB0aGUgc3lzdGVtLCBy YXRoZXIgdGhhbiBib290IGZyb20gdGhlDQo+IGhhcmQgZHJpdmUuDQo+ID4NCj4gPiBSZW1lbWJl ciB0aGF0IHBvaW50IHdhcyBtYWRlIGluIHRoZSBjb250ZXh0IG9mIGVudW1lcmF0aW9uLiBXaGF0 IEkgd2FzDQo+ID4gc2F5aW5nIGlzIHRoYXQgYm9vdCBvcHRpb25zIGNyZWF0ZWQgYnkgdGhlIGVu dW0gY29kZSwgZm9yIHJlbW92YWJsZQ0KPiA+IGRyaXZlcywgYXJlIGZpbmUgdG8gYmUgZ29uZSAo YXMgdGhleSBhcmUgdm9sYXRpbGUsIG9yIHByb2FjdGl2ZWx5DQo+ID4gcmVtb3ZlZCB3aGVuIE5W KSBhZnRlciBhIHJlYm9vdC4NCj4gPiBJZiBhIHVzZXIgd2FudHMgdG8gYm9vdCBmcm9tIHN1Y2gg YW4gVVNCIGRldmljZSBieSBkZWZhdWx0LCBpbiBteQ0KPiA+IG9waW5pb24gdGhleSBzaG91bGQg bWFudWFsbHkgY3JlYXRlIGEgYm9vdCBvcHRpb24gZm9yIGl0LiBPdGhlcndpc2UsDQo+ID4gaWYg SSBkbyBub3QgbWlzdW5kZXJzdGFuZCB5b3VyIHBvaW50LCB5b3UgYXJlIHN1Z2dlc3RpbmcgdGhl IGZpcm13YXJlDQo+ID4gdG8ga2VlcCB0cmFjayBvZiBldmVyeSBzaW5nbGUgYm9vdGFibGUgVVNC IGRldmljZSBldmVyIGF0dGFjaGVkLg0KPiA+DQo+ID4gPg0KPiA+ID4gKEZvciBVU0IgZGV2aWNl cywgIlVTQiBXV0lEIiBhbmQgIlVTQiBDbGFzcyIgZGV2aWNlIHBhdGggbm9kZXMgYXJlDQo+ID4g PiBkZWZpbmVkIGJ5IHRoZSBzcGVjLCBzbyB0aGUgdXNlciBpc24ndCBldmVuIGV4cGVjdGVkIHRv IHBsdWcgdGhlDQo+ID4gPiBkcml2ZSBpbnRvIHRoZSBzYW1lIFVTQiBwb3J0LCBmb3IgdGhlIGRy aXZlIHRvIGJlIGZvdW5kIHVuaXF1ZWx5LikNCj4gPg0KPiA+IEFjdHVhbGx5IGRpZG4ndCBrbm93 IHRoYXQsIHRoYW5rcyBmb3IgdGhlIGZhY3QhDQo+ID4NCj4gPiA+DQo+ID4gPiA+Pj4gUHJpbWFy eSBwYXJ0aXRpb246IFRoZSBzby1jYWxsZWQgIlN0YXJ0dXAgVm9sdW1lIiB1bmZvcnR1bmF0ZWx5 DQo+ID4gPiA+Pj4gaXMgYSBiaXQgdHJpY2tpZXIuIEZvciBpdCwgYSBwcmFjdGljYWxseSBpbnZh bGlkIEJvb3QgT3B0aW9uIGlzDQo+ID4gPiA+Pj4gYWRkZWQsIHdoaWNoIGlzIGFuIGV4cGFuZGVk IGRldmljZSBwYXRoIHRvIHRoZSB2b2x1bWUgdG8gYmUNCj4gPiA+ID4+PiBib290ZWQsIGhvd2V2 ZXIgd2l0aG91dCBoYXZpbmcgYSBGaWxlIERldmljZSBQYXRoIE5vZGUgYXBwZW5kZWQuDQo+ID4g PiA+Pg0KPiA+ID4gPj4gVGhpcyBkb2Vzbid0IGltbWVkaWF0ZWx5IHNlZW0gaW52YWxpZCAtLSBp ZiBtZW1vcnkgc2VydmVzLCB5b3UNCj4gPiA+ID4+IGNhbiBoYXZlIFxFRklcQk9PVFxCT09UPGFy Y2g+LmVmaSBvbiBmaXhlZCBtZWRpYSBhcyB3ZWxsLCBhbmQgaWYNCj4gPiA+ID4+IGEgYm9vdCBv cHRpb24gb25seSBuYW1lcyB0aGUgSEQoKSBpbiBxdWVzdGlvbiwgdGhhdCBkZWZhdWx0IGJvb3QN Cj4gPiA+ID4+IHBhdGggd2lsbCBiZQ0KPiA+ID4gbGF1bmNoZWQgb2ZmIG9mIGl0Lg0KPiA+ID4g Pg0KPiA+ID4gPiBJIHRoaW5rIGZvciBhIEJvb3QjIyMjIG9wdGlvbiwgaXQgaXMgYWx3YXlzIGlu dmFsaWQsDQo+ID4gPg0KPiA+ID4gSSBkaXNhZ3JlZS4gSSdsbCBoYXZlIHRvIGRlZmVyIHRvIFJh eSBoZXJlLCBidXQgaW4gbXkgZXhwZXJpZW5jZSwNCj4gPiA+IGVkazIgcHJhY3RpY2UgaXMgdGhh dCBpZiB5b3UgaGF2ZSBhIGJvb3Qgb3B0aW9uIHdob3NlIGRldnBhdGggZW5kcw0KPiA+ID4gaW4g YQ0KPiA+ID4gSEQoKSBub2RlLCB0aGVuIGFuIFVFRkkgaW1hZ2Ugb24gdGhhdCBwYXJ0aXRpb24g dW5kZXIgdGhlIGZpbGVwYXRoDQo+ID4gPiBcRUZJXEJPT1RcQk9PVDxhcmNoPi5lZmkgd2lsbCBi ZSB0cmllZCBmb3IgYm9vdGluZy4gQXMgZmFyIGFzIEkgY2FuDQo+ID4gPiBzZWUsIHRoaXMgaXMg bmVpdGhlciBtYW5kYXRlZCBub3IgZm9yYmlkZGVuIGJ5IHRoZSBzcGVjLiBBbnl3YXksIGZvcg0K PiA+ID4gUmF5DQo+ID4gdG8gYW5zd2VyIGF1dGhvcml0YXRpdmVseS4NCj4gPg0KPiA+IEluZGVl ZCBpdCBpcyBuZWl0aGVyIGV4cGxpY2l0bHkgYWxsb3dlZCBub3IgZm9yYmlkZGVuLCBJIGNvbmNs dWRlZCBpdA0KPiA+IGJlaW5nIGludmFsaWQgZnJvbSB0aGUgc3RyaWN0bmVzcyBvZiBob3cgdGhl IGJvb3RpbmcgcHJvdG9jb2wgaXMgZGVmaW5lZC4NCj4gPiBJZiBpdCBpcyBmb3JiaWRkZW4sIGl0 IGlzIGltcGxpY2l0LCBidXQgaWYgaXQncyBub3QgdGhlIGNhc2UsIHRoZQ0KPiA+IGJldHRlciBp dCBpcyBmb3IgdGhpcyBwdXJwb3NlLg0KPiA+DQo+ID4gPg0KPiA+ID4gPiBiZWNhdXNlIHRoZSBk ZWZhdWx0IHBhdGggaXMgZGVmaW5lZCB0byBiZSB1c2VkIGluIHRoZSAic2Nhbm5pbmcgcGhhc2Ui DQo+ID4gPiBvbmNlIG5vIEJvb3QjIyMjIHZhcmlhYmxlIGNvdWxkIGJlIGZvdW5kLg0KPiA+ID4g PiBBbHNvLCB1bmZvcnR1bmF0ZWx5IHRoZSBwYXRoIGlzIGFsc28gc3RvcmVkIHZpYSBibGVzcyBh bmQNCj4gPiA+ID4gZGVmaW5pdGVseSBuZXZlciB0aGUNCj4gPiA+IFVFRkkgc3RhbmRhcmQgb25l LCBzbyBzdXBwb3J0aW5nIHRoaXMgdmVuZG9yLXNwZWNpZmljIHNjZW5hcmlvDQo+ID4gPiBkZWZp bml0ZWx5IHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcuDQo+ID4gPiA+IERvIHlvdSBoYXZlIGFu eSBvcGluaW9uIG9uIHRoZSBwcm9wb3NlZCBzZWNvbmQgaG9vaz8NCj4gPiA+DQo+ID4gPiBQZXJz b25hbGx5IEkgcmVtYWluIHVuY29udmluY2VkIHRoYXQgdGhlIHNlY29uZCBob29rIGlzIG5lZWRl ZCAodG8NCj4gPiA+IGJlIGludm9rZWQgZnJvbSBjb3JlIEJkc0R4ZSBvciBVZWZpQm9vdE1hbmFn ZXJMaWIgY29kZSkuIEJ1dCwgdGhhdCdzDQo+ID4gPiBqdXN0IG15IG9waW5pb24gOikNCj4gPg0K PiA+IFdlbGwsIHRoZSBvbmx5IGFsdGVybmF0aXZlIEkgc2VlIGFyZSBtb2RpZnlpbmcgdGhlIGVu dHJ5IHByZS1CRFMNCj4gPiAoc2xpZ2h0bHkgdW5jbGVhbiksIGZvcmtpbmcgb2ZmICh1bnBsZWFz YW50KSBvciBub3Qgc3VwcG9ydGluZyBpdCBhdA0KPiA+IGFsbCAodW5wbGVhc2FudCB0b28sIGJ1 dCBzdXBwb3J0IGlzIG5vdCB0ZXJyaWJseSBpbXBvcnRhbnQsIGFsdGhvdWdoIHdvdWxkDQo+IGJl IG5pY2UgdG8gaGF2ZSkuDQo+ID4NCj4gPiA+DQo+ID4gPiBJbiBnZW5lcmFsIEkgZmluZCB0aGF0 IGxpYnJhcnkgQVBJcyAoZXNwZWNpYWxseSBhICpzZXQqIG9mIGxpYnJhcnkNCj4gPiA+IEFQSXMp IGFyZSB2ZXJ5IGhhcmQgdG8gZGVzaWduIChiZWNhdXNlIHdlIGNhbid0IHNlZSB0aGUgZnV0dXJl KS4gU28sDQo+ID4gPiAib3JnYW5pYyBncm93dGgiIHdvcmtzIGJldHRlciBpbiBwcmFjdGljZSAo ZXZlbiBpZiBpdCBsZWFkcyB0byAibGVzcw0KPiA+ID4gd2VsbCBvcmdhbml6ZWQiIHNldHMgb2Yg QVBJcykuIFRoaXMgaXMgdG8gc2F5IHRoYXQsIGlmIHlvdSBjYW4NCj4gPiA+IHByb3Bvc2UgYSBo b29rIGFuZCBpbW1lZGlhdGVseSBkZW1vbnN0cmF0ZSB0aGF0IGl0IHNhdmVzIGNvZGUgZm9yLA0K PiA+ID4gYW5kL29yIHNpbXBsaWZpZXMsIG11bHRpcGxlIHBsYXRmb3JtcywgdGhlbiB0aGUgbmV3 IEFQSSBtaWdodCBiZQ0KPiBqdXN0aWZpZWQuDQo+ID4gKFBlcnNvbmFsbHksIEkgdXN1YWxseSBh cmd1ZSBmb3IgInRocmVlIGNhbGwgc2l0ZXMiIGFzIGEgbWluaW11bS4NCj4gPiA+IFR3byBtaWdo dCBiZSBlbm91Z2ggaWYgdGhlIGNvZGUgZXh0cmFjdGVkIGlzIHBhcnRpY3VsYXJseSBiYXJvcXVl LA0KPiA+ID4gb3IgdW5kZXJnb2VzIGZyZXF1ZW50DQo+ID4gPiBjaGFuZ2VzLikNCj4gPg0KPiA+ IFRoZSAicHJvYmxlbSIgaXMgdGhhdCBib3RoIGhvb2tzIGFyZSBub3QgaW50cm9kdWNlZCBmb3Ig c2hhcmluZyBjb2RlDQo+ID4gYnV0IGZvciBnaXZpbmcgdGhlIHBsYXRmb3JtIGRldmVsb3BlciBt b3JlIGZyZWVkb20gd2l0aG91dCBmb3JraW5nIG9mZi4NCj4gPiBXaGV0aGVyIHN1Y2ggYXJlIGFj Y2VwdGVkIGVuZHMgdXAgYmVpbmcgZW50aXJlbHkgdGhlIG1haW50YWluZXIncw0KPiA+IHByZWZl cmVuY2UsIEkgZ3Vlc3MuDQo+IA0KPiBGb3JraW5nIG9mZiBpcyBuZXZlciBhbiBvcHRpb24uIElu IG15IG9waW5pb24sIGlmIGEgZ2VuZXJpYyBsaWJyYXJ5L2RyaXZlciBuZWVkcw0KPiBmb3JraW5n LCB0aGF0J3MgYSBmYWlsdXJlIGluZGljYXRvciBvZiBkZXNpZ24uDQoNCkkgdGhpbmsgc28gdG9v LCBoZW5jZSBteSBwcm9wb3NpdGlvbiBmb3IgUGxhdGZvcm1BY3BpTGliIGEgZmV3IGRheXMgYWdv LiBIb3dldmVyIHRoZSBmYWlsdXJlIG9mIGRlc2lnbiBjYW4gYmUgd2l0aCBib3RoIHRoZSBnZW5l cmljIGRyaXZlciBhbmQgdGhlIHBsYXRmb3JtIHNpZGUuDQpGb3IgdGhlIGZpcnN0IGhvb2ssIEkg YmVsaWV2ZSBpdCdzIGEgZGVzaWduIGZsYXcgb2YgZWRrMiBiZWNhdXNlIHRoZXJlIGlzIG5vIChr bm93biB0byBtZSkgd2F5IG9mIGFkZGluZyBib290IG9wdGlvbnMgIm9uIGRlbWFuZCIsIGJ1dCBq dXN0IHZpYSB0aGUgQmVmb3JlL0FmdGVyQ29uc29sZSBob29rcywgd2hpY2ggZXhlY3V0ZSB1bmNv bmRpdGlvbmVkLg0KUmVnYXJkaW5nIHRoZSBzZWNvbmQgaG9vayAtIEkgZG8gbm90IGxpa2UgdGhl IGlkZWEgbXlzZWxmLCBidXQgaXQgaXMgdGhlIG9ubHkgSSBjYW4gdGhpbmsgb2YgdG8gc3VwcG9y dCB0aGUgZGVzY3JpYmVkIHNjZW5hcmlvIHByb3Blcmx5Lg0KDQo+IEZyZWVkb20gaXMgdmVyeSBp bXBvcnRhbnQuIEkgaGF2ZSBzZWVuIG1hbnkgaW50ZXJuYWwgcGxhdGZvcm0gQkRTDQo+IGltcGxl bWVudGF0aW9ucy4gVGhlIHBsYXRmb3JtIHJlcXVpcmVtZW50cyBhcmUgdmVyeSBkaWZmZXJlbnQg YW5kIHN0cmFuZ2UNCj4gc29tZXRpbWVzLg0KPiBTbyB0aGUgYmVmb3JlY29uc29sZS9hZnRlcmNv bnNvbGUgaG9vayBwb2ludHMgd2VyZSB1c2VkLg0KPiBUaGV5IGFyZSB2ZXJ5IG5hdHVyYWwuIEZp cnN0IGhvb2sgcG9pbnQgaXMgd2hlbiB0aGUgcGxhdGZvcm0gZG9lc24ndCBoYXZlDQo+IG1vdXRo IGFuZCBlYXJzLg0KPiBUaGUgb3RoZXIgaG9vayBwb2ludCBpcyB3aGVuIHBsYXRmb3JtIGNhbiBz cGVhayBhbmQgaGVhci4NCj4gDQo+ID4NCj4gPiA+DQo+ID4gPiA+PiBJIGhhdmUgYSBtb3JlIGdl bmVyYWwgY29tbWVudCBpbiB0aGUgZW5kOiBJIGRvdWJ0IEkgY291bGQgbGVnYWxseQ0KPiA+ID4g Pj4gdGVzdCBhbiBPU1ggZ3Vlc3Qgb24gbm9uLUFwcGxlIGhhcmR3YXJlLCBzbyBJIHdvbid0IHRy eSAoYW5kIEknbGwNCj4gPiA+ID4+IG1vc3QgbGlrZWx5IG5vdCBidXkgb3Igb3RoZXJ3aXNlIHBy b2N1cmUgT1NYLCBsZXQgYWxvbmUgQXBwbGUNCj4gPiA+ID4+IGhhcmR3YXJlLCBqdXN0IGZvciB0 aGlzKS4gVGhhdCBtZWFucywgaWYgeW91IHBvc3QgcGF0Y2hlcywgbXkNCj4gPiA+ID4+IG1haW4g Zm9jdXMgd2lsbCBiZSBvbiBrZWVwaW5nIHRoZSBjdXJyZW50IGJlaGF2aW9yDQo+ID4gPiA+PiBy ZWdyZXNzaW9uLWZyZWUsIGFuZA0KPiA+ID4gPj4gKHNlY29uZGFyaWx5KSB0aGUgaW1wbGVtZW50 YXRpb24gcHJlZmVyYWJseSBzaW1wbGUgJiBzZXBhcmF0ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IFRo YW5rIHlvdSB0aGF0IHlvdSBhcmUgcmVhZHkgdG8gbWVyZ2UgY2hhbmdlcyB5b3UgY2Fubm90IGV2 ZW4NCj4gPiA+ID4gcmVhbGx5DQo+ID4gPiB0ZXN0Lg0KPiA+ID4NCj4gPiA+IEkgZGVmaW5pdGVs eSBpbnRlbmQgdG8gcmVncmVzc2lvbiB0ZXN0IGFueSBzdWNoIGNoYW5nZXMgOikNCj4gPg0KPiA+ IFN1cmUsIEkganVzdCBvZnRlbiBjb21lIGFjcm9zcyBhICJJIGRvbid0IG1lcmdlIHdoYXQgSSBj YW5ub3QgdGVzdCINCj4gPiBtZW50YWxpdHkuIDopDQo+ID4NCj4gPiA+DQo+ID4gPiBPVE9ILCBp biBhbnkgbGFyZ2VyIHByb2plY3QsIGFueSBnaXZlbiBtYWludGFpbmVyIGlzIHN1cmVseSB1bmFi bGUNCj4gPiA+IHRvIGludGVncmF0aW9uLXRlc3QgKmFsbCogZmVhdHVyZXMgaW4gdGhlIHN1YnN5 c3RlbSB0aGF0IHRoZXkgY28tbWFpbnRhaW4uDQo+ID4gPiBXaGF0J3MgaW1wb3J0YW50IGlzIHRo YXQgZWFjaCBtYWpvciBmZWF0dXJlIGhhcyBhdCBsZWFzdCBvbmUNCj4gPiA+IG1haW50YWluZXIg dGhhdCBjYW4gaW50ZWdyYXRpb24tdGVzdCBpdCAocG9zc2libHkgd2l0aCB0aGUgaGVscCBvZg0K PiA+ID4gYW4NCj4gPiBhdXRvbWF0ZWQgdGVzdCBzdWl0ZSkuDQo+ID4gPg0KPiA+ID4gRm9yIGV4 YW1wbGUsIEkgdG90YWxseSBjYW5ub3QgdGVzdCBYZW4gY29kZSBpbiBPdm1mUGtnIG9yDQo+ID4g PiBBcm1WaXJ0UGtnLCBidXQgdGhhdCdzIHdoeSB3ZSBoYXZlIHNldmVyYWwgcGVybWFuZW50IFJl dmlld2VycyBmcm9tDQo+ID4gPiB0aGUgWGVuIHByb2plY3QsIGZvciBPdm1mUGtnIGFuZCBBcm1W aXJ0UGtnLg0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+IExhc3psbw0KPiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gZWRrMi1kZXZlbCBt YWlsaW5nIGxpc3QNCj4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+IGh0dHBzOi8vbGlz dHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K