From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27746 invoked from network); 6 Feb 2022 15:44:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 6 Feb 2022 15:44:17 -0000 Content-Type: multipart/mixed; boundary="===============0078719382377519352==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Subsurface?= To: ml@inbox.vuxu.org From: adbrown101 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 06 Feb 2022 16:44:17 +0100 List-Id: Message-ID: <20220206154417.1wqwZ5nc-5XJKAXfJu5apATQP_TXhycKU2vbZrNBNGc@z> GitHub notification mails are now in MIME to allow UTF8. --===============0078719382377519352== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYWRicm93bjEwMSBhZ2FpbnN0IG1h c3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20v YWRicm93bjEwMS92b2lkLXBhY2thZ2VzIHN1YnN1cmZhY2UKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0MTg3CgpTdWJzdXJmYWNlCjwhLS0gVW5jb21t ZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFw cGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUg Y2hhbmdlcyBpbiB0aGlzIFBSOiAqKllFUyoqDQoNCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBu ZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5t ZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKioNCg0KDQo8IS0tIE5vdGU6IElmIHRoZSBi dWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJ XShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVy L0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVh c3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3Nz IGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBD SS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIHg4Nl82NCwgeDg2XzY0LW11c2wsIGk2 ODYNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlm IHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NCwgYWFyY2g2NC1tdXNs DQogDQpJIGhhdmUgYmVlbiB1c2luZyBzdWJzdXJmYWNlIGZvciBzb21lIHRpbWUgYW5kIGhhdmUg dXNlZCBvbiB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLiBXb3JrcyB3ZWxsIG9uIHZvaWQuDQoKCkEg cGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zNDE4Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============0078719382377519352== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-subsurface-34187.patch" RnJvbSBkYmEzZGVhNzgxOTgwMDVjZmQwODJiY2Q2MzM1Njc5YTExMmU2MDY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPgpE YXRlOiBUaHUsIDI1IE5vdiAyMDIxIDE4OjIyOjE0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxLzNd IE5ldyBwYWNrYWdlOiBxdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzLTAuMC4wLjIKCi0tLQog c3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3RlbXBsYXRlIHwgMTggKysrKysr KysrKysrKysrKysrCiBzcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdXBkYXRl ICAgfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3RlbXBsYXRlCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3Vw ZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVmMzAxZDU0MjI3MwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1w bGF0ZQpAQCAtMCwwICsxLDE4IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdGxvY2F0aW9uLXBs dWdpbi1nb29nbGVtYXBzJworcGtnbmFtZT1xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzCit2 ZXJzaW9uPTAuMC4wLjIKK3JldmlzaW9uPTEKK3dya3NyYz1nb29nbGVtYXBzLXYuJHt2ZXJzaW9u fQorYnVpbGRfc3R5bGU9cW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1kZXZl bCIKK21ha2VkZXBlbmRzPSJxdDUtZGV2ZWwgcXQ1LWxvY2F0aW9uLWRldmVsIHF0NS1kZWNsYXJh dGl2ZS1kZXZlbCIKK3Nob3J0X2Rlc2M9Ikdvb2dsZSBNYXBzIHBsdWdpbiBmb3IgUXRMb2NhdGlv biIKK21haW50YWluZXI9IkFsYW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5jb20+IgorbGlj ZW5zZT0iTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1h cHMiCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1hcHMvYXJj aGl2ZS92LiR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YWFjMmY5OTU5MTdlNzVkZmYyODYx Y2UzODA0OWNjYmIxY2Q1MWQwNzhjYjQ1ZDc4MTU4Y2FhNDBhOTdhNWJmMAorCitwb3N0X2luc3Rh bGwoKSB7CisJdmxpY2Vuc2UgTElDRU5TRS50eHQKK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRs b2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy91cGRhdGUgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1 Z2luLWdvb2dsZW1hcHMvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uN2I2OGY5YmU2MmUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdGxvY2F0aW9u LXBsdWdpbi1nb29nbGVtYXBzL3VwZGF0ZQpAQCAtMCwwICsxLDIgQEAKK3BrZ25hbWU9Z29vZ2xl bWFwcworcGF0dGVybj0idlwuXEtbXGRcLl0rKD89XC50YXJcLmd6KSIKCkZyb20gZGI1OTI4ODA2 ZGViNWQ5YzAxZmM2ZDVmMTNhYzIxZjFhM2Y3NTg0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQWxhbiBCcm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNSBO b3YgMjAyMSAxODoyMzowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTog bGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtNS4wLjYKCi0tLQogc3JjcGtncy9saWJkaXZlY29t cHV0ZXItc3Vic3VyZmFjZS1kZXZlbCAgICAgIHwgICAxICsKIC4uLi9wYXRjaGVzL1BBR0VTSVpF LnBhdGNoICAgICAgICAgICAgICAgICAgICB8IDg3MyArKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUgICB8ICAzMCArCiBzcmNwa2dz L2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3VwZGF0ZSAgICAgfCAgIDIgKwogNCBmaWxlcyBj aGFuZ2VkLCA5MDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGli ZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3BhdGNoZXMvUEFHRVNJWkUucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBsYXRl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91 cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRl dmVsIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjM1MDBlMGI1YjBkNQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwKQEAgLTAsMCAr MSBAQAorbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3BhdGNo ZXMvUEFHRVNJWkUucGF0Y2ggYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3Bh dGNoZXMvUEFHRVNJWkUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi40ZGFmMDg0ZWQwZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21w dXRlci1zdWJzdXJmYWNlL3BhdGNoZXMvUEFHRVNJWkUucGF0Y2gKQEAgLTAsMCArMSw4NzMgQEAK Ky0tLSBhL3NyYy9saXF1aXZpc2lvbl9seW54LmMKKysrKyBiL3NyYy9saXF1aXZpc2lvbl9seW54 LmMKK0BAIC02MSwxNiArNjEsMTYgQEAKKyAjZGVmaW5lIE1BWFJFVFJJRVMgMgorICNkZWZpbmUg TUFYUEFDS0VUIDEyCisgI2RlZmluZSBTRUdNRU5UU0laRSAweDQwMAorLSNkZWZpbmUgUEFHRVNJ WkUgICAgMHgxMDAwCisrI2RlZmluZSBYUEFHRVNJWkUgICAgMHgxMDAwCisgI2RlZmluZSBNRU1T SVpFICAgICAweDIwMDAwMAorIAorLSNkZWZpbmUgUkJfTE9HQk9PS19CRUdJTiAgICAgICAgICgx ICogUEFHRVNJWkUpCistI2RlZmluZSBSQl9MT0dCT09LX0VORCAgICAgICAgICAgKDI1ICogUEFH RVNJWkUpCisrI2RlZmluZSBSQl9MT0dCT09LX0JFR0lOICAgICAgICAgKDEgKiBYUEFHRVNJWkUp CisrI2RlZmluZSBSQl9MT0dCT09LX0VORCAgICAgICAgICAgKDI1ICogWFBBR0VTSVpFKQorICNk ZWZpbmUgUkJfTE9HQk9PS19TSVpFICAgICAgICAgIChSQl9MT0dCT09LX0VORCAtIFJCX0xPR0JP T0tfQkVHSU4pCisgI2RlZmluZSBSQl9MT0dCT09LX0RJU1RBTkNFKGEsYikgcmluZ2J1ZmZlcl9k aXN0YW5jZSAoYSwgYiwgMSwgUkJfTE9HQk9PS19CRUdJTiwgUkJfTE9HQk9PS19FTkQpCisgCist I2RlZmluZSBSQl9QUk9GSUxFX0JFR0lOICAgICAgICAgKDI1ICogUEFHRVNJWkUpCistI2RlZmlu ZSBSQl9QUk9GSUxFX0VORCAgICAgICAgICAgKDUwMCAqIFBBR0VTSVpFKQorKyNkZWZpbmUgUkJf UFJPRklMRV9CRUdJTiAgICAgICAgICgyNSAqIFhQQUdFU0laRSkKKysjZGVmaW5lIFJCX1BST0ZJ TEVfRU5EICAgICAgICAgICAoNTAwICogWFBBR0VTSVpFKQorICNkZWZpbmUgUkJfUFJPRklMRV9T SVpFICAgICAgICAgIChSQl9QUk9GSUxFX0VORCAtIFJCX1BST0ZJTEVfQkVHSU4pCisgI2RlZmlu ZSBSQl9QUk9GSUxFX0RJU1RBTkNFKGEsYikgcmluZ2J1ZmZlcl9kaXN0YW5jZSAoYSwgYiwgMSwg UkJfUFJPRklMRV9CRUdJTiwgUkJfUFJPRklMRV9FTkQpCisgCitAQCAtMzExLDggKzMxMSw4IEBA IGxpcXVpdmlzaW9uX2x5bnhfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5z aWduZWQgaW50IGFkZHJlc3MsIHVuc2lnCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdT OworIAorIAkvLyBHZXQgdGhlIHBhZ2UgYW5kIHNlZ21lbnQgbnVtYmVyLgorLQl1bnNpZ25lZCBp bnQgcGFnZSAgICA9IChhZGRyZXNzIC8gUEFHRVNJWkUpOworLQl1bnNpZ25lZCBpbnQgc2VnbWVu dCA9IChhZGRyZXNzICUgUEFHRVNJWkUpIC8gU0VHTUVOVFNJWkU7CisrCXVuc2lnbmVkIGludCBw YWdlICAgID0gKGFkZHJlc3MgLyBYUEFHRVNJWkUpOworKwl1bnNpZ25lZCBpbnQgc2VnbWVudCA9 IChhZGRyZXNzICUgWFBBR0VTSVpFKSAvIFNFR01FTlRTSVpFOworIAorIAl1bnNpZ25lZCBpbnQg bmJ5dGVzID0gMDsKKyAJd2hpbGUgKG5ieXRlcyA8IHNpemUpIHsKK0BAIC0zMzYsNyArMzM2LDcg QEAgbGlxdWl2aXNpb25fbHlueF9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1 bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWcKKyAKKyAJCW5ieXRlcyArPSBTRUdNRU5UU0laRTsK KyAJCXNlZ21lbnQrKzsKKy0JCWlmIChzZWdtZW50ID09IChQQUdFU0laRSAvIFNFR01FTlRTSVpF KSkgeworKwkJaWYgKHNlZ21lbnQgPT0gKFhQQUdFU0laRSAvIFNFR01FTlRTSVpFKSkgeworIAkJ CXNlZ21lbnQgPSAwOworIAkJCXBhZ2UrKzsKKyAJCX0KK0BAIC00MTAsMTMgKzQxMCwxMyBAQCBs aXF1aXZpc2lvbl9seW54X2RldmljZV9mb3JlYWNoIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRj X2RpdmVfY2FsbGJhY2tfdCBjYWxsYgorIAl1bnNpZ25lZCBpbnQgaGVhZGVyc2l6ZSA9IChtb2Rl bCA9PSBYRU4pID8gU1pfSEVBREVSX1hFTiA6IFNaX0hFQURFUl9PVEhFUjsKKyAKKyAJLy8gR2V0 IHRoZSBudW1iZXIgb2YgaGVhZGVycyBwZXIgcGFnZS4KKy0JdW5zaWduZWQgaW50IG5wYWdlcyA9 IFBBR0VTSVpFIC8gaGVhZGVyc2l6ZTsKKysJdW5zaWduZWQgaW50IG5wYWdlcyA9IFhQQUdFU0la RSAvIGhlYWRlcnNpemU7CisgCisgCS8vIEdldCB0aGUgbG9nYm9vayBwb2ludGVycy4KKyAJdW5z aWduZWQgaW50IGJlZ2luID0gYXJyYXlfdWludDE2X2xlIChjb25maWcgKyAweDQ2KTsKKyAJdW5z aWduZWQgaW50IGVuZCAgID0gYXJyYXlfdWludDE2X2xlIChjb25maWcgKyAweDQ4KTsKKy0JdW5z aWduZWQgaW50IHJiX2xvZ2Jvb2tfYmVnaW4gPSBSQl9MT0dCT09LX0JFR0lOICsgKGJlZ2luIC8g bnBhZ2VzKSAqIFBBR0VTSVpFICsgKGJlZ2luICUgbnBhZ2VzKSAqIGhlYWRlcnNpemU7CistCXVu c2lnbmVkIGludCByYl9sb2dib29rX2VuZCAgID0gUkJfTE9HQk9PS19CRUdJTiArIChlbmQgICAv IG5wYWdlcykgKiBQQUdFU0laRSArIChlbmQgICAlIG5wYWdlcykgKiBoZWFkZXJzaXplOworKwl1 bnNpZ25lZCBpbnQgcmJfbG9nYm9va19iZWdpbiA9IFJCX0xPR0JPT0tfQkVHSU4gKyAoYmVnaW4g LyBucGFnZXMpICogWFBBR0VTSVpFICsgKGJlZ2luICUgbnBhZ2VzKSAqIGhlYWRlcnNpemU7Cisr CXVuc2lnbmVkIGludCByYl9sb2dib29rX2VuZCAgID0gUkJfTE9HQk9PS19CRUdJTiArIChlbmQg ICAvIG5wYWdlcykgKiBYUEFHRVNJWkUgKyAoZW5kICAgJSBucGFnZXMpICogaGVhZGVyc2l6ZTsK KyAJaWYgKHJiX2xvZ2Jvb2tfYmVnaW4gPCBSQl9MT0dCT09LX0JFR0lOIHx8IHJiX2xvZ2Jvb2tf YmVnaW4gPiBSQl9MT0dCT09LX0VORCB8fAorIAkJcmJfbG9nYm9va19lbmQgICA8IFJCX0xPR0JP T0tfQkVHSU4gfHwgcmJfbG9nYm9va19lbmQgICA+IFJCX0xPR0JPT0tfRU5EKSB7CisgCQlFUlJP UiAoYWJzdHJhY3QtPmNvbnRleHQsICJJbnZhbGlkIGxvZ2Jvb2sgcG9pbnRlcnMgKCUwNHgsICUw NHgpLiIsCitAQCAtNDc4LDggKzQ3OCw4IEBAIGxpcXVpdmlzaW9uX2x5bnhfZGV2aWNlX2ZvcmVh Y2ggKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZGl2ZV9jYWxsYmFja190IGNhbGxiCisgCQkJ YWRkcmVzcyA9IFJCX0xPR0JPT0tfRU5EOworIAorIAkJLy8gU2tpcCB0aGUgcGFkZGluZyBieXRl cy4KKy0JCWlmICgoYWRkcmVzcyAlIFBBR0VTSVpFKSA9PSAwKSB7CistCQkJdW5zaWduZWQgaW50 IHBhZGRpbmcgPSBQQUdFU0laRSAlIGhlYWRlcnNpemU7CisrCQlpZiAoKGFkZHJlc3MgJSBYUEFH RVNJWkUpID09IDApIHsKKysJCQl1bnNpZ25lZCBpbnQgcGFkZGluZyA9IFhQQUdFU0laRSAlIGhl YWRlcnNpemU7CisgCQkJdW5zaWduZWQgY2hhciBkdW1teVtTWl9IRUFERVJfTUFYXSA9IHswfTsK KyAJCQlzdGF0dXMgPSBkY19yYnN0cmVhbV9yZWFkIChyYmxvZ2Jvb2ssICZwcm9ncmVzcywgZHVt bXksIHBhZGRpbmcpOworIAkJCWlmIChzdGF0dXMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKy0t LSBhL3NyYy9vY2VhbmljX2F0b20yLmMKKysrKyBiL3NyYy9vY2VhbmljX2F0b20yLmMKK0BAIC05 OTQsMTEgKzk5NCwxMSBAQCBvY2VhbmljX2F0b20yX2RldmljZV92ZXJzaW9uIChkY19kZXZpY2Vf dCAqYWJzdHJhY3QsIHVuc2lnbmVkIGNoYXIgZGF0YVtdLCB1bnNpZworIAlpZiAoIUlTSU5TVEFO Q0UgKGFic3RyYWN0KSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCistCWlm IChzaXplIDwgUEFHRVNJWkUpCisrCWlmIChzaXplIDwgWFBBR0VTSVpFKQorIAkJcmV0dXJuIERD X1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJdW5zaWduZWQgY2hhciBjb21tYW5kW10gPSB7Q01E X1ZFUlNJT059OworLQlkY19zdGF0dXNfdCByYyA9IG9jZWFuaWNfYXRvbTJfdHJhbnNmZXIgKGRl dmljZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5kKSwgQUNLLCBkYXRhLCBQQUdFU0laRSwgMSk7 CisrCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY19hdG9tMl90cmFuc2ZlciAoZGV2aWNlLCBjb21t YW5kLCBzaXplb2YgKGNvbW1hbmQpLCBBQ0ssIGRhdGEsIFhQQUdFU0laRSwgMSk7CisgCWlmIChy YyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykKKyAJCXJldHVybiByYzsKKyAKK0BAIC0xMDEyLDggKzEw MTIsOCBAQCBvY2VhbmljX2F0b20yX2RldmljZV9yZWFkIChkY19kZXZpY2VfdCAqYWJzdHJhY3Qs IHVuc2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZ25lZAorIAlvY2VhbmljX2F0b20yX2RldmljZV90 ICpkZXZpY2UgPSAob2NlYW5pY19hdG9tMl9kZXZpY2VfdCopIGFic3RyYWN0OworIAljb25zdCBv Y2VhbmljX2NvbW1vbl9sYXlvdXRfdCAqbGF5b3V0ID0gZGV2aWNlLT5iYXNlLmxheW91dDsKKyAK Ky0JaWYgKChhZGRyZXNzICUgUEFHRVNJWkUgIT0gMCkgfHwKKy0JCShzaXplICAgICUgUEFHRVNJ WkUgIT0gMCkpCisrCWlmICgoYWRkcmVzcyAlIFhQQUdFU0laRSAhPSAwKSB8fAorKwkJKHNpemUg ICAgJSBYUEFHRVNJWkUgIT0gMCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOwor IAorIAkvLyBQaWNrIHRoZSBjb3JyZWN0IHJlYWQgY29tbWFuZCBhbmQgbnVtYmVyIG9mIGNoZWNr c3VtIGJ5dGVzLgorQEAgLTEwMzcsNyArMTAzNyw3IEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNlX3Jl YWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIHVuc2lnbmVk CisgCX0KKyAKKyAJLy8gUGljayB0aGUgYmVzdCBwYWdlc2l6ZSB0byB1c2UuCistCXVuc2lnbmVk IGludCBwYWdlc2l6ZSA9IGRldmljZS0+YmlncGFnZSAqIFBBR0VTSVpFOworKwl1bnNpZ25lZCBp bnQgcGFnZXNpemUgPSBkZXZpY2UtPmJpZ3BhZ2UgKiBYUEFHRVNJWkU7CisgCisgCS8vIEhpZ2gg bWVtb3J5IHN0YXRlLgorIAl1bnNpZ25lZCBpbnQgaGlnaG1lbSA9IDA7CitAQCAtMTA0OSw3ICsx MDQ5LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0 LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWduZWQKKyAJCQloaWdobWVtID0gbGF5b3V0LT5o aWdobWVtOworIAkJCXJlYWRfY21kID0gQ01EX1JFQUQxNkhJOworIAkJCWNyY19zaXplID0gMjsK Ky0JCQlwYWdlc2l6ZSA9IDE2ICogUEFHRVNJWkU7CisrCQkJcGFnZXNpemUgPSAxNiAqIFhQQUdF U0laRTsKKyAJCX0KKyAKKyAJCS8vIENhbGN1bGF0ZSB0aGUgcGFnZSBudW1iZXIgYWZ0ZXIgbWFw cGluZyB0aGUgdmlydHVhbCBoaWdoIG1lbW9yeQorQEAgLTEwNTgsNyArMTA1OCw3IEBAIG9jZWFu aWNfYXRvbTJfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50 IGFkZHJlc3MsIHVuc2lnbmVkCisgCisgCQlpZiAocGFnZSAhPSBkZXZpY2UtPmNhY2hlZF9wYWdl IHx8IGhpZ2htZW0gIT0gZGV2aWNlLT5jYWNoZWRfaGlnaG1lbSkgeworIAkJCS8vIFJlYWQgdGhl IHBhY2thZ2UuCistCQkJdW5zaWduZWQgaW50IG51bWJlciA9IGhpZ2htZW0gPyBwYWdlIDogcGFn ZSAqIGRldmljZS0+YmlncGFnZTsgLy8gVGhpcyBpcyBhbHdheXMgUEFHRVNJWkUsIGV2ZW4gaW4g YmlnIHBhZ2UgbW9kZS4KKysJCQl1bnNpZ25lZCBpbnQgbnVtYmVyID0gaGlnaG1lbSA/IHBhZ2Ug OiBwYWdlICogZGV2aWNlLT5iaWdwYWdlOyAvLyBUaGlzIGlzIGFsd2F5cyBYUEFHRVNJWkUsIGV2 ZW4gaW4gYmlnIHBhZ2UgbW9kZS4KKyAJCQl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbXSA9IHtyZWFk X2NtZCwKKyAJCQkJCShudW1iZXIgPj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCQkobnVtYmVy ICAgICApICYgMHhGRiwgLy8gbG93CitAQCAtMTA5Myw4ICsxMDkzLDggQEAgb2NlYW5pY19hdG9t Ml9kZXZpY2Vfd3JpdGUgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJl c3MsIGNvbnN0IHUKKyB7CisgCW9jZWFuaWNfYXRvbTJfZGV2aWNlX3QgKmRldmljZSA9IChvY2Vh bmljX2F0b20yX2RldmljZV90KikgYWJzdHJhY3Q7CisgCistCWlmICgoYWRkcmVzcyAlIFBBR0VT SVpFICE9IDApIHx8CistCQkoc2l6ZSAgICAlIFBBR0VTSVpFICE9IDApKQorKwlpZiAoKGFkZHJl c3MgJSBYUEFHRVNJWkUgIT0gMCkgfHwKKysJCShzaXplICAgICUgWFBBR0VTSVpFICE9IDApKQor IAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJLy8gSW52YWxpZGF0ZSB0aGUg Y2FjaGUuCitAQCAtMTEwNCw3ICsxMTA0LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2Vfd3JpdGUg KGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIGNvbnN0IHUKKyAJ dW5zaWduZWQgaW50IG5ieXRlcyA9IDA7CisgCXdoaWxlIChuYnl0ZXMgPCBzaXplKSB7CisgCQkv LyBQcmVwYXJlIHRvIHdyaXRlIHRoZSBwYWNrYWdlLgorLQkJdW5zaWduZWQgaW50IG51bWJlciA9 IGFkZHJlc3MgLyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBudW1iZXIgPSBhZGRyZXNzIC8g WFBBR0VTSVpFOworIAkJdW5zaWduZWQgY2hhciBwcmVwYXJlW10gPSB7Q01EX1dSSVRFLAorIAkJ CQkobnVtYmVyID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkobnVtYmVyICAgICApICYgMHhG RiwgLy8gbG93CitAQCAtMTExNCwxNiArMTExNCwxNiBAQCBvY2VhbmljX2F0b20yX2RldmljZV93 cml0ZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgY29uc3Qg dQorIAkJCXJldHVybiByYzsKKyAKKyAJCS8vIFdyaXRlIHRoZSBwYWNrYWdlLgorLQkJdW5zaWdu ZWQgY2hhciBjb21tYW5kW1BBR0VTSVpFICsgMV0gPSB7MH07CistCQltZW1jcHkgKGNvbW1hbmQs IGRhdGEsIFBBR0VTSVpFKTsKKy0JCWNvbW1hbmRbUEFHRVNJWkVdID0gY2hlY2tzdW1fYWRkX3Vp bnQ4IChjb21tYW5kLCBQQUdFU0laRSwgMHgwMCk7CisrCQl1bnNpZ25lZCBjaGFyIGNvbW1hbmRb WFBBR0VTSVpFICsgMV0gPSB7MH07CisrCQltZW1jcHkgKGNvbW1hbmQsIGRhdGEsIFhQQUdFU0la RSk7CisrCQljb21tYW5kW1hQQUdFU0laRV0gPSBjaGVja3N1bV9hZGRfdWludDggKGNvbW1hbmQs IFhQQUdFU0laRSwgMHgwMCk7CisgCQlyYyA9IG9jZWFuaWNfYXRvbTJfdHJhbnNmZXIgKGRldmlj ZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5kKSwgQUNLLCBOVUxMLCAwLCAwKTsKKyAJCWlmIChy YyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykKKyAJCQlyZXR1cm4gcmM7CisgCistCQluYnl0ZXMgKz0g UEFHRVNJWkU7CistCQlhZGRyZXNzICs9IFBBR0VTSVpFOworLQkJZGF0YSArPSBQQUdFU0laRTsK KysJCW5ieXRlcyArPSBYUEFHRVNJWkU7CisrCQlhZGRyZXNzICs9IFhQQUdFU0laRTsKKysJCWRh dGEgKz0gWFBBR0VTSVpFOworIAl9CisgCisgCXJldHVybiBEQ19TVEFUVVNfU1VDQ0VTUzsKKy0t LSBhL3NyYy9vY2VhbmljX2F0b20yX3BhcnNlci5jCisrKysgYi9zcmMvb2NlYW5pY19hdG9tMl9w YXJzZXIuYworQEAgLTE2NSw4ICsxNjUsOCBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9jcmVhdGUg KGRjX3BhcnNlcl90ICoqb3V0LCBkY19jb250ZXh0X3QgKmNvbnRleHQsIHVuc2lnbmVkCisgCisg CS8vIFNldCB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgCXBhcnNlci0+bW9kZWwgPSBtb2RlbDsKKy0J cGFyc2VyLT5oZWFkZXJzaXplID0gOSAqIFBBR0VTSVpFIC8gMjsKKy0JcGFyc2VyLT5mb290ZXJz aXplID0gMiAqIFBBR0VTSVpFIC8gMjsKKysJcGFyc2VyLT5oZWFkZXJzaXplID0gOSAqIFhQQUdF U0laRSAvIDI7CisrCXBhcnNlci0+Zm9vdGVyc2l6ZSA9IDIgKiBYUEFHRVNJWkUgLyAyOworIAlp ZiAobW9kZWwgPT0gREFUQU1BU0sgfHwgbW9kZWwgPT0gQ09NUFVNQVNLIHx8CisgCQltb2RlbCA9 PSBHRU8gfHwgbW9kZWwgPT0gR0VPMjAgfHwKKyAJCW1vZGVsID09IFZFTzIwIHx8IG1vZGVsID09 IFZFTzMwIHx8CitAQCAtMTc3LDMwICsxNzcsMzAgQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfY3Jl YXRlIChkY19wYXJzZXJfdCAqKm91dCwgZGNfY29udGV4dF90ICpjb250ZXh0LCB1bnNpZ25lZAor IAkJbW9kZWwgPT0gSTIwMCB8fCBtb2RlbCA9PSBJMjAwQyB8fAorIAkJbW9kZWwgPT0gSTMwMEMg fHwgbW9kZWwgPT0gR0VPNDAgfHwKKyAJCW1vZGVsID09IFZFTzQwIHx8IG1vZGVsID09IEk0NzBU QykgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplIC09IFBBR0VTSVpFOworKwkJcGFyc2VyLT5oZWFk ZXJzaXplIC09IFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBWVDQgfHwgbW9kZWwg PT0gVlQ0MSkgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplICs9IFBBR0VTSVpFOworKwkJcGFyc2Vy LT5oZWFkZXJzaXplICs9IFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBUWDEpIHsK Ky0JCXBhcnNlci0+aGVhZGVyc2l6ZSArPSAyICogUEFHRVNJWkU7CisrCQlwYXJzZXItPmhlYWRl cnNpemUgKz0gMiAqIFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBBVE9NMSB8fCBt b2RlbCA9PSBJMTAwIHx8CisgCQltb2RlbCA9PSBQUk9QTFVTNCkgeworLQkJcGFyc2VyLT5oZWFk ZXJzaXplIC09IDIgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSAtPSAyICogWFBB R0VTSVpFOworIAl9IGVsc2UgaWYgKG1vZGVsID09IEYxMEEgfHwgbW9kZWwgPT0gRjEwQiB8fAor IAkJbW9kZWwgPT0gTVVORElBTDIgfHwgbW9kZWwgPT0gTVVORElBTDMpIHsKKy0JCXBhcnNlci0+ aGVhZGVyc2l6ZSA9IDMgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDMgKiBY UEFHRVNJWkU7CisgCQlwYXJzZXItPmZvb3RlcnNpemUgPSAwOworIAl9IGVsc2UgaWYgKG1vZGVs ID09IEYxMUEgfHwgbW9kZWwgPT0gRjExQikgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplID0gNSAq IFBBR0VTSVpFOworKwkJcGFyc2VyLT5oZWFkZXJzaXplID0gNSAqIFhQQUdFU0laRTsKKyAJCXBh cnNlci0+Zm9vdGVyc2l6ZSA9IDA7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gQTMwMENTIHx8IG1v ZGVsID09IFZUWCB8fAorIAkJbW9kZWwgPT0gSTQ1MFQgfHwgbW9kZWwgPT0gSTc1MFRDIHx8Cisg CQltb2RlbCA9PSBJNzcwUiB8fCBtb2RlbCA9PSBTQUdFIHx8CisgCQltb2RlbCA9PSBCRUFDT04p IHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDUgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVh ZGVyc2l6ZSA9IDUgKiBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gUFJPUExVU1gp IHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDMgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVh ZGVyc2l6ZSA9IDMgKiBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gSTU1MEMgfHwg bW9kZWwgPT0gV0lTRE9NNCkgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplID0gNSAqIFBBR0VTSVpF IC8gMjsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDUgKiBYUEFHRVNJWkUgLyAyOworIAl9Cisg CisgCXBhcnNlci0+c2VyaWFsID0gc2VyaWFsOworQEAgLTQyOCwxMiArNDI4LDEyIEBAIG9jZWFu aWNfYXRvbTJfcGFyc2VyX2NhY2hlIChvY2VhbmljX2F0b20yX3BhcnNlcl90ICpwYXJzZXIpCisg CQlyZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CisgCisgCS8vIEdldCB0aGUgb2Zmc2V0IHRv IHRoZSBoZWFkZXIgYW5kIGZvb3RlciBzYW1wbGUuCistCXVuc2lnbmVkIGludCBoZWFkZXIgPSBo ZWFkZXJzaXplIC0gUEFHRVNJWkUgLyAyOworKwl1bnNpZ25lZCBpbnQgaGVhZGVyID0gaGVhZGVy c2l6ZSAtIFhQQUdFU0laRSAvIDI7CisgCXVuc2lnbmVkIGludCBmb290ZXIgPSBzaXplIC0gZm9v dGVyc2l6ZTsKKyAJaWYgKHBhcnNlci0+bW9kZWwgPT0gVlQ0IHx8IHBhcnNlci0+bW9kZWwgPT0g VlQ0MSB8fAorIAkJcGFyc2VyLT5tb2RlbCA9PSBBMzAwQUkgfHwgcGFyc2VyLT5tb2RlbCA9PSBW SVNJT04gfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gWFBBSVIpIHsKKy0JCWhlYWRlciA9IDMgKiBQ QUdFU0laRTsKKysJCWhlYWRlciA9IDMgKiBYUEFHRVNJWkU7CisgCX0KKyAKKyAJLy8gR2V0IHRo ZSBkaXZlIG1vZGUuCitAQCAtNjYwLDcgKzY2MCw3IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX3Zl bmRvciAob2NlYW5pY19hdG9tMl9wYXJzZXJfdCAqcGFyc2VyLCBjb25zdCB1bnNpZ25lZCBjaGFy CisgCQkvLyBHZXQgdGhlIHNhbXBsZSBzaXplLgorIAkJdW5zaWduZWQgaW50IGxlbmd0aCA9IHNh bXBsZXNpemU7CisgCQlpZiAoc2FtcGxldHlwZSA9PSAweEJCKSB7CistCQkJbGVuZ3RoID0gUEFH RVNJWkU7CisrCQkJbGVuZ3RoID0gWFBBR0VTSVpFOworIAkJfQorIAorIAkJLy8gVmVuZG9yIHNw ZWNpZmljIGRhdGEKK0BAIC03MzgsNyArNzM4LDcgQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfc2Ft cGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18K KyAJCX0KKyAJfQorIAorLQl1bnNpZ25lZCBpbnQgc2FtcGxlc2l6ZSA9IFBBR0VTSVpFIC8gMjsK KysJdW5zaWduZWQgaW50IHNhbXBsZXNpemUgPSBYUEFHRVNJWkUgLyAyOworIAlpZiAocGFyc2Vy LT5tb2RlID09IEZSRUVESVZFKSB7CisgCQlpZiAocGFyc2VyLT5tb2RlbCA9PSBGMTBBIHx8IHBh cnNlci0+bW9kZWwgPT0gRjEwQiB8fAorIAkJCXBhcnNlci0+bW9kZWwgPT0gRjExQSB8fCBwYXJz ZXItPm1vZGVsID09IEYxMUIgfHwKK0BAIC03NTQsNyArNzU0LDcgQEAgb2NlYW5pY19hdG9tMl9w YXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9j YWxsYmFja18KKyAJCXBhcnNlci0+bW9kZWwgPT0gSTc1MFRDIHx8IHBhcnNlci0+bW9kZWwgPT0g UFJPUExVU1ggfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gSTc3MFIgfHwgcGFyc2VyLT5tb2RlbCA9 PSBJNDcwVEMgfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gU0FHRSB8fCBwYXJzZXItPm1vZGVsID09 IEJFQUNPTikgeworLQkJc2FtcGxlc2l6ZSA9IFBBR0VTSVpFOworKwkJc2FtcGxlc2l6ZSA9IFhQ QUdFU0laRTsKKyAJfQorIAorIAl1bnNpZ25lZCBpbnQgaGF2ZV90ZW1wZXJhdHVyZSA9IDEsIGhh dmVfcHJlc3N1cmUgPSAxOworQEAgLTgyNCw3ICs4MjQsNyBAQCBvY2VhbmljX2F0b20yX3BhcnNl cl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxi YWNrXworIAkJLy8gbGFyZ2VyIHNpemUuIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0aGF0IG1hbnkg Ynl0ZXMgYXZhaWxhYmxlLgorIAkJdW5zaWduZWQgaW50IGxlbmd0aCA9IHNhbXBsZXNpemU7Cisg CQlpZiAoc2FtcGxldHlwZSA9PSAweEJCKSB7CistCQkJbGVuZ3RoID0gUEFHRVNJWkU7CisrCQkJ bGVuZ3RoID0gWFBBR0VTSVpFOworIAkJCWlmIChvZmZzZXQgKyBsZW5ndGggPiBzaXplIC0gcGFy c2VyLT5mb290ZXJzaXplKSB7CisgCQkJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkJ1ZmZl ciBvdmVyZmxvdyBkZXRlY3RlZCEiKTsKKyAJCQkJcmV0dXJuIERDX1NUQVRVU19EQVRBRk9STUFU OworLS0tIGEvc3JjL29jZWFuaWNfY29tbW9uLmMKKysrKyBiL3NyYy9vY2VhbmljX2NvbW1vbi5j CitAQCAtMTA0LDcgKzEwNCw3IEBAIG9jZWFuaWNfY29tbW9uX21hdGNoX3BhdHRlcm4gKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnN0cmluZywgY29uc3QgdW5zaWduZWQgY2hhciAqCisgCXVuc2lnbmVk IGludCB2YWx1ZSA9IDA7CisgCXVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgCistCWZvciAodW5z aWduZWQgaW50IGkgPSAwOyBpIDwgUEFHRVNJWkU7ICsraSwgKytwYXR0ZXJuLCArK3N0cmluZykg eworKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IFhQQUdFU0laRTsgKytpLCArK3BhdHRl cm4sICsrc3RyaW5nKSB7CisgCQlpZiAoKnBhdHRlcm4gIT0gJ1wwJykgeworIAkJCS8vIENvbXBh cmUgdGhlIHBhdHRlcm4uCisgCQkJaWYgKCpwYXR0ZXJuICE9ICpzdHJpbmcpCitAQCAtMjA2LDcg KzIwNiw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9kdW1wIChkY19kZXZpY2VfdCAqYWJzdHJh Y3QsIGRjX2J1ZmZlcl90ICpidWZmZXIpCisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwg RENfRVZFTlRfVkVORE9SLCAmdmVuZG9yKTsKKyAKKyAJcmV0dXJuIGRldmljZV9kdW1wX3JlYWQg KGFic3RyYWN0LCBkY19idWZmZXJfZ2V0X2RhdGEgKGJ1ZmZlciksCistCQlkY19idWZmZXJfZ2V0 X3NpemUgKGJ1ZmZlciksIFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2UpOworKwkJZGNfYnVm ZmVyX2dldF9zaXplIChidWZmZXIpLCBYUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSk7Cisg fQorIAorIAorQEAgLTIzNSw3ICsyMzUsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2VfbG9nYm9v ayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190ICpwcm9ncgorIAl9 CisgCisgCS8vIFJlYWQgdGhlIHBvaW50ZXIgZGF0YS4KKy0JdW5zaWduZWQgY2hhciBwb2ludGVy c1tQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgcG9pbnRlcnNbWFBBR0VTSVpFXSA9 IHswfTsKKyAJcmMgPSBkY19kZXZpY2VfcmVhZCAoYWJzdHJhY3QsIGxheW91dC0+Y2ZfcG9pbnRl cnMsIHBvaW50ZXJzLCBzaXplb2YgKHBvaW50ZXJzKSk7CisgCWlmIChyYyAhPSBEQ19TVEFUVVNf U1VDQ0VTUykgeworIAkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiRmFpbGVkIHRvIHJlYWQg dGhlIG1lbW9yeSBwYWdlLiIpOworQEAgLTI3OSw4ICsyNzksOCBAQCBvY2VhbmljX2NvbW1vbl9k ZXZpY2VfbG9nYm9vayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190 ICpwcm9ncgorIAl9CisgCisgCS8vIFVwZGF0ZSBhbmQgZW1pdCBhIHByb2dyZXNzIGV2ZW50Lgor LQlwcm9ncmVzcy0+Y3VycmVudCArPSBQQUdFU0laRTsKKy0JcHJvZ3Jlc3MtPm1heGltdW0gKz0g UEFHRVNJWkU7CisrCXByb2dyZXNzLT5jdXJyZW50ICs9IFhQQUdFU0laRTsKKysJcHJvZ3Jlc3Mt Pm1heGltdW0gKz0gWFBBR0VTSVpFOworIAlwcm9ncmVzcy0+bWF4aW11bSAtPSAobGF5b3V0LT5y Yl9sb2dib29rX2VuZCAtIGxheW91dC0+cmJfbG9nYm9va19iZWdpbikgLSByYl9sb2dib29rX3Np emU7CisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsIHBy b2dyZXNzKTsKKyAKK0BAIC0yOTgsNyArMjk4LDcgQEAgb2NlYW5pY19jb21tb25fZGV2aWNlX2xv Z2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jlc3NfdCAqcHJvZ3IK KyAKKyAJLy8gQ3JlYXRlIHRoZSByaW5nYnVmZmVyIHN0cmVhbS4KKyAJZGNfcmJzdHJlYW1fdCAq cmJzdHJlYW0gPSBOVUxMOworLQlyYyA9IGRjX3Jic3RyZWFtX25ldyAoJnJic3RyZWFtLCBhYnN0 cmFjdCwgUEFHRVNJWkUsIFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2UsIGxheW91dC0+cmJf bG9nYm9va19iZWdpbiwgbGF5b3V0LT5yYl9sb2dib29rX2VuZCwgcmJfbG9nYm9va19lbmQpOwor KwlyYyA9IGRjX3Jic3RyZWFtX25ldyAoJnJic3RyZWFtLCBhYnN0cmFjdCwgWFBBR0VTSVpFLCBY UEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSwgbGF5b3V0LT5yYl9sb2dib29rX2JlZ2luLCBs YXlvdXQtPnJiX2xvZ2Jvb2tfZW5kLCByYl9sb2dib29rX2VuZCk7CisgCWlmIChyYyAhPSBEQ19T VEFUVVNfU1VDQ0VTUykgeworIAkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiRmFpbGVkIHRv IGNyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJlYW0uIik7CisgCQlyZXR1cm4gcmM7CitAQCAtMzc1 LDcgKzM3NSw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9wcm9maWxlIChkY19kZXZpY2VfdCAq YWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3QgKnByb2dyCisgCWNvbnN0IG9jZWFuaWNfY29t bW9uX2xheW91dF90ICpsYXlvdXQgPSBkZXZpY2UtPmxheW91dDsKKyAKKyAJLy8gR2V0IHRoZSBw YWdlc2l6ZQorLQl1bnNpZ25lZCBpbnQgcGFnZXNpemUgPSBsYXlvdXQtPmhpZ2htZW0gPyAxNiAq IFBBR0VTSVpFIDogUEFHRVNJWkU7CisrCXVuc2lnbmVkIGludCBwYWdlc2l6ZSA9IGxheW91dC0+ aGlnaG1lbSA/IDE2ICogWFBBR0VTSVpFIDogWFBBR0VTSVpFOworIAorIAkvLyBDYWNoZSB0aGUg bG9nYm9vayBwb2ludGVyIGFuZCBzaXplLgorIAljb25zdCB1bnNpZ25lZCBjaGFyICpsb2dib29r cyA9IGRjX2J1ZmZlcl9nZXRfZGF0YSAobG9nYm9vayk7CitAQCAtNDYwLDcgKzQ2MCw3IEBAIG9j ZWFuaWNfY29tbW9uX2RldmljZV9wcm9maWxlIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2 ZW50X3Byb2dyZXNzX3QgKnByb2dyCisgCisgCS8vIENyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJl YW0uCisgCWRjX3Jic3RyZWFtX3QgKnJic3RyZWFtID0gTlVMTDsKKy0JcmMgPSBkY19yYnN0cmVh bV9uZXcgKCZyYnN0cmVhbSwgYWJzdHJhY3QsIFBBR0VTSVpFLCBQQUdFU0laRSAqIGRldmljZS0+ bXVsdGlwYWdlLCBsYXlvdXQtPnJiX3Byb2ZpbGVfYmVnaW4sIGxheW91dC0+cmJfcHJvZmlsZV9l bmQsIHJiX3Byb2ZpbGVfZW5kKTsKKysJcmMgPSBkY19yYnN0cmVhbV9uZXcgKCZyYnN0cmVhbSwg YWJzdHJhY3QsIFhQQUdFU0laRSwgWFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2UsIGxheW91 dC0+cmJfcHJvZmlsZV9iZWdpbiwgbGF5b3V0LT5yYl9wcm9maWxlX2VuZCwgcmJfcHJvZmlsZV9l bmQpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKyAJCUVSUk9SIChhYnN0cmFj dC0+Y29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHJpbmdidWZmZXIgc3RyZWFtLiIpOwor IAkJcmV0dXJuIHJjOworQEAgLTU1Myw3ICs1NTMsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2Vf cHJvZmlsZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190ICpwcm9n cgorIAkJCXVuc2lnbmVkIGludCB2YWx1ZV9oaSA9IHZhbHVlICYgMHhFMDAwOworIAkJCXVuc2ln bmVkIGludCB2YWx1ZV9sbyA9IHZhbHVlICYgMHgwRkZGOworIAkJCXVuc2lnbmVkIGludCBucGFn ZXMgPSAoKHZhbHVlX2hpID4+IDEpIHwgdmFsdWVfbG8pICsgMTsKKy0JCQl1bnNpZ25lZCBpbnQg bGVuZ3RoID0gbnBhZ2VzICogUEFHRVNJWkU7CisrCQkJdW5zaWduZWQgaW50IGxlbmd0aCA9IG5w YWdlcyAqIFhQQUdFU0laRTsKKyAJCQlpZiAocmJfZW50cnlfc2l6ZSA+IGxlbmd0aCkgeworIAkJ CQlyYl9lbnRyeV9zaXplID0gbGVuZ3RoOworIAkJCX0KK0BAIC01ODQsNyArNTg0LDcgQEAgb2Nl YW5pY19jb21tb25fZGV2aWNlX2ZvcmVhY2ggKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZGl2 ZV9jYWxsYmFja190IGNhbGxiYWMKKyAKKyAJLy8gRW5hYmxlIHByb2dyZXNzIG5vdGlmaWNhdGlv bnMuCisgCWRjX2V2ZW50X3Byb2dyZXNzX3QgcHJvZ3Jlc3MgPSBFVkVOVF9QUk9HUkVTU19JTklU SUFMSVpFUjsKKy0JcHJvZ3Jlc3MubWF4aW11bSA9IFBBR0VTSVpFICsKKysJcHJvZ3Jlc3MubWF4 aW11bSA9IFhQQUdFU0laRSArCisgCQkobGF5b3V0LT5yYl9sb2dib29rX2VuZCAtIGxheW91dC0+ cmJfbG9nYm9va19iZWdpbikgKworIAkJKGxheW91dC0+cmJfcHJvZmlsZV9lbmQgLSBsYXlvdXQt PnJiX3Byb2ZpbGVfYmVnaW4pOworIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJzdHJhY3QsIERDX0VW RU5UX1BST0dSRVNTLCAmcHJvZ3Jlc3MpOworQEAgLTU5Niw3ICs1OTYsNyBAQCBvY2VhbmljX2Nv bW1vbl9kZXZpY2VfZm9yZWFjaCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19kaXZlX2NhbGxi YWNrX3QgY2FsbGJhYworIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJzdHJhY3QsIERDX0VWRU5UX1ZF TkRPUiwgJnZlbmRvcik7CisgCisgCS8vIFJlYWQgdGhlIGRldmljZSBpZC4KKy0JdW5zaWduZWQg Y2hhciBpZFtQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgaWRbWFBBR0VTSVpFXSA9 IHswfTsKKyAJZGNfc3RhdHVzX3QgcmMgPSBkY19kZXZpY2VfcmVhZCAoYWJzdHJhY3QsIGxheW91 dC0+Y2ZfZGV2aW5mbywgaWQsIHNpemVvZiAoaWQpKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19T VUNDRVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gcmVhZCB0 aGUgbWVtb3J5IHBhZ2UuIik7CitAQCAtNjA0LDcgKzYwNCw3IEBAIG9jZWFuaWNfY29tbW9uX2Rl dmljZV9mb3JlYWNoIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2RpdmVfY2FsbGJhY2tfdCBj YWxsYmFjCisgCX0KKyAKKyAJLy8gVXBkYXRlIGFuZCBlbWl0IGEgcHJvZ3Jlc3MgZXZlbnQuCist CXByb2dyZXNzLmN1cnJlbnQgKz0gUEFHRVNJWkU7CisrCXByb2dyZXNzLmN1cnJlbnQgKz0gWFBB R0VTSVpFOworIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJzdHJhY3QsIERDX0VWRU5UX1BST0dSRVNT LCAmcHJvZ3Jlc3MpOworIAorIAkvLyBFbWl0IGEgZGV2aWNlIGluZm8gZXZlbnQuCistLS0gYS9z cmMvb2NlYW5pY19jb21tb24uaAorKysrIGIvc3JjL29jZWFuaWNfY29tbW9uLmgKK0BAIC0yOCw3 ICsyOCw3IEBACisgZXh0ZXJuICJDIiB7CisgI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisgCist I2RlZmluZSBQQUdFU0laRSAweDEwCisrI2RlZmluZSBYUEFHRVNJWkUgMHgxMAorICNkZWZpbmUg RlBNQVhTSVpFIDB4MjAKKyAKKyAjZGVmaW5lIE9DRUFOSUNfQ09NTU9OX01BVENIKHZlcnNpb24s cGF0dGVybnMsZmlybXdhcmUpIFwKK0BAIC02Miw3ICs2Miw3IEBAIHR5cGVkZWYgc3RydWN0IG9j ZWFuaWNfY29tbW9uX2xheW91dF90IHsKKyB0eXBlZGVmIHN0cnVjdCBvY2VhbmljX2NvbW1vbl9k ZXZpY2VfdCB7CisgCWRjX2RldmljZV90IGJhc2U7CisgCXVuc2lnbmVkIGludCBmaXJtd2FyZTsK Ky0JdW5zaWduZWQgY2hhciB2ZXJzaW9uW1BBR0VTSVpFXTsKKysJdW5zaWduZWQgY2hhciB2ZXJz aW9uW1hQQUdFU0laRV07CisgCXVuc2lnbmVkIGNoYXIgZmluZ2VycHJpbnRbRlBNQVhTSVpFXTsK KyAJY29uc3Qgb2NlYW5pY19jb21tb25fbGF5b3V0X3QgKmxheW91dDsKKyAJdW5zaWduZWQgaW50 IG11bHRpcGFnZTsKK0BAIC03NSw3ICs3NSw3IEBAIHR5cGVkZWYgc3RydWN0IG9jZWFuaWNfY29t bW9uX2RldmljZV92dGFibGVfdCB7CisgfSBvY2VhbmljX2NvbW1vbl9kZXZpY2VfdnRhYmxlX3Q7 CisgCisgdHlwZWRlZiBzdHJ1Y3Qgb2NlYW5pY19jb21tb25fdmVyc2lvbl90IHsKKy0JdW5zaWdu ZWQgY2hhciBwYXR0ZXJuW1BBR0VTSVpFICsgMV07CisrCXVuc2lnbmVkIGNoYXIgcGF0dGVybltY UEFHRVNJWkUgKyAxXTsKKyAJdW5zaWduZWQgaW50IGZpcm13YXJlOworIAljb25zdCBvY2Vhbmlj X2NvbW1vbl9sYXlvdXRfdCAqbGF5b3V0OworIH0gb2NlYW5pY19jb21tb25fdmVyc2lvbl90Owor LS0tIGEvc3JjL29jZWFuaWNfdmVvMjUwLmMKKysrKyBiL3NyYy9vY2VhbmljX3ZlbzI1MC5jCitA QCAtMzg0LDI0ICszODQsMjQgQEAgb2NlYW5pY192ZW8yNTBfZGV2aWNlX3ZlcnNpb24gKGRjX2Rl dmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgY2hhciBkYXRhW10sIHVuc2kKKyAJaWYgKCFJU0lO U1RBTkNFIChhYnN0cmFjdCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAor LQlpZiAoc2l6ZSA8IFBBR0VTSVpFKQorKwlpZiAoc2l6ZSA8IFhQQUdFU0laRSkKKyAJCXJldHVy biBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCistCXVuc2lnbmVkIGNoYXIgYW5zd2VyW1BBR0VT SVpFICsgMl0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgYW5zd2VyW1hQQUdFU0laRSArIDJdID0g ezB9OworIAl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbMl0gPSB7MHg5MCwgMHgwMH07CisgCWRjX3N0 YXR1c190IHJjID0gb2NlYW5pY192ZW8yNTBfdHJhbnNmZXIgKGRldmljZSwgY29tbWFuZCwgc2l6 ZW9mIChjb21tYW5kKSwgYW5zd2VyLCBzaXplb2YgKGFuc3dlcikpOworIAlpZiAocmMgIT0gRENf U1RBVFVTX1NVQ0NFU1MpCisgCQlyZXR1cm4gcmM7CisgCisgCS8vIFZlcmlmeSB0aGUgY2hlY2tz dW0gb2YgdGhlIGFuc3dlci4KKy0JdW5zaWduZWQgY2hhciBjcmMgPSBhbnN3ZXJbUEFHRVNJWkVd OworLQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDggKGFuc3dlciwgUEFH RVNJWkUsIDB4MDApOworKwl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltYUEFHRVNJWkVdOwor Kwl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDggKGFuc3dlciwgWFBBR0VT SVpFLCAweDAwKTsKKyAJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNv bnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCXJldHVybiBEQ19TVEFU VVNfUFJPVE9DT0w7CisgCX0KKyAKKy0JbWVtY3B5IChkYXRhLCBhbnN3ZXIsIFBBR0VTSVpFKTsK KysJbWVtY3B5IChkYXRhLCBhbnN3ZXIsIFhQQUdFU0laRSk7CisgCisgCXJldHVybiBEQ19TVEFU VVNfU1VDQ0VTUzsKKyB9CitAQCAtNDEyLDI4ICs0MTIsMjggQEAgb2NlYW5pY192ZW8yNTBfZGV2 aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIHVu c2lnbmUKKyB7CisgCW9jZWFuaWNfdmVvMjUwX2RldmljZV90ICpkZXZpY2UgPSAob2NlYW5pY192 ZW8yNTBfZGV2aWNlX3QqKSBhYnN0cmFjdDsKKyAKKy0JaWYgKChhZGRyZXNzICUgUEFHRVNJWkUg IT0gMCkgfHwKKy0JCShzaXplICAgICUgUEFHRVNJWkUgIT0gMCkpCisrCWlmICgoYWRkcmVzcyAl IFhQQUdFU0laRSAhPSAwKSB8fAorKwkJKHNpemUgICAgJSBYUEFHRVNJWkUgIT0gMCkpCisgCQly ZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0g MDsKKyAJd2hpbGUgKG5ieXRlcyA8IHNpemUpIHsKKyAJCS8vIENhbGN1bGF0ZSB0aGUgbnVtYmVy IG9mIHBhY2thZ2VzLgorLQkJdW5zaWduZWQgaW50IG5wYWNrZXRzID0gKHNpemUgLSBuYnl0ZXMp IC8gUEFHRVNJWkU7CisrCQl1bnNpZ25lZCBpbnQgbnBhY2tldHMgPSAoc2l6ZSAtIG5ieXRlcykg LyBYUEFHRVNJWkU7CisgCQlpZiAobnBhY2tldHMgPiBNVUxUSVBBR0UpCisgCQkJbnBhY2tldHMg PSBNVUxUSVBBR0U7CisgCisgCQkvLyBSZWFkIHRoZSBwYWNrYWdlLgorLQkJdW5zaWduZWQgaW50 IGZpcnN0ID0gIGFkZHJlc3MgLyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBmaXJzdCA9ICBh ZGRyZXNzIC8gWFBBR0VTSVpFOworIAkJdW5zaWduZWQgaW50IGxhc3QgID0gZmlyc3QgKyBucGFj a2V0cyAtIDE7CistCQl1bnNpZ25lZCBjaGFyIGFuc3dlclsoUEFHRVNJWkUgKyAxKSAqIE1VTFRJ UEFHRSArIDFdID0gezB9OworKwkJdW5zaWduZWQgY2hhciBhbnN3ZXJbKFhQQUdFU0laRSArIDEp ICogTVVMVElQQUdFICsgMV0gPSB7MH07CisgCQl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbNl0gPSB7 MHgyMCwKKyAJCQkJKGZpcnN0ICAgICApICYgMHhGRiwgLy8gbG93CisgCQkJCShmaXJzdCA+PiA4 KSAmIDB4RkYsIC8vIGhpZ2gKKyAJCQkJKGxhc3QgICAgICkgJiAweEZGLCAvLyBsb3cKKyAJCQkJ KGxhc3QgPj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCTB9OworLQkJZGNfc3RhdHVzX3QgcmMg PSBvY2VhbmljX3ZlbzI1MF90cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1h bmQpLCBhbnN3ZXIsIChQQUdFU0laRSArIDEpICogbnBhY2tldHMgKyAxKTsKKysJCWRjX3N0YXR1 c190IHJjID0gb2NlYW5pY192ZW8yNTBfdHJhbnNmZXIgKGRldmljZSwgY29tbWFuZCwgc2l6ZW9m IChjb21tYW5kKSwgYW5zd2VyLCAoWFBBR0VTSVpFICsgMSkgKiBucGFja2V0cyArIDEpOworIAkJ aWYgKHJjICE9IERDX1NUQVRVU19TVUNDRVNTKQorIAkJCXJldHVybiByYzsKKyAKK0BAIC00NDIs MTkgKzQ0MiwxOSBAQCBvY2VhbmljX3ZlbzI1MF9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFi c3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWduZQorIAkJdW5zaWduZWQgaW50IG9m ZnNldCA9IDA7CisgCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5wYWNrZXRzOyArK2kp IHsKKyAJCQkvLyBWZXJpZnkgdGhlIGNoZWNrc3VtIG9mIHRoZSBhbnN3ZXIuCistCQkJdW5zaWdu ZWQgY2hhciBjcmMgPSBhbnN3ZXJbb2Zmc2V0ICsgUEFHRVNJWkVdOworLQkJCXVuc2lnbmVkIGNo YXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50OCAoYW5zd2VyICsgb2Zmc2V0LCBQQUdFU0laRSwg MHgwMCk7CisrCQkJdW5zaWduZWQgY2hhciBjcmMgPSBhbnN3ZXJbb2Zmc2V0ICsgWFBBR0VTSVpF XTsKKysJCQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDggKGFuc3dlciAr IG9mZnNldCwgWFBBR0VTSVpFLCAweDAwKTsKKyAJCQlpZiAoY3JjICE9IGNjcmMpIHsKKyAJCQkJ RVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgY2hlY2tzdW0uIik7 CisgCQkJCXJldHVybiBEQ19TVEFUVVNfUFJPVE9DT0w7CisgCQkJfQorIAorLQkJCW1lbWNweSAo ZGF0YSwgYW5zd2VyICsgb2Zmc2V0LCBQQUdFU0laRSk7CisrCQkJbWVtY3B5IChkYXRhLCBhbnN3 ZXIgKyBvZmZzZXQsIFhQQUdFU0laRSk7CisgCistCQkJb2Zmc2V0ICs9IFBBR0VTSVpFICsgMTsK Ky0JCQluYnl0ZXMgKz0gUEFHRVNJWkU7CistCQkJYWRkcmVzcyArPSBQQUdFU0laRTsKKy0JCQlk YXRhICs9IFBBR0VTSVpFOworKwkJCW9mZnNldCArPSBYUEFHRVNJWkUgKyAxOworKwkJCW5ieXRl cyArPSBYUEFHRVNJWkU7CisrCQkJYWRkcmVzcyArPSBYUEFHRVNJWkU7CisrCQkJZGF0YSArPSBY UEFHRVNJWkU7CisgCQl9CisgCX0KKyAKKy0tLSBhL3NyYy9vY2VhbmljX3ZlbzI1MF9wYXJzZXIu YworKysrIGIvc3JjL29jZWFuaWNfdmVvMjUwX3BhcnNlci5jCitAQCAtMTQyLDcgKzE0Miw3IEBA IG9jZWFuaWNfdmVvMjUwX3BhcnNlcl9nZXRfZmllbGQgKGRjX3BhcnNlcl90ICphYnN0cmFjdCwg ZGNfZmllbGRfdHlwZV90IHR5cGUsIHVuCisgCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEgPSBh YnN0cmFjdC0+ZGF0YTsKKyAJdW5zaWduZWQgaW50IHNpemUgPSBhYnN0cmFjdC0+c2l6ZTsKKyAK Ky0JaWYgKHNpemUgPCA3ICogUEFHRVNJWkUgLyAyKQorKwlpZiAoc2l6ZSA8IDcgKiBYUEFHRVNJ WkUgLyAyKQorIAkJcmV0dXJuIERDX1NUQVRVU19EQVRBRk9STUFUOworIAorIAlpZiAoIXBhcnNl ci0+Y2FjaGVkKSB7CitAQCAtMTU3LDcgKzE1Nyw3IEBAIG9jZWFuaWNfdmVvMjUwX3BhcnNlcl9n ZXRfZmllbGQgKGRjX3BhcnNlcl90ICphYnN0cmFjdCwgZGNfZmllbGRfdHlwZV90IHR5cGUsIHVu CisgCQlwYXJzZXItPm1heGRlcHRoID0gc3RhdGlzdGljcy5tYXhkZXB0aDsKKyAJfQorIAorLQl1 bnNpZ25lZCBpbnQgZm9vdGVyID0gc2l6ZSAtIFBBR0VTSVpFOworKwl1bnNpZ25lZCBpbnQgZm9v dGVyID0gc2l6ZSAtIFhQQUdFU0laRTsKKyAKKyAJZGNfZ2FzbWl4X3QgKmdhc21peCA9IChkY19n YXNtaXhfdCAqKSB2YWx1ZTsKKyAKK0BAIC0xOTYsNyArMTk2LDcgQEAgb2NlYW5pY192ZW8yNTBf cGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVf Y2FsbGJhY2sKKyAJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSA9IGFic3RyYWN0LT5kYXRhOwor IAl1bnNpZ25lZCBpbnQgc2l6ZSA9IGFic3RyYWN0LT5zaXplOworIAorLQlpZiAoc2l6ZSA8IDcg KiBQQUdFU0laRSAvIDIpCisrCWlmIChzaXplIDwgNyAqIFhQQUdFU0laRSAvIDIpCisgCQlyZXR1 cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CisgCisgCXVuc2lnbmVkIGludCB0aW1lID0gMDsKK0BA IC0yMjEsMTMgKzIyMSwxMyBAQCBvY2VhbmljX3ZlbzI1MF9wYXJzZXJfc2FtcGxlc19mb3JlYWNo IChkY19wYXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFjaworIAkJYnJlYWs7Cisg CX0KKyAKKy0JdW5zaWduZWQgaW50IG9mZnNldCA9IDUgKiBQQUdFU0laRSAvIDI7CistCXdoaWxl IChvZmZzZXQgKyBQQUdFU0laRSAvIDIgPD0gc2l6ZSAtIFBBR0VTSVpFKSB7CisrCXVuc2lnbmVk IGludCBvZmZzZXQgPSA1ICogWFBBR0VTSVpFIC8gMjsKKysJd2hpbGUgKG9mZnNldCArIFhQQUdF U0laRSAvIDIgPD0gc2l6ZSAtIFhQQUdFU0laRSkgeworIAkJZGNfc2FtcGxlX3ZhbHVlX3Qgc2Ft cGxlID0gezB9OworIAorIAkJLy8gSWdub3JlIGVtcHR5IHNhbXBsZXMuCistCQlpZiAoYXJyYXlf aXNlcXVhbCAoZGF0YSArIG9mZnNldCwgUEFHRVNJWkUgLyAyLCAweDAwKSkgeworLQkJCW9mZnNl dCArPSBQQUdFU0laRSAvIDI7CisrCQlpZiAoYXJyYXlfaXNlcXVhbCAoZGF0YSArIG9mZnNldCwg WFBBR0VTSVpFIC8gMiwgMHgwMCkpIHsKKysJCQlvZmZzZXQgKz0gWFBBR0VTSVpFIC8gMjsKKyAJ CQljb250aW51ZTsKKyAJCX0KKyAKK0BAIC0yMzgsNyArMjM4LDcgQEAgb2NlYW5pY192ZW8yNTBf cGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVf Y2FsbGJhY2sKKyAKKyAJCS8vIFZlbmRvciBzcGVjaWZpYyBkYXRhCisgCQlzYW1wbGUudmVuZG9y LnR5cGUgPSBTQU1QTEVfVkVORE9SX09DRUFOSUNfVkVPMjUwOworLQkJc2FtcGxlLnZlbmRvci5z aXplID0gUEFHRVNJWkUgLyAyOworKwkJc2FtcGxlLnZlbmRvci5zaXplID0gWFBBR0VTSVpFIC8g MjsKKyAJCXNhbXBsZS52ZW5kb3IuZGF0YSA9IGRhdGEgKyBvZmZzZXQ7CisgCQlpZiAoY2FsbGJh Y2spIGNhbGxiYWNrIChEQ19TQU1QTEVfVkVORE9SLCBzYW1wbGUsIHVzZXJkYXRhKTsKKyAKK0BA IC0yODMsNyArMjgzLDcgQEAgb2NlYW5pY192ZW8yNTBfcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAo ZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVfY2FsbGJhY2sKKyAJCQlpZiAoY2FsbGJh Y2spIGNhbGxiYWNrIChEQ19TQU1QTEVfREVDTywgc2FtcGxlLCB1c2VyZGF0YSk7CisgCQl9Cisg CistCQlvZmZzZXQgKz0gUEFHRVNJWkUgLyAyOworKwkJb2Zmc2V0ICs9IFhQQUdFU0laRSAvIDI7 CisgCX0KKyAKKyAJcmV0dXJuIERDX1NUQVRVU19TVUNDRVNTOworLS0tIGEvc3JjL29jZWFuaWNf dnRwcm8uYworKysrIGIvc3JjL29jZWFuaWNfdnRwcm8uYworQEAgLTI5Niw3ICsyOTYsNyBAQCBv Y2VhbmljX2FlcmlzNTAwYWlfZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwg ZGNfZXZlbnRfcHJvZ3Jlc3NfdCAqcAorIAorIAlhc3NlcnQgKGRldmljZSAhPSBOVUxMKTsKKyAJ YXNzZXJ0IChkZXZpY2UtPmJhc2UubGF5b3V0ICE9IE5VTEwpOworLQlhc3NlcnQgKGRldmljZS0+ YmFzZS5sYXlvdXQtPnJiX2xvZ2Jvb2tfZW50cnlfc2l6ZSA9PSBQQUdFU0laRSAvIDIpOworKwlh c3NlcnQgKGRldmljZS0+YmFzZS5sYXlvdXQtPnJiX2xvZ2Jvb2tfZW50cnlfc2l6ZSA9PSBYUEFH RVNJWkUgLyAyKTsKKyAJYXNzZXJ0IChkZXZpY2UtPmJhc2UubGF5b3V0LT5yYl9sb2dib29rX2Jl Z2luID09IGRldmljZS0+YmFzZS5sYXlvdXQtPnJiX2xvZ2Jvb2tfZW5kKTsKKyAJYXNzZXJ0IChw cm9ncmVzcyAhPSBOVUxMKTsKKyAKK0BAIC0zMDcsNyArMzA3LDcgQEAgb2NlYW5pY19hZXJpczUw MGFpX2RldmljZV9sb2dib29rIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dy ZXNzX3QgKnAKKyAJCXJldHVybiBEQ19TVEFUVVNfTk9NRU1PUlk7CisgCisgCS8vIFJlYWQgdGhl IHBvaW50ZXIgZGF0YS4KKy0JdW5zaWduZWQgY2hhciBwb2ludGVyc1tQQUdFU0laRV0gPSB7MH07 CisrCXVuc2lnbmVkIGNoYXIgcG9pbnRlcnNbWFBBR0VTSVpFXSA9IHswfTsKKyAJcmMgPSBvY2Vh bmljX3Z0cHJvX2RldmljZV9yZWFkIChhYnN0cmFjdCwgbGF5b3V0LT5jZl9wb2ludGVycywgcG9p bnRlcnMsIHNpemVvZiAocG9pbnRlcnMpKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19TVUNDRVNT KSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gcmVhZCB0aGUgbWVt b3J5IHBhZ2UuIik7CitAQCAtMzE4LDEyICszMTgsMTIgQEAgb2NlYW5pY19hZXJpczUwMGFpX2Rl dmljZV9sb2dib29rIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3Qg KnAKKyAJdW5zaWduZWQgaW50IGxhc3QgPSBwb2ludGVyc1sweDAzXTsKKyAKKyAJLy8gVXBkYXRl IGFuZCBlbWl0IGEgcHJvZ3Jlc3MgZXZlbnQuCistCXByb2dyZXNzLT5jdXJyZW50ICs9IFBBR0VT SVpFOworLQlwcm9ncmVzcy0+bWF4aW11bSArPSBQQUdFU0laRSArIChsYXN0ICsgMSkgKiBQQUdF U0laRSAvIDI7CisrCXByb2dyZXNzLT5jdXJyZW50ICs9IFhQQUdFU0laRTsKKysJcHJvZ3Jlc3Mt Pm1heGltdW0gKz0gWFBBR0VTSVpFICsgKGxhc3QgKyAxKSAqIFhQQUdFU0laRSAvIDI7CisgCWRl dmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsIHByb2dyZXNzKTsK KyAKKyAJLy8gQWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgbG9nYm9vayBlbnRyaWVzLgorLQlpZiAo IWRjX2J1ZmZlcl9yZXNlcnZlIChsb2dib29rLCAobGFzdCArIDEpICogUEFHRVNJWkUgLyAyKSkK KysJaWYgKCFkY19idWZmZXJfcmVzZXJ2ZSAobG9nYm9vaywgKGxhc3QgKyAxKSAqIFhQQUdFU0la RSAvIDIpKQorIAkJcmV0dXJuIERDX1NUQVRVU19OT01FTU9SWTsKKyAKKyAJLy8gU2VuZCB0aGUg bG9nYm9vayBpbmRleCBjb21tYW5kLgorQEAgLTM0MCw3ICszNDAsNyBAQCBvY2VhbmljX2Flcmlz NTAwYWlfZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJv Z3Jlc3NfdCAqcAorIAkvLyBSZWFkIHRoZSBsb2dib29rIGluZGV4LgorIAlmb3IgKHVuc2lnbmVk IGludCBpID0gMDsgaSA8IGxhc3QgKyAxOyArK2kpIHsKKyAJCS8vIFJlY2VpdmUgdGhlIGFuc3dl ciBvZiB0aGUgZGl2ZSBjb21wdXRlci4KKy0JCXVuc2lnbmVkIGNoYXIgYW5zd2VyW1BBR0VTSVpF IC8gMiArIDFdID0gezB9OworKwkJdW5zaWduZWQgY2hhciBhbnN3ZXJbWFBBR0VTSVpFIC8gMiAr IDFdID0gezB9OworIAkJcmMgPSBkY19pb3N0cmVhbV9yZWFkIChkZXZpY2UtPmlvc3RyZWFtLCBh bnN3ZXIsIHNpemVvZihhbnN3ZXIpLCBOVUxMKTsKKyAJCWlmIChyYyAhPSBEQ19TVEFUVVNfU1VD Q0VTUykgeworIAkJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkZhaWxlZCB0byByZWNlaXZl IHRoZSBhbnN3ZXIuIik7CitAQCAtMzQ4LDI4ICszNDgsMjggQEAgb2NlYW5pY19hZXJpczUwMGFp X2RldmljZV9sb2dib29rIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNz X3QgKnAKKyAJCX0KKyAKKyAJCS8vIFZlcmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFuc3dlci4K Ky0JCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5zd2VyW1BBR0VTSVpFIC8gMl07CistCQl1bnNpZ25l ZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDQgKGFuc3dlciwgUEFHRVNJWkUgLyAyLCAw eDAwKTsKKysJCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5zd2VyW1hQQUdFU0laRSAvIDJdOworKwkJ dW5zaWduZWQgY2hhciBjY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ0IChhbnN3ZXIsIFhQQUdFU0la RSAvIDIsIDB4MDApOworIAkJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQkJRVJST1IgKGFic3RyYWN0 LT5jb250ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgY2hlY2tzdW0uIik7CisgCQkJcmV0dXJuIERD X1NUQVRVU19QUk9UT0NPTDsKKyAJCX0KKyAKKyAJCS8vIFVwZGF0ZSBhbmQgZW1pdCBhIHByb2dy ZXNzIGV2ZW50LgorLQkJcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gUEFHRVNJWkUgLyAyOworKwkJcHJv Z3Jlc3MtPmN1cnJlbnQgKz0gWFBBR0VTSVpFIC8gMjsKKyAJCWRldmljZV9ldmVudF9lbWl0IChh YnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsIHByb2dyZXNzKTsKKyAKKyAJCS8vIElnbm9yZSB1 bmluaXRpYWxpemVkIGVudHJpZXMuCistCQlpZiAoYXJyYXlfaXNlcXVhbCAoYW5zd2VyLCBQQUdF U0laRSAvIDIsIDB4RkYpKSB7CisrCQlpZiAoYXJyYXlfaXNlcXVhbCAoYW5zd2VyLCBYUEFHRVNJ WkUgLyAyLCAweEZGKSkgeworIAkJCVdBUk5JTkcgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5pbml0 aWFsaXplZCBsb2dib29rIGVudHJpZXMgZGV0ZWN0ZWQhIik7CisgCQkJY29udGludWU7CisgCQl9 CisgCisgCQkvLyBDb21wYXJlIHRoZSBmaW5nZXJwcmludCB0byBpZGVudGlmeSBwcmV2aW91c2x5 IGRvd25sb2FkZWQgZW50cmllcy4KKy0JCWlmIChtZW1jbXAgKGFuc3dlciwgZGV2aWNlLT5iYXNl LmZpbmdlcnByaW50LCBQQUdFU0laRSAvIDIpID09IDApIHsKKysJCWlmIChtZW1jbXAgKGFuc3dl ciwgZGV2aWNlLT5iYXNlLmZpbmdlcnByaW50LCBYUEFHRVNJWkUgLyAyKSA9PSAwKSB7CisgCQkJ ZGNfYnVmZmVyX2NsZWFyIChsb2dib29rKTsKKyAJCX0gZWxzZSB7CistCQkJZGNfYnVmZmVyX2Fw cGVuZCAobG9nYm9vaywgYW5zd2VyLCBQQUdFU0laRSAvIDIpOworKwkJCWRjX2J1ZmZlcl9hcHBl bmQgKGxvZ2Jvb2ssIGFuc3dlciwgWFBBR0VTSVpFIC8gMik7CisgCQl9CisgCX0KKyAKK0BAIC01 NjAsNyArNTYwLDcgQEAgb2NlYW5pY192dHByb19kZXZpY2VfdmVyc2lvbiAoZGNfZGV2aWNlX3Qg KmFic3RyYWN0LCB1bnNpZ25lZCBjaGFyIGRhdGFbXSwgdW5zaWcKKyAJaWYgKCFJU0lOU1RBTkNF IChhYnN0cmFjdCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorLQlpZiAo c2l6ZSA8IFBBR0VTSVpFKQorKwlpZiAoc2l6ZSA8IFhQQUdFU0laRSkKKyAJCXJldHVybiBEQ19T VEFUVVNfSU5WQUxJREFSR1M7CisgCisgCS8vIFN3aXRjaCB0aGUgZGV2aWNlIGludG8gZG93bmxv YWQgbW9kZS4gVGhlIHJlc3BvbnNlIGlzIGlnbm9yZWQgaGVyZSwKK0BAIC01NjgsMTQgKzU2OCwx NCBAQCBvY2VhbmljX3Z0cHJvX2RldmljZV92ZXJzaW9uIChkY19kZXZpY2VfdCAqYWJzdHJhY3Qs IHVuc2lnbmVkIGNoYXIgZGF0YVtdLCB1bnNpZworIAkvLyByZXNwb25zZSBvZiB0aGUgZmlyc3Qg cGFydCBvZiB0aGUgb3RoZXIgY29tbWFuZCBpbiB0aGlzIGZ1bmN0aW9uLgorIAorIAl1bnNpZ25l ZCBjaGFyIGNtZFsyXSA9IHsweDg4LCAweDAwfTsKKy0JdW5zaWduZWQgY2hhciBhbnNbUEFHRVNJ WkUgLyAyICsgMV0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgYW5zW1hQQUdFU0laRSAvIDIgKyAx XSA9IHswfTsKKyAJZGNfc3RhdHVzX3QgcmMgPSBvY2VhbmljX3Z0cHJvX3RyYW5zZmVyIChkZXZp Y2UsIGNtZCwgc2l6ZW9mIChjbWQpLCBhbnMsIHNpemVvZiAoYW5zKSk7CisgCWlmIChyYyAhPSBE Q19TVEFUVVNfU1VDQ0VTUykKKyAJCXJldHVybiByYzsKKyAKKyAJLy8gVmVyaWZ5IHRoZSBjaGVj a3N1bSBvZiB0aGUgYW5zd2VyLgorLQl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc1tQQUdFU0laRSAv IDJdOworLQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDQgKGFucywgUEFH RVNJWkUgLyAyLCAweDAwKTsKKysJdW5zaWduZWQgY2hhciBjcmMgPSBhbnNbWFBBR0VTSVpFIC8g Ml07CisrCXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50NCAoYW5zLCBYUEFH RVNJWkUgLyAyLCAweDAwKTsKKyAJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQlFUlJPUiAoYWJzdHJh Y3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCXJldHVybiBE Q19TVEFUVVNfUFJPVE9DT0w7CitAQCAtNTg2LDMxICs1ODYsMzEgQEAgb2NlYW5pY192dHByb19k ZXZpY2VfdmVyc2lvbiAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBjaGFyIGRhdGFb XSwgdW5zaWcKKyAJCS8vIHNwbGl0IG92ZXIgdHdvIHBhY2tldHMsIGJ1dCB3ZSBqb2luIGJvdGgg cGFydHMgYWdhaW4uCisgCQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IDI7ICsraSkgewor IAkJCXVuc2lnbmVkIGNoYXIgY29tbWFuZFs0XSA9IHsweDcyLCAweDAzLCBpICogMHgxMCwgMHgw MH07CistCQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbUEFHRVNJWkUgLyAyICsgMl0gPSB7MH07Cisr CQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbWFBBR0VTSVpFIC8gMiArIDJdID0gezB9OworIAkJCXJj ID0gb2NlYW5pY192dHByb190cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1h bmQpLCBhbnN3ZXIsIHNpemVvZiAoYW5zd2VyKSk7CisgCQkJaWYgKHJjICE9IERDX1NUQVRVU19T VUNDRVNTKQorIAkJCQlyZXR1cm4gcmM7CisgCisgCQkJLy8gVmVyaWZ5IHRoZSBjaGVja3N1bSBv ZiB0aGUgYW5zd2VyLgorLQkJCWNyYyA9IGFuc3dlcltQQUdFU0laRSAvIDJdOworLQkJCWNjcmMg PSBjaGVja3N1bV9hZGRfdWludDQgKGFuc3dlciwgUEFHRVNJWkUgLyAyLCAweDAwKTsKKysJCQlj cmMgPSBhbnN3ZXJbWFBBR0VTSVpFIC8gMl07CisrCQkJY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50 NCAoYW5zd2VyLCBYUEFHRVNJWkUgLyAyLCAweDAwKTsKKyAJCQlpZiAoY3JjICE9IGNjcmMpIHsK KyAJCQkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgY2hlY2tz dW0uIik7CisgCQkJCXJldHVybiBEQ19TVEFUVVNfUFJPVE9DT0w7CisgCQkJfQorIAorIAkJCS8v IFZlcmlmeSB0aGUgbGFzdCBieXRlIG9mIHRoZSBhbnN3ZXIuCistCQkJaWYgKGFuc3dlcltQQUdF U0laRSAvIDIgKyAxXSAhPSBFTkQpIHsKKysJCQlpZiAoYW5zd2VyW1hQQUdFU0laRSAvIDIgKyAx XSAhPSBFTkQpIHsKKyAJCQkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBh bnN3ZXIgYnl0ZS4iKTsKKyAJCQkJcmV0dXJuIERDX1NUQVRVU19QUk9UT0NPTDsKKyAJCQl9Cisg CisgCQkJLy8gQXBwZW5kIHRoZSBhbnN3ZXIgdG8gdGhlIG91dHB1dCBidWZmZXIuCistCQkJbWVt Y3B5IChkYXRhICsgaSAqIFBBR0VTSVpFIC8gMiwgYW5zd2VyLCBQQUdFU0laRSAvIDIpOworKwkJ CW1lbWNweSAoZGF0YSArIGkgKiBYUEFHRVNJWkUgLyAyLCBhbnN3ZXIsIFhQQUdFU0laRSAvIDIp OworIAkJfQorIAl9IGVsc2UgeworIAkJLy8gUmV0dXJuIGFuIGVtcHR5IGRldmljZSBpZGVudGlm aWNhdGlvbiBzdHJpbmcuCistCQltZW1zZXQgKGRhdGEsIDB4MDAsIFBBR0VTSVpFKTsKKysJCW1l bXNldCAoZGF0YSwgMHgwMCwgWFBBR0VTSVpFKTsKKyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVT X1NVQ0NFU1M7CitAQCAtNjIyLDQ3ICs2MjIsNDcgQEAgb2NlYW5pY192dHByb19kZXZpY2VfcmVh ZCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWduZWQK KyB7CisgCW9jZWFuaWNfdnRwcm9fZGV2aWNlX3QgKmRldmljZSA9IChvY2VhbmljX3Z0cHJvX2Rl dmljZV90KikgYWJzdHJhY3Q7CisgCistCWlmICgoYWRkcmVzcyAlIFBBR0VTSVpFICE9IDApIHx8 CistCQkoc2l6ZSAgICAlIFBBR0VTSVpFICE9IDApKQorKwlpZiAoKGFkZHJlc3MgJSBYUEFHRVNJ WkUgIT0gMCkgfHwKKysJCShzaXplICAgICUgWFBBR0VTSVpFICE9IDApKQorIAkJcmV0dXJuIERD X1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJdW5zaWduZWQgaW50IG5ieXRlcyA9IDA7CisgCXdo aWxlIChuYnl0ZXMgPCBzaXplKSB7CisgCQkvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBwYWNr YWdlcy4KKy0JCXVuc2lnbmVkIGludCBucGFja2V0cyA9IChzaXplIC0gbmJ5dGVzKSAvIFBBR0VT SVpFOworKwkJdW5zaWduZWQgaW50IG5wYWNrZXRzID0gKHNpemUgLSBuYnl0ZXMpIC8gWFBBR0VT SVpFOworIAkJaWYgKG5wYWNrZXRzID4gTVVMVElQQUdFKQorIAkJCW5wYWNrZXRzID0gTVVMVElQ QUdFOworIAorIAkJLy8gUmVhZCB0aGUgcGFja2FnZS4KKy0JCXVuc2lnbmVkIGludCBmaXJzdCA9 ICBhZGRyZXNzIC8gUEFHRVNJWkU7CisrCQl1bnNpZ25lZCBpbnQgZmlyc3QgPSAgYWRkcmVzcyAv IFhQQUdFU0laRTsKKyAJCXVuc2lnbmVkIGludCBsYXN0ICA9IGZpcnN0ICsgbnBhY2tldHMgLSAx OworLQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbKFBBR0VTSVpFICsgMSkgKiBNVUxUSVBBR0VdID0g ezB9OworKwkJdW5zaWduZWQgY2hhciBhbnN3ZXJbKFhQQUdFU0laRSArIDEpICogTVVMVElQQUdF XSA9IHswfTsKKyAJCXVuc2lnbmVkIGNoYXIgY29tbWFuZFs2XSA9IHsweDM0LAorIAkJCQkoZmly c3QgPj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCShmaXJzdCAgICAgKSAmIDB4RkYsIC8vIGxv dworIAkJCQkobGFzdCA+PiA4KSAmIDB4RkYsIC8vIGhpZ2gKKyAJCQkJKGxhc3QgICAgICkgJiAw eEZGLCAvLyBsb3cKKyAJCQkJMHgwMH07CistCQlkY19zdGF0dXNfdCByYyA9IG9jZWFuaWNfdnRw cm9fdHJhbnNmZXIgKGRldmljZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5kKSwgYW5zd2VyLCAo UEFHRVNJWkUgKyAxKSAqIG5wYWNrZXRzKTsKKysJCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY192 dHByb190cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBhbnN3ZXIs IChYUEFHRVNJWkUgKyAxKSAqIG5wYWNrZXRzKTsKKyAJCWlmIChyYyAhPSBEQ19TVEFUVVNfU1VD Q0VTUykKKyAJCQlyZXR1cm4gcmM7CisgCisgCQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsKKyAJ CWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbnBhY2tldHM7ICsraSkgeworIAkJCS8vIFZl cmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFuc3dlci4KKy0JCQl1bnNpZ25lZCBjaGFyIGNyYyA9 IGFuc3dlcltvZmZzZXQgKyBQQUdFU0laRV07CistCQkJdW5zaWduZWQgY2hhciBjY3JjID0gY2hl Y2tzdW1fYWRkX3VpbnQ4IChhbnN3ZXIgKyBvZmZzZXQsIFBBR0VTSVpFLCAweDAwKTsKKysJCQl1 bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltvZmZzZXQgKyBYUEFHRVNJWkVdOworKwkJCXVuc2ln bmVkIGNoYXIgY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50OCAoYW5zd2VyICsgb2Zmc2V0LCBYUEFH RVNJWkUsIDB4MDApOworIAkJCWlmIChjcmMgIT0gY2NyYykgeworIAkJCQlFUlJPUiAoYWJzdHJh Y3QtPmNvbnRleHQsICJVbmV4cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCQkJcmV0dXJu IERDX1NUQVRVU19QUk9UT0NPTDsKKyAJCQl9CisgCistCQkJbWVtY3B5IChkYXRhLCBhbnN3ZXIg KyBvZmZzZXQsIFBBR0VTSVpFKTsKKysJCQltZW1jcHkgKGRhdGEsIGFuc3dlciArIG9mZnNldCwg WFBBR0VTSVpFKTsKKyAKKy0JCQlvZmZzZXQgKz0gUEFHRVNJWkUgKyAxOworLQkJCW5ieXRlcyAr PSBQQUdFU0laRTsKKy0JCQlhZGRyZXNzICs9IFBBR0VTSVpFOworLQkJCWRhdGEgKz0gUEFHRVNJ WkU7CisrCQkJb2Zmc2V0ICs9IFhQQUdFU0laRSArIDE7CisrCQkJbmJ5dGVzICs9IFhQQUdFU0la RTsKKysJCQlhZGRyZXNzICs9IFhQQUdFU0laRTsKKysJCQlkYXRhICs9IFhQQUdFU0laRTsKKyAJ CX0KKyAJfQorIAorLS0tIGEvc3JjL29jZWFuaWNfdnRwcm9fcGFyc2VyLmMKKysrKyBiL3NyYy9v Y2VhbmljX3Z0cHJvX3BhcnNlci5jCitAQCAtMTU1LDcgKzE1NSw3IEBAIG9jZWFuaWNfdnRwcm9f cGFyc2VyX2dldF9maWVsZCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19maWVsZF90eXBlX3Qg dHlwZSwgdW5zCisgCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEgPSBhYnN0cmFjdC0+ZGF0YTsK KyAJdW5zaWduZWQgaW50IHNpemUgPSBhYnN0cmFjdC0+c2l6ZTsKKyAKKy0JaWYgKHNpemUgPCA3 ICogUEFHRVNJWkUgLyAyKQorKwlpZiAoc2l6ZSA8IDcgKiBYUEFHRVNJWkUgLyAyKQorIAkJcmV0 dXJuIERDX1NUQVRVU19EQVRBRk9STUFUOworIAorIAlpZiAoIXBhcnNlci0+Y2FjaGVkKSB7CitA QCAtMTcwLDcgKzE3MCw3IEBAIG9jZWFuaWNfdnRwcm9fcGFyc2VyX2dldF9maWVsZCAoZGNfcGFy c2VyX3QgKmFic3RyYWN0LCBkY19maWVsZF90eXBlX3QgdHlwZSwgdW5zCisgCQlwYXJzZXItPm1h eGRlcHRoID0gc3RhdGlzdGljcy5tYXhkZXB0aDsKKyAJfQorIAorLQl1bnNpZ25lZCBpbnQgZm9v dGVyID0gc2l6ZSAtIFBBR0VTSVpFOworKwl1bnNpZ25lZCBpbnQgZm9vdGVyID0gc2l6ZSAtIFhQ QUdFU0laRTsKKyAKKyAJdW5zaWduZWQgaW50IG94eWdlbiA9IDA7CisgCXVuc2lnbmVkIGludCBt YXhkZXB0aCA9IDA7CitAQCAtMjM3LDcgKzIzNyw3IEBAIG9jZWFuaWNfdnRwcm9fcGFyc2VyX3Nh bXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVfY2FsbGJhY2tf CisgCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEgPSBhYnN0cmFjdC0+ZGF0YTsKKyAJdW5zaWdu ZWQgaW50IHNpemUgPSBhYnN0cmFjdC0+c2l6ZTsKKyAKKy0JaWYgKHNpemUgPCA3ICogUEFHRVNJ WkUgLyAyKQorKwlpZiAoc2l6ZSA8IDcgKiBYUEFHRVNJWkUgLyAyKQorIAkJcmV0dXJuIERDX1NU QVRVU19EQVRBRk9STUFUOworIAorIAl1bnNpZ25lZCBpbnQgdGltZSA9IDA7CitAQCAtMjU5LDE0 ICsyNTksMTQgQEAgb2NlYW5pY192dHByb19wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJz ZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18KKyAJLy8gSW5pdGlhbGl6ZSB0aGUg c3RhdGUgZm9yIHRoZSB0aW1lc3RhbXAgcHJvY2Vzc2luZy4KKyAJdW5zaWduZWQgaW50IHRpbWVz dGFtcCA9IDAsIGNvdW50ID0gMCwgaSA9IDA7CisgCistCXVuc2lnbmVkIGludCBvZmZzZXQgPSA1 ICogUEFHRVNJWkUgLyAyOworLQl3aGlsZSAob2Zmc2V0ICsgUEFHRVNJWkUgLyAyIDw9IHNpemUg LSBQQUdFU0laRSkgeworKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gNSAqIFhQQUdFU0laRSAvIDI7 CisrCXdoaWxlIChvZmZzZXQgKyBYUEFHRVNJWkUgLyAyIDw9IHNpemUgLSBYUEFHRVNJWkUpIHsK KyAJCWRjX3NhbXBsZV92YWx1ZV90IHNhbXBsZSA9IHswfTsKKyAKKyAJCS8vIElnbm9yZSBlbXB0 eSBzYW1wbGVzLgorLQkJaWYgKGFycmF5X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFBBR0VTSVpF IC8gMiwgMHgwMCkgfHwKKy0JCQlhcnJheV9pc2VxdWFsIChkYXRhICsgb2Zmc2V0LCBQQUdFU0la RSAvIDIsIDB4RkYpKSB7CistCQkJb2Zmc2V0ICs9IFBBR0VTSVpFIC8gMjsKKysJCWlmIChhcnJh eV9pc2VxdWFsIChkYXRhICsgb2Zmc2V0LCBYUEFHRVNJWkUgLyAyLCAweDAwKSB8fAorKwkJCWFy cmF5X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFhQQUdFU0laRSAvIDIsIDB4RkYpKSB7CisrCQkJ b2Zmc2V0ICs9IFhQQUdFU0laRSAvIDI7CisgCQkJY29udGludWU7CisgCQl9CisgCitAQCAtMjg4 LDEyICsyODgsMTIgQEAgb2NlYW5pY192dHByb19wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19w YXJzZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18KKyAJCQkJLy8gV2l0aCBhIGRl cHRoIGJhc2VkIHNhbXBsZSBpbnRlcnZhbCwgdGhlIGV4YWN0IG51bWJlcgorIAkJCQkvLyBvZiBz YW1wbGVzIGZvciBhIHNpbmdsZSB0aW1lc3RhbXAgbmVlZHMgdG8gYmUgY291bnRlZC4KKyAJCQkJ Y291bnQgPSAxOworLQkJCQl1bnNpZ25lZCBpbnQgaWR4ID0gb2Zmc2V0ICsgUEFHRVNJWkUgLyAy IDsKKy0JCQkJd2hpbGUgKGlkeCArIFBBR0VTSVpFIC8gMiA8PSBzaXplIC0gUEFHRVNJWkUpIHsK KysJCQkJdW5zaWduZWQgaW50IGlkeCA9IG9mZnNldCArIFhQQUdFU0laRSAvIDIgOworKwkJCQl3 aGlsZSAoaWR4ICsgWFBBR0VTSVpFIC8gMiA8PSBzaXplIC0gWFBBR0VTSVpFKSB7CisgCQkJCQkv LyBJZ25vcmUgZW1wdHkgc2FtcGxlcy4KKy0JCQkJCWlmIChhcnJheV9pc2VxdWFsIChkYXRhICsg aWR4LCBQQUdFU0laRSAvIDIsIDB4MDApIHx8CistCQkJCQkJYXJyYXlfaXNlcXVhbCAoZGF0YSAr IGlkeCwgUEFHRVNJWkUgLyAyLCAweEZGKSkgeworLQkJCQkJCWlkeCArPSBQQUdFU0laRSAvIDI7 CisrCQkJCQlpZiAoYXJyYXlfaXNlcXVhbCAoZGF0YSArIGlkeCwgWFBBR0VTSVpFIC8gMiwgMHgw MCkgfHwKKysJCQkJCQlhcnJheV9pc2VxdWFsIChkYXRhICsgaWR4LCBYUEFHRVNJWkUgLyAyLCAw eEZGKSkgeworKwkJCQkJCWlkeCArPSBYUEFHRVNJWkUgLyAyOworIAkJCQkJCWNvbnRpbnVlOwor IAkJCQkJfQorIAorQEAgLTMwMSw3ICszMDEsNyBAQCBvY2VhbmljX3Z0cHJvX3BhcnNlcl9zYW1w bGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXwor IAkJCQkJaWYgKG5leHQgIT0gY3VycmVudCkKKyAJCQkJCQlicmVhazsKKyAKKy0JCQkJCWlkeCAr PSBQQUdFU0laRSAvIDI7CisrCQkJCQlpZHggKz0gWFBBR0VTSVpFIC8gMjsKKyAJCQkJCWNvdW50 Kys7CisgCQkJCX0KKyAJCQl9CitAQCAtMzE3LDcgKzMxNyw3IEBAIG9jZWFuaWNfdnRwcm9fcGFy c2VyX3NhbXBsZXNfZm9yZWFjaCAoZGNfcGFyc2VyX3QgKmFic3RyYWN0LCBkY19zYW1wbGVfY2Fs bGJhY2tfCisgCQkJfQorIAkJCWlmIChpID49IGNvdW50KSB7CisgCQkJCVdBUk5JTkcgKGFic3Ry YWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBzYW1wbGUgd2l0aCB0aGUgc2FtZSB0aW1lc3RhbXAg aWdub3JlZC4iKTsKKy0JCQkJb2Zmc2V0ICs9IFBBR0VTSVpFIC8gMjsKKysJCQkJb2Zmc2V0ICs9 IFhQQUdFU0laRSAvIDI7CisgCQkJCWNvbnRpbnVlOworIAkJCX0KKyAJCX0KK0BAIC0zMzUsNyAr MzM1LDcgQEAgb2NlYW5pY192dHByb19wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJf dCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18KKyAKKyAJCS8vIFZlbmRvciBzcGVjaWZp YyBkYXRhCisgCQlzYW1wbGUudmVuZG9yLnR5cGUgPSBTQU1QTEVfVkVORE9SX09DRUFOSUNfVlRQ Uk87CistCQlzYW1wbGUudmVuZG9yLnNpemUgPSBQQUdFU0laRSAvIDI7CisrCQlzYW1wbGUudmVu ZG9yLnNpemUgPSBYUEFHRVNJWkUgLyAyOworIAkJc2FtcGxlLnZlbmRvci5kYXRhID0gZGF0YSAr IG9mZnNldDsKKyAJCWlmIChjYWxsYmFjaykgY2FsbGJhY2sgKERDX1NBTVBMRV9WRU5ET1IsIHNh bXBsZSwgdXNlcmRhdGEpOworIAorQEAgLTM3NCw3ICszNzQsNyBAQCBvY2VhbmljX3Z0cHJvX3Bh cnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90ICphYnN0cmFjdCwgZGNfc2FtcGxlX2Nh bGxiYWNrXworIAkJCWlmIChjYWxsYmFjaykgY2FsbGJhY2sgKERDX1NBTVBMRV9ERUNPLCBzYW1w bGUsIHVzZXJkYXRhKTsKKyAJCX0KKyAKKy0JCW9mZnNldCArPSBQQUdFU0laRSAvIDI7CisrCQlv ZmZzZXQgKz0gWFBBR0VTSVpFIC8gMjsKKyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVTX1NVQ0NF U1M7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBs YXRlIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS90ZW1wbGF0ZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc3MWM5Y2JmZmRmNgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUKQEAg LTAsMCArMSwzMCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZGl2ZWNvbXB1dGVyLXN1YnN1 cmZhY2UnCitwa2duYW1lPWxpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlCit2ZXJzaW9uPTUuMC42 CityZXZpc2lvbj0xCit3cmtzcmM9ImxpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWJyYW5jaC0k e3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJs aWJ0b29sIGF1dG9tYWtlIGF1dG9jb25mIHBrZy1jb25maWciCittYWtlZGVwZW5kcz0ibGlidXNi LWRldmVsIGxpYm10cC1kZXZlbCBoaWRhcGktZGV2ZWwgbGliYmx1ZXRvb3RoLWRldmVsIgorc2hv cnRfZGVzYz0iU3Vic3VyZmFjZSB2ZXJzaW9uIG9mIGxpYmRpdmVjb21wdXRlciIKK21haW50YWlu ZXI9IkFsYW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5jb20+IgorbGljZW5zZT0iTEdQTC0y LjEtb25seSIKK2hvbWVwYWdlPSJodHRwczovL3N1YnN1cmZhY2UtZGl2ZWxvZy5vcmcvIgorZGlz dGZpbGVzPSIke2hvbWVwYWdlfS9kb3dubG9hZHMvJHtwa2duYW1lfS1icmFuY2gtJHt2ZXJzaW9u fS50Z3oiCitjaGVja3N1bT01MmVkOTViZDIwNjNjYTg2Y2VkMmE5MjA2MWI1Y2I0Nzc4MmY0ZTEy ODJmZTQ5MDk3YWFlNTUwMjc3OGRlZDJkCisKK3ByZV9jb25maWd1cmUoKSB7CisJYXV0b3JlY29u ZiAtZmkKK30KKworbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWxfcGFja2FnZSgpIHsK KwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRf ZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1 c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2bW92ZSAidXNyL2xpYi8q LnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLmEiCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMwor CX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdXBk YXRlIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91cGRhdGUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MWZmZjI0NTk3NDUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3VwZGF0ZQpAQCAtMCww ICsxLDIgQEAKK3NpdGU9IiR7aG9tZXBhZ2V9L2Rvd25sb2FkcyIKK3BhdHRlcm49IiR7cGtnbmFt ZX0tYnJhbmNoLVxLW1xkXC5dKyg/PVwudGd6KSIKCkZyb20gZDY4YjNlNzkwNzc4OGM3MDUyZWM1 ZTBhMTVhMTkxZTliN2FlZjk2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxhbiBC cm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNSBOb3YgMjAyMSAxODoy MzozOSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBOZXcgcGFja2FnZTogU3Vic3VyZmFjZS01 LjAuNgoKLS0tCiAuLi4vcGF0Y2hlcy9jb3JlLWRlcGVuZHMtZ2VuZXJhdGVkLXVpLnBhdGNoICAg fCAxMCArKysrKysrKysrCiAuLi4vU3Vic3VyZmFjZS9wYXRjaGVzL21ha2Utb3ItbmluamEucGF0 Y2ggICAgfCAxMSArKysrKysrKysrCiBzcmNwa2dzL1N1YnN1cmZhY2UvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDQx IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL1N1YnN1cmZhY2UvcGF0 Y2hlcy9jb3JlLWRlcGVuZHMtZ2VuZXJhdGVkLXVpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1vci1uaW5qYS5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvU3Vic3VyZmFjZS9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2ggYi9z cmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9jb3JlLWRlcGVuZHMtZ2VuZXJhdGVkLXVpLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTZhMTVmNjUwMWQxCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvY29yZS1kZXBlbmRz LWdlbmVyYXRlZC11aS5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9DTWFrZUxpc3RzLnR4 dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC00MTQsNiArNDE0LDcgQEAgZWxzZWlmIChTVUJT VVJGQUNFX1RBUkdFVF9FWEVDVVRBQkxFIE1BVENIRVMgIkRlc2t0b3BFeGVjdXRhYmxlIikKKyAJ YWRkX2RlcGVuZGVuY2llcyhzdWJzdXJmYWNlX2ludGVyZmFjZSBzdWJzdXJmYWNlX2dlbmVyYXRl ZF91aSkKKyAJYWRkX2RlcGVuZGVuY2llcyhzdWJzdXJmYWNlX3Byb2ZpbGUgc3Vic3VyZmFjZV9n ZW5lcmF0ZWRfdWkpCisgCWFkZF9kZXBlbmRlbmNpZXMoc3Vic3VyZmFjZV9tb2RlbHNfZGVza3Rv cCBzdWJzdXJmYWNlX2dlbmVyYXRlZF91aSkKKysJYWRkX2RlcGVuZGVuY2llcyhzdWJzdXJmYWNl X2NvcmVsaWIgc3Vic3VyZmFjZV9nZW5lcmF0ZWRfdWkpCisgCWFkZF9kZXBlbmRlbmNpZXMoc3Vi c3VyZmFjZV9nZW5lcmF0ZWRfdWkgdmVyc2lvbikKKyBlbHNlaWYgKFNVQlNVUkZBQ0VfVEFSR0VU X0VYRUNVVEFCTEUgTUFUQ0hFUyAiRG93bmxvYWRlckV4ZWN1dGFibGUiKQorIAlzZXQoRE9XTkxP QURFUl9BUFAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL21ha2Utb3It bmluamEucGF0Y2ggYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDhmMTFhNDM0YjU4 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1vci1u aW5qYS5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9jbWFrZS9Nb2R1bGVzL1J1bk9uQnVp bGREaXIuY21ha2UKKysrKyBiL2NtYWtlL01vZHVsZXMvUnVuT25CdWlsZERpci5jbWFrZQorQEAg LTI1LDcgKzI1LDcgQEAgaWYoTk9UIE5PX0RPQ1MpCisgCWFkZF9jdXN0b21fdGFyZ2V0KAorIAkJ ZG9jdW1lbnRhdGlvbiBBTEwKKyAJCUNPTU1BTkQKKy0JCSR7Q01BS0VfTUFLRV9QUk9HUkFNfSAt QyAke0NNQUtFX1NPVVJDRV9ESVJ9L0RvY3VtZW50YXRpb24gT1VUPSR7Q01BS0VfQklOQVJZX0RJ Un0vRG9jdW1lbnRhdGlvbi8gZG9jCisrCQltYWtlIC1DICR7Q01BS0VfU09VUkNFX0RJUn0vRG9j dW1lbnRhdGlvbiBPVVQ9JHtDTUFLRV9CSU5BUllfRElSfS9Eb2N1bWVudGF0aW9uLyBkb2MKKyAJ CURFUEVORFMgZG9jdW1lbnRhdGlvbkxpbmsKKyAJKQorIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQxOTU0MzkyYTI0NgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZQpAQCAtMCwwICsxLDIw IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdTdWJzdXJmYWNlJworcGtnbmFtZT1TdWJzdXJmYWNl Cit2ZXJzaW9uPTUuMC42CityZXZpc2lvbj0xCitidWlsZF9zdHlsZT1jbWFrZQorY29uZmlndXJl X2FyZ3M9Ii1EU1VCU1VSRkFDRV9UQVJHRVRfRVhFQ1VUQUJMRT1EZXNrdG9wRXhlY3V0YWJsZQor IC1EQlRTVVBQT1JUPU9OIC1ETk9fVVNFUk1BTlVBTD1PRkYgLUROT19QUklOVElORz1PRkYiCito b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCBxdDUt ZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwgbGli Ymx1ZXRvb3RoLWRldmVsIGxpYmN1cmwtZGV2ZWwKKyBzcWxpdGUtZGV2ZWwgbGlic3NoMi1kZXZl bCBldWRldi1saWJ1ZGV2LWRldmVsIGxpYnVzYi1kZXZlbCBsaWJ4bWwyLWRldmVsCisgbGlieHNs dC1kZXZlbCBxdDUtZGV2ZWwgcXQ1LWNvbm5lY3Rpdml0eS1kZXZlbCBxdDUtZGVjbGFyYXRpdmUt ZGV2ZWwKKyBxdDUtbG9jYXRpb24tZGV2ZWwgcXQ1LXNjcmlwdC1kZXZlbCBxdDUtc3ZnLWRldmVs IHF0NS10b29scy1kZXZlbAorIHF0NS13ZWJraXQtZGV2ZWwgYmx1ZXotcXQ1LWRldmVsIGxpYmdp dDItZGV2ZWwgbGliemlwLWRldmVsIGxpYm10cC1kZXZlbCIKK2RlcGVuZHM9ImxpYmRpdmVjb21w dXRlci1zdWJzdXJmYWNlIHF0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMiCitzaG9ydF9kZXNj PSJNdWx0aS1wbGF0Zm9ybSBkaXZlbG9nIHNvZnR3YXJlIgorbWFpbnRhaW5lcj0iQWxhbiBCcm93 biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4iCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkiCitob21l cGFnZT0iaHR0cHM6Ly9zdWJzdXJmYWNlLWRpdmVsb2cub3JnLyIKK2Rpc3RmaWxlcz0iJHtob21l cGFnZX0vZG93bmxvYWRzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50Z3oiCitjaGVja3N1bT0zNzc1 MTQ1NmMxNDcyMTEwOWNiZmI1N2E5MzhmNzc2YzM1YjY1YzQyMjNjMTE1OWExZjAzMzgyODVmMjJk ZTBhCg== --===============0078719382377519352==--