From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/1] amdgpu: move asic id table to a separate file Date: Thu, 11 May 2017 09:28:24 +0800 Message-ID: <5913BE38.4080106@amd.com> References: <1494449815-10162-1-git-send-email-Samuel.Li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Li, Samuel" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Yuan, Xiaojie" bG9va3MgZmluZSB0byBtZSwgZmVlbCBmcmVlIHRvIGFkZCBteSBSQi4KUmV2aWV3ZWQtYnk6IEp1 bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4KCkJUVywgd2UgYWxzbyBoYXMgMSBvciAy IHBhdGNoIHRvIGltcHJvdmUgdGhlIG5hbWUgcGFyc2luZy4KUGxlYXNlIGFsc28gdGFrZSBhIGxv b2suCgpKZXJyeQoKT24gMDUvMTEvMjAxNyAwNToxMCBBTSwgTGksIFNhbXVlbCB3cm90ZToKPiBB bHNvIGF0dGFjaCBhIHNhbXBsZSBpZHMgZmlsZSBmb3IgcmVmZXJlbmNlLiBUaGUgbmFtZXMgYXJl IGZyb20gbWFya2V0aW5nLCBub3QgcmVsYXRlZCB0byBzb3VyY2UgY29kZSBhbmQgbm8gcmV2aWV3 cyBuZWNlc3NhcnkgaGVyZTopICBJdCBjYW4gYmUgcHV0IGluIGRpcmVjdG9yeSAvdXNyL3NoYXJl L2xpYmRybS4KPgo+IFNhbQo+Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBM aSwgU2FtdWVsCj4gU2VudDogV2VkbmVzZGF5LCBNYXkgMTAsIDIwMTcgNDo1NyBQTQo+IFRvOiBh bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBZdWFuLCBYaWFvamllIDxYaWFvamll Lll1YW5AYW1kLmNvbT47IExpLCBTYW11ZWwgPFNhbXVlbC5MaUBhbWQuY29tPgo+IFN1YmplY3Q6 IFtQQVRDSCAxLzFdIGFtZGdwdTogbW92ZSBhc2ljIGlkIHRhYmxlIHRvIGEgc2VwYXJhdGUgZmls ZQo+Cj4gRnJvbTogWGlhb2ppZSBZdWFuIDxYaWFvamllLll1YW5AYW1kLmNvbT4KPgo+IENoYW5n ZS1JZDogSTEyMjE2ZGExNDkxMGY1ZTJiMDk3MGJjMWZhZmMyYTIwYjBlZjFiYTkKPiBTaWduZWQt b2ZmLWJ5OiBTYW11ZWwgTGkgPFNhbXVlbC5MaUBhbWQuY29tPgo+IC0tLQo+ICAgYW1kZ3B1L01h a2VmaWxlLmFtICAgICAgIHwgICAyICsKPiAgIGFtZGdwdS9NYWtlZmlsZS5zb3VyY2VzICB8ICAg MiArLQo+ICAgYW1kZ3B1L2FtZGdwdV9hc2ljX2lkLmMgIHwgMTk4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBhbWRncHUvYW1kZ3B1X2FzaWNfaWQu aCAgfCAxNjUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBhbWRn cHUvYW1kZ3B1X2RldmljZS5jICAgfCAgMjggKysrKystLQo+ICAgYW1kZ3B1L2FtZGdwdV9pbnRl cm5hbC5oIHwgIDEwICsrKwo+ICAgNiBmaWxlcyBjaGFuZ2VkLCAyMzIgaW5zZXJ0aW9ucygrKSwg MTczIGRlbGV0aW9ucygtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFtZGdwdS9hbWRncHVfYXNp Y19pZC5jCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgYW1kZ3B1L2FtZGdwdV9hc2ljX2lkLmgKPgo+ IGRpZmYgLS1naXQgYS9hbWRncHUvTWFrZWZpbGUuYW0gYi9hbWRncHUvTWFrZWZpbGUuYW0KPiBp bmRleCBjZjdiYzFiLi5lY2Y5ZTgyIDEwMDY0NAo+IC0tLSBhL2FtZGdwdS9NYWtlZmlsZS5hbQo+ ICsrKyBiL2FtZGdwdS9NYWtlZmlsZS5hbQo+IEBAIC0zMCw2ICszMCw4IEBAIEFNX0NGTEFHUyA9 IFwKPiAgIAkkKFBUSFJFQURTVFVCU19DRkxBR1MpIFwKPiAgIAktSSQodG9wX3NyY2RpcikvaW5j bHVkZS9kcm0KPgo+ICtBTV9DUFBGTEFHUyA9IC1EQU1ER1BVX0FTSUNfSURfVEFCTEU9XCIke2Rh dGFkaXJ9L2xpYmRybS9hbWRncHUuaWRzXCIKPiArCj4gICBsaWJkcm1fYW1kZ3B1X2xhX0xUTElC UkFSSUVTID0gbGliZHJtX2FtZGdwdS5sYQo+ICAgbGliZHJtX2FtZGdwdV9sYWRpciA9ICQobGli ZGlyKQo+ICAgbGliZHJtX2FtZGdwdV9sYV9MREZMQUdTID0gLXZlcnNpb24tbnVtYmVyIDE6MDow IC1uby11bmRlZmluZWQKPiBkaWZmIC0tZ2l0IGEvYW1kZ3B1L01ha2VmaWxlLnNvdXJjZXMgYi9h bWRncHUvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IDQ4N2I5ZTAuLmJjM2FiYWEgMTAwNjQ0Cj4g LS0tIGEvYW1kZ3B1L01ha2VmaWxlLnNvdXJjZXMKPiArKysgYi9hbWRncHUvTWFrZWZpbGUuc291 cmNlcwo+IEBAIC0xLDUgKzEsNSBAQAo+ICAgTElCRFJNX0FNREdQVV9GSUxFUyA6PSBcCj4gLQlh bWRncHVfYXNpY19pZC5oIFwKPiArCWFtZGdwdV9hc2ljX2lkLmMgXAo+ICAgCWFtZGdwdV9iby5j IFwKPiAgIAlhbWRncHVfY3MuYyBcCj4gICAJYW1kZ3B1X2RldmljZS5jIFwKPiBkaWZmIC0tZ2l0 IGEvYW1kZ3B1L2FtZGdwdV9hc2ljX2lkLmMgYi9hbWRncHUvYW1kZ3B1X2FzaWNfaWQuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uZDUwZTIxYQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9hbWRncHUvYW1kZ3B1X2FzaWNfaWQuYwo+IEBAIC0wLDAgKzEsMTk4IEBACj4g Ky8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4K PiArICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiAr ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAq IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNo YWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQg SE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP Ugo+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwKPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gKyAqIE9USEVSIERFQUxJ TkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICovCj4gKwo+ICsjaWZkZWYgSEFWRV9DT05G SUdfSAo+ICsjaW5jbHVkZSAiY29uZmlnLmgiCj4gKyNlbmRpZgo+ICsKPiArI2luY2x1ZGUgPHN0 ZGlvLmg+Cj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsj aW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1ZGUgPGVy cm5vLmg+Cj4gKwo+ICsjaW5jbHVkZSAiYW1kZ3B1X2RybS5oIgo+ICsjaW5jbHVkZSAiYW1kZ3B1 X2ludGVybmFsLmgiCj4gKwo+ICtzdGF0aWMgaW50IHBhcnNlX29uZV9saW5lKGNvbnN0IGNoYXIg KmxpbmUsIHN0cnVjdCBhbWRncHVfYXNpY19pZCAqaWQpCj4gK3sKPiArCWNoYXIgKmJ1ZjsKPiAr CWNoYXIgKnNfZGlkOwo+ICsJY2hhciAqc19yaWQ7Cj4gKwljaGFyICpzX25hbWU7Cj4gKwljaGFy ICplbmRwdHI7Cj4gKwlpbnQgciA9IDA7Cj4gKwo+ICsJYnVmID0gc3RyZHVwKGxpbmUpOwo+ICsJ aWYgKCFidWYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJLyogaWdub3JlIGVtcHR5IGxp bmUgYW5kIGNvbW1lbnRlZCBsaW5lICovCj4gKwlpZiAoc3RybGVuKGxpbmUpID09IDAgfHwgbGlu ZVswXSA9PSAnIycpIHsKPiArCQlyID0gLUVBR0FJTjsKPiArCQlnb3RvIG91dDsKPiArCX0KPiAr Cj4gKwkvKiBkZXZpY2UgaWQgKi8KPiArCXNfZGlkID0gc3RydG9rKGJ1ZiwgIiwiKTsKPiArCWlm ICghc19kaWQpIHsKPiArCQlyID0gLUVJTlZBTDsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4g KwlpZC0+ZGlkID0gc3RydG9sKHNfZGlkLCAmZW5kcHRyLCAxNik7Cj4gKwlpZiAoKmVuZHB0cikg ewo+ICsJCXIgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCS8qIHJldmlz aW9uIGlkICovCj4gKwlzX3JpZCA9IHN0cnRvayhOVUxMLCAiLCIpOwo+ICsJaWYgKCFzX3JpZCkg ewo+ICsJCXIgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCWlkLT5yaWQg PSBzdHJ0b2woc19yaWQsICZlbmRwdHIsIDE2KTsKPiArCWlmICgqZW5kcHRyKSB7Cj4gKwkJciA9 IC1FSU5WQUw7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJLyogbWFya2V0aW5nIG5hbWUg Ki8KPiArCXNfbmFtZSA9IHN0cnRvayhOVUxMLCAiLCIpOwo+ICsJaWYgKCFzX25hbWUpIHsKPiAr CQlyID0gLUVJTlZBTDsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwlpZC0+bWFya2V0aW5n X25hbWUgPSBzdHJkdXAoc19uYW1lKTsKPiArCWlmIChpZC0+bWFya2V0aW5nX25hbWUgPT0gTlVM TCkgewo+ICsJCXIgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArb3V0Ogo+ ICsJZnJlZShidWYpOwo+ICsKPiArCXJldHVybiByOwo+ICt9Cj4gKwo+ICtpbnQgYW1kZ3B1X3Bh cnNlX2FzaWNfaWRzKHN0cnVjdCBhbWRncHVfYXNpY19pZCAqKnBfYXNpY19pZF90YWJsZSkKPiAr ewo+ICsJc3RydWN0IGFtZGdwdV9hc2ljX2lkICphc2ljX2lkX3RhYmxlOwo+ICsJc3RydWN0IGFt ZGdwdV9hc2ljX2lkICppZDsKPiArCUZJTEUgKmZwOwo+ICsJY2hhciAqbGluZSA9IE5VTEw7Cj4g KwlzaXplX3QgbGVuOwo+ICsJc3NpemVfdCBuOwo+ICsJaW50IGxpbmVfbnVtID0gMTsKPiArCXNp emVfdCB0YWJsZV9zaXplID0gMDsKPiArCXNpemVfdCB0YWJsZV9tYXhfc2l6ZSA9IDI1NjsKPiAr CWludCByID0gMDsKPiArCj4gKwlmcCA9IGZvcGVuKEFNREdQVV9BU0lDX0lEX1RBQkxFLCAiciIp Owo+ICsJaWYgKCFmcCkgewo+ICsJCWZwcmludGYoc3RkZXJyLCAiJXM6ICVzXG4iLCBBTURHUFVf QVNJQ19JRF9UQUJMRSwKPiArCQkJCXN0cmVycm9yKGVycm5vKSk7Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwl9Cj4gKwo+ICsJYXNpY19pZF90YWJsZSA9IGNhbGxvYyh0YWJsZV9tYXhfc2l6ZSwg c2l6ZW9mKHN0cnVjdCBhbWRncHVfYXNpY19pZCkpOwo+ICsJaWYgKCFhc2ljX2lkX3RhYmxlKSB7 Cj4gKwkJciA9IC1FTk9NRU07Cj4gKwkJZ290byBjbG9zZTsKPiArCX0KPiArCj4gKwkvKiAxc3Qg bGluZSBpcyBmaWxlIHZlcnNpb24gKi8KPiArCWlmICgobiA9IGdldGxpbmUoJmxpbmUsICZsZW4s IGZwKSkgIT0gLTEpIHsKPiArCQkvKiB0cmltIHRyYWlsaW5nIG5ld2xpbmUgKi8KPiArCQlpZiAo bGluZVtuIC0gMV0gPT0gJ1xuJykKPiArCQkJbGluZVtuIC0gMV0gPSAnXDAnOwo+ICsJCXByaW50 ZigiJXMgdmVyc2lvbjogJXNcbiIsIEFNREdQVV9BU0lDX0lEX1RBQkxFLCBsaW5lKTsKPiArCX0g ZWxzZSB7Cj4gKwkJZ290byBmcmVlOwo+ICsJfQo+ICsKPiArCXdoaWxlICgobiA9IGdldGxpbmUo JmxpbmUsICZsZW4sIGZwKSkgIT0gLTEpIHsKPiArCQlpZCA9IGFzaWNfaWRfdGFibGUgKyB0YWJs ZV9zaXplOwo+ICsKPiArCQkvKiB0cmltIHRyYWlsaW5nIG5ld2xpbmUgKi8KPiArCQlpZiAobGlu ZVtuIC0gMV0gPT0gJ1xuJykKPiArCQkJbGluZVtuIC0gMV0gPSAnXDAnOwo+ICsKPiArCQkvKgo+ ICsJCSAqIHBhcnNlIG9uZSBsaW5lLCBpdHMgZm9ybWF0IGxvb2tzIGxpa2U6Cj4gKwkJICogNjYx NyxDNyxBTUQgUmFkZW9uIFI3IDI0MCBTZXJpZXMKPiArCQkgKi8KPiArCQlyID0gcGFyc2Vfb25l X2xpbmUobGluZSwgaWQpOwo+ICsJCWlmIChyKSB7Cj4gKwkJCWlmIChyID09IC1FQUdBSU4pIHsK PiArCQkJCWxpbmVfbnVtKys7Cj4gKwkJCQljb250aW51ZTsKPiArCQkJfQo+ICsJCQlmcHJpbnRm KHN0ZGVyciwgIkludmFsaWQgZm9ybWF0OiAlczogbGluZSAlZDogJXNcbiIsCj4gKwkJCQkJQU1E R1BVX0FTSUNfSURfVEFCTEUsIGxpbmVfbnVtLCBsaW5lKTsKPiArCQkJZ290byBmcmVlOwo+ICsJ CX0KPiArCj4gKwkJbGluZV9udW0rKzsKPiArCQl0YWJsZV9zaXplKys7Cj4gKwo+ICsJCWlmICh0 YWJsZV9zaXplID49IHRhYmxlX21heF9zaXplKSB7Cj4gKwkJCS8qIGRvdWJsZSB0YWJsZSBzaXpl ICovCj4gKwkJCXRhYmxlX21heF9zaXplICo9IDI7Cj4gKwkJCWFzaWNfaWRfdGFibGUgPSByZWFs bG9jKGFzaWNfaWRfdGFibGUsIHRhYmxlX21heF9zaXplICoKPiArCQkJCQlzaXplb2Yoc3RydWN0 IGFtZGdwdV9hc2ljX2lkKSk7Cj4gKwkJCWlmICghYXNpY19pZF90YWJsZSkgewo+ICsJCQkJciA9 IC1FTk9NRU07Cj4gKwkJCQlnb3RvIGZyZWU7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ LyogZW5kIG9mIHRhYmxlICovCj4gKwlpZCA9IGFzaWNfaWRfdGFibGUgKyB0YWJsZV9zaXplOwo+ ICsJbWVtc2V0KGlkLCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9hc2ljX2lkKSk7Cj4gKwo+ICtm cmVlOgo+ICsJZnJlZShsaW5lKTsKPiArCj4gKwlpZiAociAmJiBhc2ljX2lkX3RhYmxlKSB7Cj4g KwkJd2hpbGUgKHRhYmxlX3NpemUtLSkgewo+ICsJCQlpZCA9IGFzaWNfaWRfdGFibGUgKyB0YWJs ZV9zaXplIC0xOwo+ICsJCQlpZiAoaWQtPm1hcmtldGluZ19uYW1lICE9ICBOVUxMKQo+ICsJCQkJ ZnJlZShpZC0+bWFya2V0aW5nX25hbWUpOwo+ICsJCX0KPiArCQlmcmVlKGFzaWNfaWRfdGFibGUp Owo+ICsJCWFzaWNfaWRfdGFibGUgPSBOVUxMOwo+ICsJfQo+ICtjbG9zZToKPiArCWZjbG9zZShm cCk7Cj4gKwo+ICsJKnBfYXNpY19pZF90YWJsZSA9IGFzaWNfaWRfdGFibGU7Cj4gKwo+ICsJcmV0 dXJuIHI7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9hc2ljX2lkLmggYi9hbWRn cHUvYW1kZ3B1X2FzaWNfaWQuaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDNl N2Q3MzYuLjAwMDAwMDAKPiAtLS0gYS9hbWRncHUvYW1kZ3B1X2FzaWNfaWQuaAo+ICsrKyAvZGV2 L251bGwKPiBAQCAtMSwxNjUgKzAsMCBAQAo+IC0vKgo+IC0gKiBDb3B5cmlnaHQgwqkgMjAxNiBB ZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCj4gLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4g LSAqCj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gLSAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24KPiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gLSAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ IC0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgo+IC0gKgo+IC0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+IC0gKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiAtICoKPiAt ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiAtICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gLSAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAo+IC0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiAtICogT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gLSAqIEFS SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUgo+IC0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gLSAqCj4g LSAqLwo+IC0KPiAtI2lmbmRlZiBfX0FNREdQVV9BU0lDX0lEX0hfXwo+IC0jZGVmaW5lIF9fQU1E R1BVX0FTSUNfSURfSF9fCj4gLQo+IC1zdGF0aWMgc3RydWN0IGFtZGdwdV9hc2ljX2lkX3RhYmxl X3Qgewo+IC0JdWludDMyX3QgZGlkOwo+IC0JdWludDMyX3QgcmlkOwo+IC0JY29uc3QgY2hhciAq bWFya2V0aW5nX25hbWU7Cj4gLX0gY29uc3QgYW1kZ3B1X2FzaWNfaWRfdGFibGUgW10gPSB7Cj4g LQl7MHg2NjAwLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg2MDAvODcwME0ifSwKPiAtCXsweDY2MDAs CTB4ODEsCSJBTUQgUmFkZW9uIFI3IE0zNzAifSwKPiAtCXsweDY2MDEsCTB4MCwJIkFNRCBSYWRl b24gSEQgODUwME0vODcwME0ifSwKPiAtCXsweDY2MDQsCTB4MCwJIkFNRCBSYWRlb24gUjcgTTI2 NSBTZXJpZXMifSwKPiAtCXsweDY2MDQsCTB4ODEsCSJBTUQgUmFkZW9uIFI3IE0zNTAifSwKPiAt CXsweDY2MDUsCTB4MCwJIkFNRCBSYWRlb24gUjcgTTI2MCBTZXJpZXMifSwKPiAtCXsweDY2MDUs CTB4ODEsCSJBTUQgUmFkZW9uIFI3IE0zNDAifSwKPiAtCXsweDY2MDYsCTB4MCwJIkFNRCBSYWRl b24gSEQgODc5ME0ifSwKPiAtCXsweDY2MDcsCTB4MCwJIkFNRCBSYWRlb24gSEQ4NTMwTSJ9LAo+ IC0JezB4NjYwOCwJMHgwLAkiQU1EIEZpcmVQcm8gVzIxMDAifSwKPiAtCXsweDY2MTAsCTB4MCwJ IkFNRCBSYWRlb24gSEQgODYwMCBTZXJpZXMifSwKPiAtCXsweDY2MTAsCTB4ODEsCSJBTUQgUmFk ZW9uIFI3IDM1MCJ9LAo+IC0JezB4NjYxMCwJMHg4MywJIkFNRCBSYWRlb24gUjUgMzQwIn0sCj4g LQl7MHg2NjExLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg1MDAgU2VyaWVzIn0sCj4gLQl7MHg2NjEz LAkweDAsCSJBTUQgUmFkZW9uIEhEIDg1MDAgc2VyaWVzIn0sCj4gLQl7MHg2NjE3LAkweEM3LAki QU1EIFJhZGVvbiBSNyAyNDAgU2VyaWVzIn0sCj4gLQl7MHg2NjQwLAkweDAsCSJBTUQgUmFkZW9u IEhEIDg5NTAifSwKPiAtCXsweDY2NDAsCTB4ODAsCSJBTUQgUmFkZW9uIFI5IE0zODAifSwKPiAt CXsweDY2NDYsCTB4MCwJIkFNRCBSYWRlb24gUjkgTTI4MFgifSwKPiAtCXsweDY2NDYsCTB4ODAs CSJBTUQgUmFkZW9uIFI5IE00NzBYIn0sCj4gLQl7MHg2NjQ3LAkweDAsCSJBTUQgUmFkZW9uIFI5 IE0yNzBYIn0sCj4gLQl7MHg2NjQ3LAkweDgwLAkiQU1EIFJhZGVvbiBSOSBNMzgwIn0sCj4gLQl7 MHg2NjQ5LAkweDAsCSJBTUQgRmlyZVBybyBXNTEwMCJ9LAo+IC0JezB4NjY1OCwJMHgwLAkiQU1E IFJhZGVvbiBSNyAyMDAgU2VyaWVzIn0sCj4gLQl7MHg2NjVDLAkweDAsCSJBTUQgUmFkZW9uIEhE IDc3MDAgU2VyaWVzIn0sCj4gLQl7MHg2NjVELAkweDAsCSJBTUQgUmFkZW9uIFI3IDIwMCBTZXJp ZXMifSwKPiAtCXsweDY2NUYsCTB4ODEsCSJBTUQgUmFkZW9uIFI3IDMwMCBTZXJpZXMifSwKPiAt CXsweDY2NjAsCTB4MCwJIkFNRCBSYWRlb24gSEQgODYwME0gU2VyaWVzIn0sCj4gLQl7MHg2NjYw LAkweDgxLAkiQU1EIFJhZGVvbiBSNSBNMzM1In0sCj4gLQl7MHg2NjYwLAkweDgzLAkiQU1EIFJh ZGVvbiBSNSBNMzMwIn0sCj4gLQl7MHg2NjYzLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg1MDBNIFNl cmllcyJ9LAo+IC0JezB4NjY2MywJMHg4MywJIkFNRCBSYWRlb24gUjUgTTMyMCJ9LAo+IC0JezB4 NjY2NCwJMHgwLAkiQU1EIFJhZGVvbiBSNSBNMjAwIFNlcmllcyJ9LAo+IC0JezB4NjY2NSwJMHgw LAkiQU1EIFJhZGVvbiBSNSBNMjAwIFNlcmllcyJ9LAo+IC0JezB4NjY2NSwJMHg4MywJIkFNRCBS YWRlb24gUjUgTTMyMCJ9LAo+IC0JezB4NjY2NywJMHgwLAkiQU1EIFJhZGVvbiBSNSBNMjAwIFNl cmllcyJ9LAo+IC0JezB4NjY2RiwJMHgwLAkiQU1EIFJhZGVvbiBIRCA4NTAwTSJ9LAo+IC0JezB4 Njc4MCwJMHgwLAkiQVRJIEZpcmVQcm8gViAoRmlyZUdMIFYpIEdyYXBoaWNzIEFkYXB0ZXIifSwK PiAtCXsweDY3OEEsCTB4MCwJIkFUSSBGaXJlUHJvIFYgKEZpcmVHTCBWKSBHcmFwaGljcyBBZGFw dGVyIn0sCj4gLQl7MHg2Nzk4LAkweDAsCSJBTUQgUmFkZW9uIEhEIDc5MDAgU2VyaWVzIn0sCj4g LQl7MHg2NzlBLAkweDAsCSJBTUQgUmFkZW9uIEhEIDc5MDAgU2VyaWVzIn0sCj4gLQl7MHg2NzlC LAkweDAsCSJBTUQgUmFkZW9uIEhEIDc5MDAgU2VyaWVzIn0sCj4gLQl7MHg2NzlFLAkweDAsCSJB TUQgUmFkZW9uIEhEIDc4MDAgU2VyaWVzIn0sCj4gLQl7MHg2N0EwLAkweDAsCSJIQVdBSUkgWFRH TCAoNjdBMCkifSwKPiAtCXsweDY3QTEsCTB4MCwJIkhBV0FJSSBHTDQwICg2N0ExKSJ9LAo+IC0J ezB4NjdCMCwJMHgwLAkiQU1EIFJhZGVvbiBSOSAyMDAgU2VyaWVzIn0sCj4gLQl7MHg2N0IwLAkw eDgwLAkiQU1EIFJhZGVvbiBSOSAzOTAgU2VyaWVzIn0sCj4gLQl7MHg2N0IxLAkweDAsCSJBTUQg UmFkZW9uIFI5IDIwMCBTZXJpZXMifSwKPiAtCXsweDY3QjEsCTB4ODAsCSJBTUQgUmFkZW9uIFI5 IDM5MCBTZXJpZXMifSwKPiAtCXsweDY3QjksCTB4MCwJIkFNRCBSYWRlb24gUjkgMjAwIFNlcmll cyJ9LAo+IC0JezB4NjdERiwJMHhDNCwJIkFNRCBSYWRlb24gUlggNDgwIEdyYXBoaWNzIn0sCj4g LQl7MHg2N0RGLAkweEM1LAkiQU1EIFJhZGVvbiBSWCA0NzAgR3JhcGhpY3MifSwKPiAtCXsweDY3 REYsCTB4QzcsCSJBTUQgUmFkZW9uIFJYIDQ4MCBHcmFwaGljcyJ9LAo+IC0JezB4NjdERiwJMHhD RiwJIkFNRCBSYWRlb24gUlggNDcwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0M0LAkweDAwLAkiQU1E IFJhZGVvbiBQcm8gV1ggNzEwMCBHcmFwaGljcyJ9LAo+IC0JezB4NjdDNywJMHgwMCwJIkFNRCBS YWRlb24gUHJvIFdYIDUxMDAgR3JhcGhpY3MifSwKPiAtCXsweDY3QzAsCTB4MDAsCSJBTUQgUmFk ZW9uIFBybyBXWCA3MTAwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0UwLAkweDAwLAkiQU1EIFJhZGVv biBQcm8gV1ggU2VyaWVzIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0UzLAkweDAwLAkiQU1EIFJhZGVv biBQcm8gV1ggNDEwMCBHcmFwaGljcyJ9LAo+IC0JezB4NjdFOCwJMHgwMCwJIkFNRCBSYWRlb24g UHJvIFdYIFNlcmllcyBHcmFwaGljcyJ9LAo+IC0JezB4NjdFOCwJMHgwMSwJIkFNRCBSYWRlb24g UHJvIFdYIFNlcmllcyBHcmFwaGljcyJ9LAo+IC0JezB4NjdFOCwJMHg4MCwJIkFNRCBSYWRlb24g RTkyNjAgR3JhcGhpY3MifSwKPiAtCXsweDY3RUIsCTB4MDAsCSJBTUQgUmFkZW9uIFBybyBXWCBT ZXJpZXMgR3JhcGhpY3MifSwKPiAtCXsweDY3RUYsCTB4QzAsCSJBTUQgUmFkZW9uIFJYIEdyYXBo aWNzIn0sCj4gLQl7MHg2N0VGLAkweEMxLAkiQU1EIFJhZGVvbiBSWCA0NjAgR3JhcGhpY3MifSwK PiAtCXsweDY3RUYsCTB4QzUsCSJBTUQgUmFkZW9uIFJYIDQ2MCBHcmFwaGljcyJ9LAo+IC0JezB4 NjdFRiwJMHhDNywJIkFNRCBSYWRlb24gUlggR3JhcGhpY3MifSwKPiAtCXsweDY3RUYsCTB4Q0Ys CSJBTUQgUmFkZW9uIFJYIDQ2MCBHcmFwaGljcyJ9LAo+IC0JezB4NjdFRiwJMHhFRiwJIkFNRCBS YWRlb24gUlggR3JhcGhpY3MifSwKPiAtCXsweDY3RkYsCTB4QzAsCSJBTUQgUmFkZW9uIFJYIEdy YXBoaWNzIn0sCj4gLQl7MHg2N0ZGLAkweEMxLAkiQU1EIFJhZGVvbiBSWCBHcmFwaGljcyJ9LAo+ IC0JezB4NjgwMCwJMHgwLAkiQU1EIFJhZGVvbiBIRCA3OTcwTSJ9LAo+IC0JezB4NjgwMSwJMHgw LAkiQU1EIFJhZGVvbihUTSkgSEQ4OTcwTSJ9LAo+IC0JezB4NjgwOCwJMHgwLAkiQVRJIEZpcmVQ cm8gVihGaXJlR0wgVikgR3JhcGhpY3MgQWRhcHRlciJ9LAo+IC0JezB4NjgwOSwJMHgwLAkiQVRJ IEZpcmVQcm8gVihGaXJlR0wgVikgR3JhcGhpY3MgQWRhcHRlciJ9LAo+IC0JezB4NjgxMCwJMHgw LAkiQU1EIFJhZGVvbihUTSkgSEQgODgwMCBTZXJpZXMifSwKPiAtCXsweDY4MTAsCTB4ODEsCSJB TUQgUmFkZW9uIFI3IDM3MCBTZXJpZXMifSwKPiAtCXsweDY4MTEsCTB4MCwJIkFNRCBSYWRlb24o VE0pIEhEODgwMCBTZXJpZXMifSwKPiAtCXsweDY4MTEsCTB4ODEsCSJBTUQgUmFkZW9uIFI3IDMw MCBTZXJpZXMifSwKPiAtCXsweDY4MTgsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzgwMCBTZXJpZXMi fSwKPiAtCXsweDY4MTksCTB4MCwJIkFNRCBSYWRlb24gSEQgNzgwMCBTZXJpZXMifSwKPiAtCXsw eDY4MjAsCTB4MCwJIkFNRCBSYWRlb24gSEQgODgwME0gU2VyaWVzIn0sCj4gLQl7MHg2ODIwLAkw eDgxLAkiQU1EIFJhZGVvbiBSOSBNMzc1In0sCj4gLQl7MHg2ODIwLAkweDgzLAkiQU1EIFJhZGVv biBSOSBNMzc1WCJ9LAo+IC0JezB4NjgyMSwJMHgwLAkiQU1EIFJhZGVvbiBIRCA4ODAwTSBTZXJp ZXMifSwKPiAtCXsweDY4MjEsCTB4ODcsCSJBTUQgUmFkZW9uIFI3IE0zODAifSwKPiAtCXsweDY4 MjEsCTB4ODMsCSJBTUQgUmFkZW9uIFI5IE0zNzBYIn0sCj4gLQl7MHg2ODIyLAkweDAsCSJBTUQg UmFkZW9uIEU4ODYwIn0sCj4gLQl7MHg2ODIzLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg4MDBNIFNl cmllcyJ9LAo+IC0JezB4NjgyNSwJMHgwLAkiQU1EIFJhZGVvbiBIRCA3ODAwTSBTZXJpZXMifSwK PiAtCXsweDY4MjcsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzgwME0gU2VyaWVzIn0sCj4gLQl7MHg2 ODI4LAkweDAsCSJBVEkgRmlyZVBybyBWKEZpcmVHTCBWKSBHcmFwaGljcyBBZGFwdGVyIn0sCj4g LQl7MHg2ODJCLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg4MDBNIFNlcmllcyJ9LAo+IC0JezB4Njgy QiwJMHg4NywJIkFNRCBSYWRlb24gUjkgTTM2MCJ9LAo+IC0JezB4NjgyQywJMHgwLAkiQU1EIEZp cmVQcm8gVzQxMDAifSwKPiAtCXsweDY4MkQsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzcwME0gU2Vy aWVzIn0sCj4gLQl7MHg2ODJGLAkweDAsCSJBTUQgUmFkZW9uIEhEIDc3MDBNIFNlcmllcyJ9LAo+ IC0JezB4NjgzNSwJMHgwLAkiQU1EIFJhZGVvbiBSNyBTZXJpZXMgLyBIRCA5MDAwIFNlcmllcyJ9 LAo+IC0JezB4NjgzNywJMHgwLAkiQU1EIFJhZGVvbiBIRDc3MDAgU2VyaWVzIn0sCj4gLQl7MHg2 ODNELAkweDAsCSJBTUQgUmFkZW9uIEhEIDc3MDAgU2VyaWVzIn0sCj4gLQl7MHg2ODNGLAkweDAs CSJBTUQgUmFkZW9uIEhEIDc3MDAgU2VyaWVzIn0sCj4gLQl7MHg2OTAwLAkweDAsCSJBTUQgUmFk ZW9uIFI3IE0yNjAifSwKPiAtCXsweDY5MDAsCTB4ODEsCSJBTUQgUmFkZW9uIFI3IE0zNjAifSwK PiAtCXsweDY5MDAsCTB4ODMsCSJBTUQgUmFkZW9uIFI3IE0zNDAifSwKPiAtCXsweDY5MDEsCTB4 MCwJIkFNRCBSYWRlb24gUjUgTTI1NSJ9LAo+IC0JezB4NjkwNywJMHgwLAkiQU1EIFJhZGVvbiBS NSBNMjU1In0sCj4gLQl7MHg2OTA3LAkweDg3LAkiQU1EIFJhZGVvbiBSNSBNMzE1In0sCj4gLQl7 MHg2OTIwLAkweDAsCSJBTUQgUmFkZW9uIFI5IE0zOTVYIn0sCj4gLQl7MHg2OTIwLAkweDEsCSJB TUQgUmFkZW9uIFI5IE0zOTBYIn0sCj4gLQl7MHg2OTIxLAkweDAsCSJBTUQgUmFkZW9uIFI5IE0y OTVYIn0sCj4gLQl7MHg2OTI5LAkweDAsCSJBTUQgRmlyZVBybyBTNzE1MCJ9LAo+IC0JezB4Njky QiwJMHgwLAkiQU1EIEZpcmVQcm8gVzcxMDAifSwKPiAtCXsweDY5MzgsCTB4MCwJIkFNRCBSYWRl b24gUjkgMjAwIFNlcmllcyJ9LAo+IC0JezB4NjkzOCwJMHhGMCwJIkFNRCBSYWRlb24gUjkgMjAw IFNlcmllcyJ9LAo+IC0JezB4NjkzOCwJMHhGMSwJIkFNRCBSYWRlb24gUjkgMzgwIFNlcmllcyJ9 LAo+IC0JezB4NjkzOSwJMHhGMCwJIkFNRCBSYWRlb24gUjkgMjAwIFNlcmllcyJ9LAo+IC0JezB4 NjkzOSwJMHgwLAkiQU1EIFJhZGVvbiBSOSAyMDAgU2VyaWVzIn0sCj4gLQl7MHg2OTM5LAkweEYx LAkiQU1EIFJhZGVvbiBSOSAzODAgU2VyaWVzIn0sCj4gLQl7MHg3MzAwLAkweEM4LAkiQU1EIFJh ZGVvbiBSOSBGdXJ5IFNlcmllcyJ9LAo+IC0JezB4NzMwMCwJMHhDQiwJIkFNRCBSYWRlb24gUjkg RnVyeSBTZXJpZXMifSwKPiAtCXsweDczMDAsCTB4Q0EsCSJBTUQgUmFkZW9uIFI5IEZ1cnkgU2Vy aWVzIn0sCj4gLQl7MHg5ODc0LAkweEM0LAkiQU1EIFJhZGVvbiBSNyBHcmFwaGljcyJ9LAo+IC0J ezB4OTg3NCwJMHhDNSwJIkFNRCBSYWRlb24gUjYgR3JhcGhpY3MifSwKPiAtCXsweDk4NzQsCTB4 QzYsCSJBTUQgUmFkZW9uIFI2IEdyYXBoaWNzIn0sCj4gLQl7MHg5ODc0LAkweEM3LAkiQU1EIFJh ZGVvbiBSNSBHcmFwaGljcyJ9LAo+IC0JezB4OTg3NCwJMHg4MSwJIkFNRCBSYWRlb24gUjYgR3Jh cGhpY3MifSwKPiAtCXsweDk4NzQsCTB4ODcsCSJBTUQgUmFkZW9uIFI1IEdyYXBoaWNzIn0sCj4g LQl7MHg5ODc0LAkweDg1LAkiQU1EIFJhZGVvbiBSNiBHcmFwaGljcyJ9LAo+IC0JezB4OTg3NCwJ MHg4NCwJIkFNRCBSYWRlb24gUjcgR3JhcGhpY3MifSwKPiAtCj4gLQl7MHgwMDAwLAkweDAsCSJc MCJ9LAo+IC19Owo+IC0jZW5kaWYKPiBkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YyBiL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiBpbmRleCBmNDczZDJkLi45ZDA4NzQ0IDEwMDY0 NAo+IC0tLSBhL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiArKysgYi9hbWRncHUvYW1kZ3B1X2Rl dmljZS5jCj4gQEAgLTQ0LDcgKzQ0LDYgQEAKPiAgICNpbmNsdWRlICJhbWRncHVfaW50ZXJuYWwu aCIKPiAgICNpbmNsdWRlICJ1dGlsX2hhc2hfdGFibGUuaCIKPiAgICNpbmNsdWRlICJ1dGlsX21h dGguaCIKPiAtI2luY2x1ZGUgImFtZGdwdV9hc2ljX2lkLmgiCj4KPiAgICNkZWZpbmUgUFRSX1RP X1VJTlQoeCkgKCh1bnNpZ25lZCkoKGludHB0cl90KSh4KSkpCj4gICAjZGVmaW5lIFVJTlRfVE9f UFRSKHgpICgodm9pZCAqKSgoaW50cHRyX3QpKHgpKSkKPiBAQCAtMTMxLDYgKzEzMCw3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X2dldF9hdXRoKGludCBmZCwgaW50ICphdXRoKQo+Cj4gICBzdGF0aWMg dm9pZCBhbWRncHVfZGV2aWNlX2ZyZWVfaW50ZXJuYWwoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2 KQo+ICAgewo+ICsJY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2lkICppZDsKPiAgIAlhbWRncHVf dmFtZ3JfZGVpbml0KCZkZXYtPnZhbWdyXzMyKTsKPiAgIAlhbWRncHVfdmFtZ3JfZGVpbml0KCZk ZXYtPnZhbWdyKTsKPiAgIAl1dGlsX2hhc2hfdGFibGVfZGVzdHJveShkZXYtPmJvX2ZsaW5rX25h bWVzKTsKPiBAQCAtMTQwLDYgKzE0MCwxMyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX2Zy ZWVfaW50ZXJuYWwoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2KQo+ICAgCWNsb3NlKGRldi0+ZmQp Owo+ICAgCWlmICgoZGV2LT5mbGlua19mZCA+PSAwKSAmJiAoZGV2LT5mZCAhPSBkZXYtPmZsaW5r X2ZkKSkKPiAgIAkJY2xvc2UoZGV2LT5mbGlua19mZCk7Cj4gKwlpZiAoZGV2LT5hc2ljX2lkcykg ewo+ICsJCWZvciAoaWQgPSBkZXYtPmFzaWNfaWRzOyBpZC0+ZGlkOyBpZCsrKSB7Cj4gKwkJCWlm IChpZC0+bWFya2V0aW5nX25hbWUgIT0gIE5VTEwpCj4gKwkJCQlmcmVlKGlkLT5tYXJrZXRpbmdf bmFtZSk7Cj4gKwkJfQo+ICsJCWZyZWUoZGV2LT5hc2ljX2lkcyk7Cj4gKwl9Cj4gICAJZnJlZShk ZXYpOwo+ICAgfQo+Cj4gQEAgLTI2Nyw2ICsyNzQsMTEgQEAgaW50IGFtZGdwdV9kZXZpY2VfaW5p dGlhbGl6ZShpbnQgZmQsCj4gICAJYW1kZ3B1X3ZhbWdyX2luaXQoJmRldi0+dmFtZ3JfMzIsIHN0 YXJ0LCBtYXgsCj4gICAJCQkgIGRldi0+ZGV2X2luZm8udmlydHVhbF9hZGRyZXNzX2FsaWdubWVu dCk7Cj4KPiArCXIgPSBhbWRncHVfcGFyc2VfYXNpY19pZHMoJmRldi0+YXNpY19pZHMpOwo+ICsJ aWYgKHIpCj4gKwkJZnByaW50ZihzdGRlcnIsICIlczogQ2FuIG5vdCBwYXJzZSBhc2ljIGlkcywg MHgleC4iLAo+ICsJCQlfX2Z1bmNfXywgcik7Cj4gKwo+ICAgCSptYWpvcl92ZXJzaW9uID0gZGV2 LT5tYWpvcl92ZXJzaW9uOwo+ICAgCSptaW5vcl92ZXJzaW9uID0gZGV2LT5taW5vcl92ZXJzaW9u Owo+ICAgCSpkZXZpY2VfaGFuZGxlID0gZGV2Owo+IEBAIC0yOTcsMTMgKzMwOSwxNSBAQCBpbnQg YW1kZ3B1X2RldmljZV9kZWluaXRpYWxpemUoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2KQo+Cj4g ICBjb25zdCBjaGFyICphbWRncHVfZ2V0X21hcmtldGluZ19uYW1lKGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldikKPiAgIHsKPiAtCWNvbnN0IHN0cnVjdCBhbWRncHVfYXNpY19pZF90YWJsZV90ICp0 ID0gYW1kZ3B1X2FzaWNfaWRfdGFibGU7Cj4gKwljb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWQg KmlkOwo+ICsKPiArCWlmICghZGV2LT5hc2ljX2lkcykKPiArCQlyZXR1cm4gTlVMTDsKPgo+IC0J d2hpbGUgKHQtPmRpZCkgewo+IC0JCWlmICgodC0+ZGlkID09IGRldi0+aW5mby5hc2ljX2lkKSAm Jgo+IC0JCSAgICAodC0+cmlkID09IGRldi0+aW5mby5wY2lfcmV2X2lkKSkKPiAtCQkJcmV0dXJu IHQtPm1hcmtldGluZ19uYW1lOwo+IC0JCXQrKzsKPiArCWZvciAoaWQgPSBkZXYtPmFzaWNfaWRz OyBpZC0+ZGlkOyBpZCsrKSB7Cj4gKwkJaWYgKChpZC0+ZGlkID09IGRldi0+aW5mby5hc2ljX2lk KSAmJgo+ICsJCQkJKGlkLT5yaWQgPT0gZGV2LT5pbmZvLnBjaV9yZXZfaWQpKQo+ICsJCQlyZXR1 cm4gaWQtPm1hcmtldGluZ19uYW1lOwo+ICAgCX0KPgo+ICAgCXJldHVybiBOVUxMOwo+IGRpZmYg LS1naXQgYS9hbWRncHUvYW1kZ3B1X2ludGVybmFsLmggYi9hbWRncHUvYW1kZ3B1X2ludGVybmFs LmgKPiBpbmRleCBjZjExOWE1Li45ZDExYmVhIDEwMDY0NAo+IC0tLSBhL2FtZGdwdS9hbWRncHVf aW50ZXJuYWwuaAo+ICsrKyBiL2FtZGdwdS9hbWRncHVfaW50ZXJuYWwuaAo+IEBAIC02OSw2ICs2 OSwxMiBAQCBzdHJ1Y3QgYW1kZ3B1X3ZhIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvX3ZhX21nciAq dmFtZ3I7Cj4gICB9Owo+Cj4gK3N0cnVjdCBhbWRncHVfYXNpY19pZCB7Cj4gKyAgICB1aW50MzJf dCBkaWQ7Cj4gKyAgICB1aW50MzJfdCByaWQ7Cj4gKwljaGFyICptYXJrZXRpbmdfbmFtZTsKPiAr fTsKPiArCj4gICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7Cj4gICAJYXRvbWljX3QgcmVmY291bnQ7 Cj4gICAJaW50IGZkOwo+IEBAIC03Niw2ICs4Miw4IEBAIHN0cnVjdCBhbWRncHVfZGV2aWNlIHsK PiAgIAl1bnNpZ25lZCBtYWpvcl92ZXJzaW9uOwo+ICAgCXVuc2lnbmVkIG1pbm9yX3ZlcnNpb247 Cj4KPiArCS8qKiBMb29rdXAgdGFibGUgb2YgYXNpYyBkZXZpY2UgaWQsIHJldmlzaW9uIGlkIGFu ZCBtYXJrZXRpbmcgbmFtZSAqLwo+ICsJc3RydWN0IGFtZGdwdV9hc2ljX2lkICphc2ljX2lkczsK PiAgIAkvKiogTGlzdCBvZiBidWZmZXIgaGFuZGxlcy4gUHJvdGVjdGVkIGJ5IGJvX3RhYmxlX211 dGV4LiAqLwo+ICAgCXN0cnVjdCB1dGlsX2hhc2hfdGFibGUgKmJvX2hhbmRsZXM7Cj4gICAJLyoq IExpc3Qgb2YgYnVmZmVyIEdFTSBmbGluayBuYW1lcy4gUHJvdGVjdGVkIGJ5IGJvX3RhYmxlX211 dGV4LiAqLwo+IEBAIC0xNDksNiArMTU3LDggQEAgYW1kZ3B1X3ZhbWdyX2ZpbmRfdmEoc3RydWN0 IGFtZGdwdV9ib192YV9tZ3IgKm1nciwgdWludDY0X3Qgc2l6ZSwKPiAgIGRybV9wcml2YXRlIHZv aWQKPiAgIGFtZGdwdV92YW1ncl9mcmVlX3ZhKHN0cnVjdCBhbWRncHVfYm9fdmFfbWdyICptZ3Is IHVpbnQ2NF90IHZhLCB1aW50NjRfdCBzaXplKTsKPgo+ICtkcm1fcHJpdmF0ZSBpbnQgYW1kZ3B1 X3BhcnNlX2FzaWNfaWRzKHN0cnVjdCBhbWRncHVfYXNpY19pZCAqKmFzaWNfaWRzKTsKPiArCj4g ICBkcm1fcHJpdmF0ZSBpbnQgYW1kZ3B1X3F1ZXJ5X2dwdV9pbmZvX2luaXQoYW1kZ3B1X2Rldmlj ZV9oYW5kbGUgZGV2KTsKPgo+ICAgZHJtX3ByaXZhdGUgdWludDY0X3QgYW1kZ3B1X2NzX2NhbGN1 bGF0ZV90aW1lb3V0KHVpbnQ2NF90IHRpbWVvdXQpOwo+Cj4KPgo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPiBh bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeAo=