From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=45.249.212.255; helo=huawei.com; envelope-from=jianjay.zhou@huawei.com; receiver=edk2-devel@lists.01.org Received: from huawei.com (szxga08-in.huawei.com [45.249.212.255]) (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 2F1B82119EF2B for ; Tue, 25 Dec 2018 22:04:50 -0800 (PST) Received: from DGGEMM403-HUB.china.huawei.com (unknown [172.30.72.56]) by Forcepoint Email with ESMTP id 76983B35A2E78; Wed, 26 Dec 2018 14:04:47 +0800 (CST) Received: from DGGEMM528-MBX.china.huawei.com ([169.254.8.187]) by DGGEMM403-HUB.china.huawei.com ([10.3.20.211]) with mapi id 14.03.0415.000; Wed, 26 Dec 2018 14:04:41 +0800 From: "Zhoujian (jay)" To: Laszlo Ersek CC: "Yao, Jiewen" , "edk2-devel@lists.01.org" , "Huangweidong (C)" , "liujunjie (A)" , "wangxin (U)" , "wujing (O)" , "dengkai (A)" Thread-Topic: Question about hotplugging NIC devices to an empty pci-bridge Thread-Index: AdSYV9UwZTLM/IqZQ0GOAvPwlakpvgABN3NwAB8yewAABOwywAAQmw3gALIhDgAAOg7lYA== Date: Wed, 26 Dec 2018 06:04:41 +0000 Message-ID: References: <74D8A39837DF1E4DA445A8C0B3885C503F462A65@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F464A14@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.177.19.14] MIME-Version: 1.0 X-CFilter-Loop: Reflected Subject: Re: Question about hotplugging NIC devices to an empty pci-bridge X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 X-List-Received-Date: Wed, 26 Dec 2018 06:04:51 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQpUaGFuayBmb3IgeW91ciBleHBsYW5hdGlvbiBpbiBkZXRhaWxzIGFuZCB5 b3VyIHBhdGllbmNlLCBpdCBpcyByZWFsbHkgaGVscGZ1bCENCg0KUmVnYXJkcywNCkpheSBaaG91 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxvIEVyc2VrIFtt YWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDI1LCAy MDE4IDY6MTggUE0NCj4gVG86IFpob3VqaWFuIChqYXkpIDxqaWFuamF5Lnpob3VAaHVhd2VpLmNv bT4NCj4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxA bGlzdHMuMDEub3JnOyBIdWFuZ3dlaWRvbmcNCj4gKEMpIDx3ZWlkb25nLmh1YW5nQGh1YXdlaS5j b20+OyBsaXVqdW5qaWUgKEEpIDxsaXVqdW5qaWUyM0BodWF3ZWkuY29tPjsNCj4gd2FuZ3hpbiAo VSkgPHdhbmd4aW54aW4ud2FuZ0BodWF3ZWkuY29tPjsgd3VqaW5nIChPKSA8d3VqaW5nNDJAaHVh d2VpLmNvbT47DQo+IGRlbmdrYWkgKEEpIDxkZW5na2FpMUBodWF3ZWkuY29tPg0KPiBTdWJqZWN0 OiBSZTogUXVlc3Rpb24gYWJvdXQgaG90cGx1Z2dpbmcgTklDIGRldmljZXMgdG8gYW4gZW1wdHkg cGNpLWJyaWRnZQ0KPiANCj4gQnJpZWYgYW5zd2VyIHdoaWxlIEknbSBvbiBQVE8uDQo+IA0KPiAo SXQncyBkaWZmaWN1bHQgdG8gcmVwbHkgdG8gdGhpcyB0aHJlYWQgaW4gYW55IHNlbnNpYmxlIG1h bm5lciwgYmVjYXVzZSBvZg0KPiB0aGUgYnJhaW4tZGFtYWdlZCB0b3AtcG9zdGluZyB0aGF0IG91 dGxvb2sgYW5kIGdtYWlsIHBlcnBldHVhdGUuIEknbGwgdHJ5IG15DQo+IGJlc3QgYW55d2F5LCBi dXQgeW91IG1pZ2h0IGhhdmUgdG8gcmV2ZXJzZSB0aGUgb3JkZXIgb2YgbXkgYW5zd2VycyBmb3IN Cj4gZ2V0dGluZyBhIGdvb2QgbG9naWNhbCBleHBsYW5hdGlvbi4gQWdhaW4sIHRoZSBkYW1hZ2Ug aXMgc2VsZi1pbmZsaWN0ZWQgaGVyZTsNCj4gdXNlIGEgYmV0dGVyIE1VQSBwbGVhc2UuKQ0KPiAN Cj4gT24gMTIvMjEvMTggMTQ6NTAsIFpob3VqaWFuIChqYXkpIHdyb3RlOg0KPiA+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBZYW8sIEppZXdlbiBbbWFpbHRvOmppZXdl bi55YW9AaW50ZWwuY29tXQ0KPiA+PiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDIxLCAyMDE4IDE6 MjggUE0NCj4gPj4gVG86IFpob3VqaWFuIChqYXkpIDxqaWFuamF5Lnpob3VAaHVhd2VpLmNvbT47 DQo+ID4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBsZXJzZWtAcmVkaGF0LmNvbQ0KPiA+PiBD YzogSHVhbmd3ZWlkb25nIChDKSA8d2VpZG9uZy5odWFuZ0BodWF3ZWkuY29tPjsgbGl1anVuamll IChBKQ0KPiA+PiA8bGl1anVuamllMjNAaHVhd2VpLmNvbT47IHdhbmd4aW4gKFUpIDx3YW5neGlu eGluLndhbmdAaHVhd2VpLmNvbT47DQo+ID4+IHd1amluZyAoTykgPHd1amluZzQyQGh1YXdlaS5j b20+OyBkZW5na2FpIChBKSA8ZGVuZ2thaTFAaHVhd2VpLmNvbT4NCj4gPj4gU3ViamVjdDogUkU6 IFF1ZXN0aW9uIGFib3V0IGhvdHBsdWdnaW5nIE5JQyBkZXZpY2VzIHRvIGFuIGVtcHR5DQo+ID4+ IHBjaS1icmlkZ2UNCj4gDQo+IFdoZW4geW91IGhvdHBsdWcgYSB0cmFkaXRpb25hbCBQQ0ksIG9y IFBDSSBFeHByZXNzLCBkZXZpY2UsIGF0IE9TIHJ1bnRpbWUsDQo+IHRoZSBPUyBjYW4gZ2VuZXJh bGx5IG9ubHkgc2F0aXNmeSB0aGUgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIG9mIHRoZSBkZXZpY2UN Cj4gZnJvbSByZXNlcnZlZCAocHJlLWFsbG9jYXRlZCkgcmVzb3VyY2VzLiBUaGlzIG1lYW5zIHRo YXQgaG90cGx1ZyBwbGFucyBoYXZlDQo+IHRvIGJlIGNvbnNpZGVyZWQgaW4gYWR2YW5jZSB3aGVu IHRoZSBpbml0aWFsIFBDSSBlbnVtZXJhdGlvbiBhbmQgcmVzb3VyY2UNCj4gYXNzaWdubWVudCBv Y2N1cnMsIGluIHRoZSBmaXJtd2FyZS4gVGhlIHJlc2VydmF0aW9ucyBzaG91bGQgYmUgY29uc2lk ZXJlZCAvDQo+IHByb3BhZ2F0ZWQgdXBzdHJlYW0gKHRvIHRoZSByb290DQo+IGNvbXBsZXgoZXMp KSBmcm9tIHRoZSBsZWFmIGJyaWRnZShzKSB3aGVyZSB0aGUgaG90cGx1ZyBhY3Rpb25zIGFyZSBl eHBlY3RlZC4NCj4gUGNpQnVzRHhlIGNvdmVycyB0aGUgcHJvcGFnYXRpb24sIGJ1dCB0aGUgImxl YXZlcyIgaGF2ZSB0byBleHBvc2UgdGhlDQo+IHJlc2VydmF0aW9ucyAoInBhZGRpbmdzIikuDQo+ IA0KPiBUaGUgZGVmYXVsdCByZXNlcnZhdGlvbiBzaXplcyBtYXkgYmUgYm90aCB3YXN0ZWZ1bCBh bmQgaW5zdWZmaWNpZW50LiBPbmUNCj4gZXhhbXBsZSBmb3Igd2FzdGUgaXMgd2hlbiB5b3UgaGF2 ZSBtYW55IHRyYWRpdGlvbmFsIFBDSSBicmlkZ2VzLCBlYWNoDQo+IHJlcXVpcmluZyA0S0IgSU8g c3BhY2UsIGJ1dCB0aGUgcGxhdGZvcm0gZG9lc24ndCBoYXZlIG11Y2ggSU8gc3BhY2UgaW4gdG90 YWwNCj4gKHRoZSB0aGVvcmV0aWNhbCBtYXhpbXVtIGlzIDY0S0IgYW55d2F5KSwgYW5kIHNvIHlv dSBydW4gb3V0IG9mIElPIHNwYWNlDQo+IGR1cmluZyBlbnVtZXJhdGlvbi4NCj4gDQo+IE1vcmUg YmVsb3c6DQo+IA0KPiA+Pg0KPiA+PiBZb3UgbmVlZCBoYXZlIGEgUGNpSG90UGx1ZyBkcml2ZXIg dG8gcHJvZHVjZSB0aGUNCj4gPj4gRUZJX1BDSV9IT1RfUExVR19JTklUX1BST1RPQ09MDQo+ID4+ DQo+ID4+IE9uZSBleGFtcGxlOg0KPiA+PiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvdHJlZS9tYXN0ZXIvT3ZtZlBrZy9QY2lIb3RQbHVnSW5pdEQNCj4gPj4geGUgTGFzemxvIGFk ZGVkIGl0LiBIZSBtYXkgcHJvdmlkZSBjb21tZW50IG9uIGhvdyB0byB1c2UgaXQuDQo+ID4+DQo+ ID4+IEFub3RoZXIgZXhhbXBsZToNCj4gPj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9l ZGsyLXBsYXRmb3Jtcy90cmVlL2RldmVsLQ0KPiA+PiBNaW5QbGF0Zm9ybS9QbGF0Zm9ybS9JbnRl bC9LYWJ5bGFrZU9wZW5Cb2FyZFBrZy9GZWF0dXJlcy9QY2lIb3RQbHVnDQo+ID4+IFRoaXMgaXMg dG8gYWRkIFRodW5kZXJib2x0IHN1cHBvcnQgaW4gS2FieWxha2UgcGxhdGZvcm0uDQo+ID4NCj4g PiBJJ3ZlIGNoZWNrZWQgdGhlIGRzYywgYW5kIGNvbmZpcm1lZCB0aGF0IHRoZSBPVk1GLmZkIGFs cmVhZHkgaGFkIHRoZQ0KPiA+IFBjaUhvdFBsdWcgZHJpdmVyLg0KPiA+IFRoZW4gSSBmb3VuZCB0 aGUgcmVzb3VyY2UgaW5mbyB0aHJvdWdoIHRoZSBkZWJ1ZyBsb2cgbGlrZSBiZWxvdzoNCj4gPg0K PiA+IEluaXRSb290QnJpZGdlOiBwb3B1bGF0ZWQgcm9vdCBidXMgMCwgd2l0aCByb29tIGZvciAy NTUgc3Vib3JkaW5hdGUNCj4gPiBidXMoZXMpDQo+ID4gUm9vdEJyaWRnZTogUGNpUm9vdCgweDAp DQo+ID4gICBTdXBwb3J0L0F0dHI6IDcwMDY5IC8gNzAwNjkNCj4gPiAgICAgRG1hQWJvdmU0Rzog Tm8NCj4gPiBOb0V4dENvbmZTcGFjZTogWWVzDQo+ID4gICAgICBBbGxvY0F0dHI6IDMgKENvbWJp bmVNZW1QTWVtIE1lbTY0RGVjb2RlKQ0KPiA+ICAgICAgICAgICAgQnVzOiAwIC0gRkYgVHJhbnNs YXRpb249MA0KPiA+ICAgICAgICAgICAgIElvOiBDMDAwIC0gRkZGRiBUcmFuc2xhdGlvbj0wDQo+ ID4gICAgICAgICAgICBNZW06IEMwMDAwMDAwIC0gRkJGRkZGRkYgVHJhbnNsYXRpb249MA0KPiA+ ICAgICBNZW1BYm92ZTRHOiA0MTgwMDAwMDAwMCAtIDQxRkZGRkZGRkZGIFRyYW5zbGF0aW9uPTAN Cj4gPiAgICAgICAgICAgUE1lbTogRkZGRkZGRkZGRkZGRkZGRiAtIDAgVHJhbnNsYXRpb249MA0K PiA+ICAgIFBNZW1BYm92ZTRHOiBGRkZGRkZGRkZGRkZGRkZGIC0gMCBUcmFuc2xhdGlvbj0wDQo+ ID4NCj4gPiBJbiB0aGUgT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybS5jLCB0aGUgZnVuY3Rp b24NCj4gPiBNZW1NYXBJbml0aWFsaXphdGlvbiBzZXRzIHRoZSBQY2lJb0Jhc2U9MHhDMDAwIGFu ZCBQY2lJb1NpemU9MHg0MDAwKE9uDQo+ID4gUTM1LCB0aGUgUGNpSW9CYXNlPTB4NjAwMCBhbmQg UGNpSW9TaXplPTB4QTAwMCkuDQo+ID4NCj4gPiBTbyBteSBxdWVzdGlvbiBhcmU6DQo+ID4gMSlX aHkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgUGNpSW9CYXNlIGlzIDB4QzAwMCwgZWFjaCBwY2ktYnJp ZGdlcyBuZWVkcw0KPiA+IDB4MGZmZiBJTyB3aW5kb3csIHdoaWNoIG1lYW5zIG9ubHkgNCBwY2kt YnJpZGdlcyBjYW4gYmUgcmVzZXJ2ZWQ/DQo+IA0KPiBUaGUgSU8gc3BhY2UgYXBlcnR1cmUgc2l6 ZXMgdGhhdCB5b3Ugc2VlIG9uIGk0NDBmeCBhbmQgUTM1IGluDQo+IE92bWZQa2cvUGxhdGZvcm1Q ZWkgZW1lcmdlIGxpa2UgdGhhdCBzaW1wbHkgYmVjYXVzZSB0aG9zZSBhcmUgdGhlIGxhcmdlc3QN Cj4gY29udGlndW91cyBJTyBzcGFjZSByYW5nZXMgdGhhdCBmaXQgYmV0d2VlbiBJTyBwb3J0cyB0 aGF0IGJlbG9uZyB0byBwbGF0Zm9ybQ0KPiBkZXZpY2VzLg0KPiANCj4gSWYgeW91IHJ1bg0KPiAN Cj4gICBnaXQgYmxhbWUgLS0gT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybS5jDQo+IA0KPiB5 b3Ugc29vbiBlbmQgdXAgd2l0aCBhIHBvaW50ZXIgdG8gY29tbWl0IGJiYTczNGFiNGM3Yw0KPiAo Ik92bWZQa2cvUGxhdGZvcm1QZWk6IHByb3ZpZGUgMTAgKiA0S0Igb2YgUENJIElPIFBvcnQgc3Bh Y2Ugb24gUTM1IiwgMjAxNi0NCj4gMDUtMTcpLiBUaGUgY29tbWl0IG1lc3NhZ2Ugb24gdGhhdCBj b21taXQgc2hvdWxkIGhlbHAsIGFuZCBpdCBhbHNvIG1lbnRpb25zDQo+IA0KPiAgIGh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTMzMzIzOA0KPiANCj4gd2hpY2gg aXMgd2hlcmUgSSBoYWQgaW52ZXN0aWdhdGVkIHRoZSBJTyBzcGFjZSBzaXplcyB0aGF0IHdlcmUN Cj4gKnByYWN0aWNhbGx5KiBhdmFpbGFibGUgb24gaTQ0MGZ4IGFuZCBRMzUuDQo+IA0KPiA+IDIp SWYgSSBzZXQgdGhlIFBjaUlvQmFzZT0weDEwMDAsIFBjaUlvU2l6ZT0weEEwMDAgYW5kIHN0YXJ0 IGEgdm0gd2l0aA0KPiA+IDggZW1wdHkgcGNpLWJyaWRnZXMsIGhvdHBsdWdpbmcgYSB2aXJ0dWFs IG5pYyB0byB0aGUgcGNpLWJyaWRnZSwgdGhlDQo+ID4gcHJvYmxlbSBpcyBkaXNhcHBlYXJpbmcu DQo+ID4gICBCdXQgd2lsbCB0aGlzIGNhdXNlIGFueSBzaWRlIGVmZmVjdHM/DQo+IA0KPiBZZXMs IGl0IGNvdWxkOyBpZiB5b3Ugb3ZlcnJpZGUgUGNpSW9CYXNlIGxpa2UgdGhpcywgdGhlbiBQY2lC dXNEeGUgbWF5IGVhc2lseQ0KPiBhbGxvY2F0ZSBJTyBCQVJzIG9mIGRldmljZXMgc3VjaCB0aGF0 IHRoZXkgb3ZlcmxhcCBJTyBwb3J0cyBvZiBvdGhlciAoYnVpbHQtDQo+IGluLCBwbGF0Zm9ybSkg ZGV2aWNlcy4NCj4gDQo+IFRoZSBzb2x1dGlvbiB0byB0aGUgSU8gc3BhY2Ugc2hvcnRhZ2UgaXMg dG8gdXNlIFEzNSB3aXRoIGEgUENJIEV4cHJlc3MgKHRoYXQNCj4gaXMsIG5vdCB0cmFkaXRpb25h bCBQQ0kpIGhpZXJhcmNoeS4gUENJIEV4cHJlc3MgZGV2aWNlcyBhcmUgcmVxdWlyZWQgdG8NCj4g ZnVuY3Rpb24gd2l0aG91dCBJTyBCQVJzLCBhbmQgeW91IGNhbiB1c2UgUENJIEV4cHJlc3MgUm9v dCBQb3J0cywgYW5kDQo+IFN3aXRjaGVzIChjb25zaXN0aW5nIGZyb20gVXBzdHJlYW0gUG9ydHMg YW5kIGEgbnVtYmVyIG9mIERvd25zdHJlYW0gUG9ydHMpDQo+IHdpdGhvdXQgY29uc3VtaW5nIElP IHNwYWNlIGF0IGFsbC4NCj4gDQo+IFRoaXMgaXMgZG9jdW1lbnRlZCBpbiBncmVhdCBkZXRhaWwg aW4gdGhlIGZvbGxvd2luZyB0d28gZG9jdW1lbnRzIGluIHRoZSBRRU1VDQo+IHNvdXJjZSB0cmVl Og0KPiANCj4gWzFdIGRvY3MvcGNpZS50eHQNCj4gWzJdIGRvY3MvcGNpZV9wY2lfYnJpZGdlLnR4 dA0KPiANCj4gTm93LCBpZiB5b3Ugc3dpdGNoIHRvIFEzNSAvIFBDSUUsIHRoZW4geW91IGxpa2Vs eSB3b24ndCBydW4gb3V0IG9mIElPIHNwYWNlOw0KPiBob3dldmVyLCB0aGUgb3RoZXIgaXNzdWUg bWF5IHN0aWxsIGFyaXNlLCB3aGVyZSBub3QgZW5vdWdoIE1NSU8gaXMgcmVzZXJ2ZWQNCj4gZm9y IGhvdC1wbHVnZ2luZyBkZXZpY2VzIHdpdGggbGFyZ2UgTU1JTyBkZW1hbmRzLg0KPiANCj4gRm9y IHRoYXQsIE92bWZQa2cvUGNpSG90UGx1Z0luaXREeGUgaW1wbGVtZW50cyB0aGUgZmlybXdhcmUg c2lkZSBmb3IgUUVNVSdzDQo+ICJQQ0kgcmVzb3VyY2UgcmVzZXJ2YXRpb24gY2FwYWJpbGl0eSIu IFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJDQo+IGNhcGFiaWxpdHkgKGluIHRyYWRpdGlv bmFsIGNvbmZpZyBzcGFjZSkgdGhhdCBjYW4gYmUgYWRkZWQgdG8gdGhlIGdlbmVyaWMgUENJDQo+ IEV4cHJlc3MgUm9vdCBQb3J0IGRldmljZSBtb2RlbCBvZiBRRU1VLCB1c2luZyB0aGUgYXBwcm9w cmlhdGUgY29tbWFuZCBsaW5lDQo+IHN3aXRjaGVzIChzZWUgYWdhaW4gWzFdIGFuZCBbMl0pLiBX aGVuIHlvdSBkbyB0aGF0LCBQY2lIb3RQbHVnSW5pdER4ZQ0KPiBpbnN0cnVjdHMgUGNpQnVzRHhl IHRvIHJlc2VydmUgdGhlIGdpdmVuIHNpemVzIGZyb20gdGhlIGdpdmVuIHJlc291cmNlIHR5cGVz DQo+IG9uIHRoZSBnaXZlbiByb290IHBvcnQsIGFuZCB0aGVuIHlvdSBjYW4gaG90cGx1ZyBhIGxh cmdlIGRldmljZSBhdCBPUyBydW50aW1lDQo+IGludG8gdGhhdCByb290IHBvcnQuDQo+IA0KPiBG b3IgbW9yZSBkZXRhaWxzIChiZXlvbmQgdGhlIHR3byBkb2N1bWVudHMgYWJvdmUpLCBwbGVhc2Ug cmVmZXIgdG8NCj4gDQo+IFszXSBnaXQgbG9nIC0tIE92bWZQa2cvUGNpSG90UGx1Z0luaXREeGUg WzRdDQo+IGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTQzNDc0 MCNjNQ0KPiBbNV0gaHR0cHM6Ly9saXN0cy4wMS5vcmcvcGlwZXJtYWlsL2VkazItZGV2ZWwvMjAx Ny1TZXB0ZW1iZXIvMDE1Mjk2Lmh0bWwNCj4gDQo+IE1vcmUgYmVsb3c6DQo+IA0KPiA+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZyb206IFpob3VqaWFuIChqYXkpIFttYWls dG86amlhbmpheS56aG91QGh1YXdlaS5jb21dDQo+ID4+PiBTZW50OiBGcmlkYXksIERlY2VtYmVy IDIxLCAyMDE4IDExOjA0IEFNDQo+ID4+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7DQo+ID4+PiBsZXJzZWtAcmVkaGF0LmNv bQ0KPiA+Pj4gQ2M6IEh1YW5nd2VpZG9uZyAoQykgPHdlaWRvbmcuaHVhbmdAaHVhd2VpLmNvbT47 IGxpdWp1bmppZSAoQSkNCj4gPj4+IDxsaXVqdW5qaWUyM0BodWF3ZWkuY29tPjsgd2FuZ3hpbiAo VSkgPHdhbmd4aW54aW4ud2FuZ0BodWF3ZWkuY29tPjsNCj4gPj4+IHd1amluZyAoTykgPHd1amlu ZzQyQGh1YXdlaS5jb20+OyBkZW5na2FpIChBKSA8ZGVuZ2thaTFAaHVhd2VpLmNvbT4NCj4gPj4+ IFN1YmplY3Q6IFJFOiBRdWVzdGlvbiBhYm91dCBob3RwbHVnZ2luZyBOSUMgZGV2aWNlcyB0byBh biBlbXB0eQ0KPiA+Pj4gcGNpLWJyaWRnZQ0KPiA+Pj4NCj4gPj4+IEkndmUgdHJpZWQgdG8gc2V0 IFBjZFBjaUJ1c0hvdHBsdWdEZXZpY2VTdXBwb3J0IHRvIGJlIHRydWUgaW4NCj4gPj4+IE1kZU1v ZHVsZVBrZy5kZWMgbGlrZSBiZWxvdzoNCj4gPj4+IGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RQY2lCdXNIb3RwbHVnRGV2aWNlU3VwcG9ydHxUUlVFDQo+ID4+PiB8Qk9PTEVBTnww eDAwMDEwMDNkDQo+ID4+PiBCdXQgdGhlIHByb2JsZW0gc3RpbGwgZXhpc3RzLiBJcyB0aGVyZSBh bnkgc3RlcHMgSSBtaXNzZWQ/IE9yIHNvbWUNCj4gPj4+IGluZm9zIG5lZWQgdG8gcG9wdWxhdGUg dG8gT1ZNRiBieSBRZW11Pw0KPiA+Pj4NCj4gPj4+IENvdWxkIHlvdSBnaXZlIG1lIG1vcmUgaW5m b3M/DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gSmF5IFpob3UNCj4gPj4+DQo+ID4+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBZYW8sIEppZXdlbiBbbWFp bHRvOmppZXdlbi55YW9AaW50ZWwuY29tXQ0KPiA+Pj4+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJl ciAyMCwgMjAxOCA4OjA5IFBNDQo+ID4+Pj4gVG86IFpob3VqaWFuIChqYXkpIDxqaWFuamF5Lnpo b3VAaHVhd2VpLmNvbT47DQo+ID4+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+PiBD YzogSHVhbmd3ZWlkb25nIChDKSA8d2VpZG9uZy5odWFuZ0BodWF3ZWkuY29tPjsgbGl1anVuamll IChBKQ0KPiA+Pj4+IDxsaXVqdW5qaWUyM0BodWF3ZWkuY29tPjsgd2FuZ3hpbiAoVSkNCj4gPj4+ IDx3YW5neGlueGluLndhbmdAaHVhd2VpLmNvbT47IHd1amluZyAoTykNCj4gPj4+PiA8d3VqaW5n NDJAaHVhd2VpLmNvbT47IGRlbmdrYWkgKEEpIDxkZW5na2FpMUBodWF3ZWkuY29tPg0KPiA+Pj4+ IFN1YmplY3Q6IFJFOiBRdWVzdGlvbiBhYm91dCBob3RwbHVnZ2luZyBOSUMgZGV2aWNlcyB0byBh biBlbXB0eQ0KPiA+Pj4gcGNpLWJyaWRnZQ0KPiA+Pj4+DQo+ID4+Pj4gTWF5YmUgeW91IGNhbiB1 c2UgRUZJX1BDSV9IT1RfUExVR19JTklUX1BST1RPQ09MIHRvIHJlc2VydmUgc29tZQ0KPiA+Pj4g cmVzb3VyY2UuDQo+ID4+Pj4NCj4gPj4+PiBTZWUgTWRlUGtnXEluY2x1ZGVcUHJvdG9jb2xcUGNp SG90UGx1Z0luaXQuaA0KPiA+Pj4+DQo+ID4+Pj4gVGhhbmsgeW91DQo+ID4+Pj4gWWFvIEppZXdl bg0KPiA+Pj4+DQo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+IEZy b206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBP bg0KPiA+Pj4+PiBCZWhhbGYNCj4gPj4+IE9mDQo+ID4+Pj4+IFpob3VqaWFuIChqYXkpDQo+ID4+ Pj4+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMCwgMjAxOCA3OjM0IFBNDQo+ID4+Pj4+IFRv OiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+PiBDYzogSHVhbmd3ZWlkb25nIChDKSA8 d2VpZG9uZy5odWFuZ0BodWF3ZWkuY29tPjsgbGl1anVuamllIChBKQ0KPiA+Pj4+PiA8bGl1anVu amllMjNAaHVhd2VpLmNvbT47IHdhbmd4aW4gKFUpDQo+ID4+PiA8d2FuZ3hpbnhpbi53YW5nQGh1 YXdlaS5jb20+Ow0KPiA+Pj4+PiB3dWppbmcgKE8pIDx3dWppbmc0MkBodWF3ZWkuY29tPjsgZGVu Z2thaSAoQSkNCj4gPj4+IDxkZW5na2FpMUBodWF3ZWkuY29tPg0KPiA+Pj4+PiBTdWJqZWN0OiBb ZWRrMl0gUXVlc3Rpb24gYWJvdXQgaG90cGx1Z2dpbmcgTklDIGRldmljZXMgdG8gYW4gZW1wdHkN Cj4gPj4+Pj4gcGNpLWJyaWRnZQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBIaSBhbGwsDQo+ID4+Pj4+DQo+ ID4+Pj4+IFRoZSBpc3N1ZSBvY2N1cnMgd2hlbiBJIHN0YXJ0ZWQgYSB2aXJ0dWFsIG1hY2hpbmUg aW4gVUVGSSB3YXkgYnkNCj4gPj4+Pj4gbGlidmlydCBvbiBxZW11LWt2bSBwbGF0Zm9ybSwgdGhl IHZtIGlzIGNvbmZpZ3VyZWQgd2l0aCA4DQo+ID4+Pj4+IHBjaS1icmlkZ2VzIG9uIHJvb3QgYnVz MC4gSSBob3RwbHVnIGEgZGV2aWNlIGxpa2UgdmlydHVhbCBuaWMgdG8NCj4gPj4+Pj4gYW4gZW1w dHkgcGNpLWJyaWRnZSB3aGljaCBoYXMgbm8gZGV2aWNlIGNvbm5lY3RlZC4gTG9naW4gdGhlIHZt LCBJDQo+ID4+Pj4+IGNhbiBzZWUgdGhlIGRldmljZSBieSAibHNwY2kiIiwgYnV0IGl0IGRpZG4n dCBzaG93IGJ5ICJpZmNvbmZpZw0KPiA+Pj4+PiAtYSIuIERtZXNnIHNob3dzIGxpa2UNCj4gPj4+ PiBiZWxvdzoNCj4gPj4+Pj4gcGNpIDAwMDA6MDQ6MDEuMDogQkFSIDA6IG5vIHNwYWNlIGZvciBb bWVtIHNpemUgMHgwMDAxMDAwMCA2NGJpdA0KPiA+Pj4+PiBwcmVmXSBwY2kNCj4gPj4+Pj4gMDAw MDowNDowMS4wOiBCQVIgMDogZmFpbGVkIHRvIGFzc2lnbiBbbWVtIHNpemUgMHgwMDAxMDAwMCA2 NGJpdA0KPiA+Pj4+PiBwcmVmXSBwY2kNCj4gPj4+Pj4gMDAwMDowNDowMS4wOiBCQVIgMzogbm8g c3BhY2UgZm9yIFttZW0gc2l6ZSAweDAwMDA0MDAwIDY0Yml0IHByZWZdDQo+ID4+Pj4+IHBjaQ0K PiA+Pj4+PiAwMDAwOjA0OjAxLjA6IEJBUiAzOiBmYWlsZWQgdG8gYXNzaWduIFttZW0gc2l6ZSAw eDAwMDA0MDAwIDY0Yml0DQo+ID4+Pj4+IHByZWZdDQo+ID4+Pj4+DQo+ID4+Pj4+IFJlYm9vdCB0 aGUgdm0sIGV2ZXJ5dGhpbmcgdHVybnMgYmFjayB0byBub3JtYWwgYW5kIEkgY2FuIHNlZSB0aGUN Cj4gPj4+Pj4gbmV3IGhvdHBsdWdnZWQgbmljIGJ5ICJpZmNvbmZpZyAtYSIuDQo+ID4+Pj4+DQo+ ID4+Pj4+IFVzZSB0aGUgT1ZNRiBjb21waWxpbmcgZnJvbSBsYXRlc3QgZWRrMiBzb3VyY2UgY29k ZSwgdGhlIHNhbWUNCj4gPj4+IHByb2JsZW0NCj4gPj4+Pj4gYXJpc2VzLg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBTbywgbXkgcXVlc3Rpb25zIGFyZToNCj4gPj4+Pj4gMSkgdGhlIGdlbmVyaWMgUENJIGJ1 cyBkcml2ZXIgaW4gZWRrMiBkb2VzIG5vdCBhbGxvY2F0ZSBJTyBhbmQvb3INCj4gPj4+Pj4gTU1J TyBmb3IgYSBicmlkZ2UgaWYgdGhlcmUgaXMgbm8gZGV2aWNlIGJlaGluZCB0aGUgQ3VycmVudGx5 LCBpZg0KPiA+Pj4+PiB5b3UgYnJpZGdlIHRoYXQgY29uc3VtZSB0aGF0IGtpbmQgb2YgcmVzb3Vy Y2U/DQo+ID4+Pj4+IDIpIFdoYXQncyB0aGUgcHVycG9zZSBvZiB0aGlzIHN0cmF0ZWd5Pw0KPiA+ Pj4+PiAzKSBXaHkgZG9uJ3QgYWxsb2NhdGUgcmVzb3VyY2UgdG8gYWxsIGJyaWRnZXMgbGlrZSBz ZWFiaW9zPw0KPiA+Pj4+PiA0KSBJcyB0aGVyZSBhbnkgc3dpdGNoIGZvciBtZSB0byB0dXJuIG9m ZiB0aGlzIGNvbnN0cmFpbnQgc28gdGhhdA0KPiA+Pj4+PiBldmVyeSBwY2ktYnJpZGdlIGluY2x1 ZGluZyBlbXB0eSBvbmVzIGNhbiBiZSBhc3NpZ25lZCBJTyBhbmQNCj4gPj4+Pj4gbWVtb3J5DQo+ ID4+PiB3aW5kb3c/DQo+ID4+Pj4+IE90aGVyd2lzZSwgZWFjaCB0aW1lIEkgaG90cGx1ZyBhIGRl dmljZSB0byBlbXB0eSBwY2ktYnJpZGdlLCBhDQo+ID4+Pj4+IHJlYm9vdCBvcGVyYXRpb24gc2hv dWxkIGJlIGltcGxlbWVudGVkIHRvIHVzZSB0aGUgZGV2aWNlPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBB bnkgaGVscCB3aWxsIGJlIGFwcHJlY2lhdGVkLCBUaGFua3MhDQo+IA0KPiBDdXJyZW50bHksIHRo ZSByZXNvdXJjZSByZXNlcnZhdGlvbiBjYXBhYmlsaXR5IGlzIGltcGxlbWVudGVkIG9uIHRoZSBH ZW5lcmljDQo+IFBDSSBFeHByZXNzIFJvb3QgUG9ydCBkZXZpY2UgbW9kZWwsIHdoaWNoIGlzIG9u bHkgdXNhYmxlIG9uIFEzNS4NCj4gSWYgeW91IHJlYWxseSB3YW50IHRvIGhvdHBsdWcgYSB0cmFk aXRpb25hbCBQQ0kgZGV2aWNlLCAqd2hpbGUqIHNpemluZyB0aGUNCj4gcmVzZXJ2YXRpb24gYXBw cm9wcmlhdGVseSwgSSBiZWxpZXZlIHlvdSdsbCBoYXZlIHRvOg0KPiAtIHNpemUgdGhlIHJlc2Vy dmF0aW9uIG9uIGEgUm9vdCBQb3J0IGFzIG5lZWRlZCwNCj4gLSBjb2xkLXBsdWcgYSBQQ0lFLVBD SSBicmlkZ2UgZmlyc3QgaW50byB0aGUgUm9vdCBQb3J0LA0KPiAtIGhvdHBsdWcgdGhlIHRyYWRp dGlvbmFsIFBDSSBkZXZpY2UgaW50byB0aGUgUENJRS1QQ0kgYnJpZGdlLg0KPiANCj4gKFlvdSBj YW4gYWxzbyAqaG90KnBsdWcgdGhlIFBDSUUtUENJIGJyaWRnZSBpdHNlbGYsIGJlY2F1c2UNCj4g PGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2PiBoYXMg YmVlbiBmaXhlZCwgYnV0IHRoZW4NCj4gcmVtZW1iZXIgdG8gcmVzZXJ2ZSBidXMgbnVtYmVycyBh cyB3ZWxsLCBhdCB0aGUgUm9vdCBQb3J0IGxldmVsLikNCj4gDQo+IFdlIHdvcmtlZCBvdXQgdGhp cyBleGFjdCBzY2VuYXJpbyB3aXRoIGFub3RoZXIgZGV2ZWxvcGVyIGVhcmxpZXIsIG9uIHRoZQ0K PiBTZWFCSU9TIG1haWxpbmcgbGlzdC4gUGxlYXNlIHJlYWQgdGhyb3VnaCB0aGUgdGhyZWFkIGJl bG93Og0KPiANCj4gICBbU2VhQklPU10gaG90cGx1ZyBmYWlsdXJlIGlzc3VlIG9uIHBjaS1icmlk Z2UNCj4gICBodHRwOi8vbWlkLm1haWwtYXJjaGl2ZS5jb20vZGE4ZThkMWMtYWIxZS1jNzkwLTBj MzQtDQo+IGVmMDk0YTQzOGE3N0BsaW51eC5pbnRlbC5jb20NCj4gDQo+IGh0dHBzOi8vbWFpbC5j b3JlYm9vdC5vcmcvaHlwZXJraXR0eS9saXN0L3NlYWJpb3NAc2VhYmlvcy5vcmcvdGhyZWFkL1dL SFo2TFZQDQo+IE9BWFJQUFQ0TTVIWktVUE9OMlo3RVpXQi8NCj4gDQo+IEhvcGUgdGhpcyBoZWxw cywNCj4gTGFzemxvDQo=