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 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11820 invoked from network); 29 Oct 2022 16:06:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Oct 2022 16:06:17 -0000 Content-Type: multipart/mixed; boundary="===============5580310864182046007==" 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: Sat, 29 Oct 2022 18:06:17 +0200 List-Id: Message-ID: <20221029160617.WmQmC-tRom2m_p1FiSN5AB7UzfUSTPr0fF6K8fvyfGI@z> GitHub notification mails are now in MIME to allow UTF8. --===============5580310864182046007== 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== --===============5580310864182046007== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-subsurface-34187.patch" RnJvbSAxMjNmZWQ2ZGRlNTI1NDk4MjBkMjBhYzcwMTRlODgyMWRkZmE3MWJlIE1vbiBTZXAgMTcg 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 bWFwcworcGF0dGVybj0idlwuXEtbXGRcLl0rKD89XC50YXJcLmd6KSIKCkZyb20gNzUyNGMzNzg5 MGNlZTc1MGJiNGIxMzVjZTcxYjNlNzk1ZmRiYzdmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQWxhbiBCcm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNSBO b3YgMjAyMSAxODoyMzowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTog bGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtNS4wLjEwCgotLS0KIHNyY3BrZ3MvbGliZGl2ZWNv bXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwgICAgICB8ICAgMSArCiAuLi4vcGF0Y2hlcy9QQUdFU0la RS5wYXRjaCAgICAgICAgICAgICAgICAgICAgfCA4NzQgKysrKysrKysrKysrKysrKysrCiBzcmNw a2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBsYXRlICAgfCAgMzAgKwogc3JjcGtn cy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91cGRhdGUgICAgIHwgICAyICsKIDQgZmlsZXMg Y2hhbmdlZCwgOTA3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xp YmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS9wYXRjaGVzL1BBR0VTSVpFLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS90ZW1wbGF0 ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2Uv dXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1k ZXZlbCBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwKbmV3IGZpbGUg bW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4zNTAwZTBiNWIwZDUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRldmVsCkBAIC0wLDAg KzEgQEAKK2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS9wYXRj aGVzL1BBR0VTSVpFLnBhdGNoIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS9w YXRjaGVzL1BBR0VTSVpFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNjQ3NjI0N2E1NTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJkaXZlY29t cHV0ZXItc3Vic3VyZmFjZS9wYXRjaGVzL1BBR0VTSVpFLnBhdGNoCkBAIC0wLDAgKzEsODc0IEBA CistLS0gYS9zcmMvbGlxdWl2aXNpb25fbHlueC5jCisrKysgYi9zcmMvbGlxdWl2aXNpb25fbHlu eC5jCitAQCAtNjEsMTYgKzYxLDE2IEBACisgI2RlZmluZSBNQVhSRVRSSUVTIDIKKyAjZGVmaW5l IE1BWFBBQ0tFVCAxMgorICNkZWZpbmUgU0VHTUVOVFNJWkUgMHg0MDAKKy0jZGVmaW5lIFBBR0VT SVpFICAgIDB4MTAwMAorKyNkZWZpbmUgWFBBR0VTSVpFICAgIDB4MTAwMAorICNkZWZpbmUgTUVN U0laRSAgICAgMHgyMDAwMDAKKyAKKy0jZGVmaW5lIFJCX0xPR0JPT0tfQkVHSU4gICAgICAgICAo MSAqIFBBR0VTSVpFKQorLSNkZWZpbmUgUkJfTE9HQk9PS19FTkQgICAgICAgICAgICgyNSAqIFBB R0VTSVpFKQorKyNkZWZpbmUgUkJfTE9HQk9PS19CRUdJTiAgICAgICAgICgxICogWFBBR0VTSVpF KQorKyNkZWZpbmUgUkJfTE9HQk9PS19FTkQgICAgICAgICAgICgyNSAqIFhQQUdFU0laRSkKKyAj ZGVmaW5lIFJCX0xPR0JPT0tfU0laRSAgICAgICAgICAoUkJfTE9HQk9PS19FTkQgLSBSQl9MT0dC T09LX0JFR0lOKQorICNkZWZpbmUgUkJfTE9HQk9PS19ESVNUQU5DRShhLGIpIHJpbmdidWZmZXJf ZGlzdGFuY2UgKGEsIGIsIDEsIFJCX0xPR0JPT0tfQkVHSU4sIFJCX0xPR0JPT0tfRU5EKQorIAor LSNkZWZpbmUgUkJfUFJPRklMRV9CRUdJTiAgICAgICAgICgyNSAqIFBBR0VTSVpFKQorLSNkZWZp bmUgUkJfUFJPRklMRV9FTkQgICAgICAgICAgICg1MDAgKiBQQUdFU0laRSkKKysjZGVmaW5lIFJC X1BST0ZJTEVfQkVHSU4gICAgICAgICAoMjUgKiBYUEFHRVNJWkUpCisrI2RlZmluZSBSQl9QUk9G SUxFX0VORCAgICAgICAgICAgKDUwMCAqIFhQQUdFU0laRSkKKyAjZGVmaW5lIFJCX1BST0ZJTEVf U0laRSAgICAgICAgICAoUkJfUFJPRklMRV9FTkQgLSBSQl9QUk9GSUxFX0JFR0lOKQorICNkZWZp bmUgUkJfUFJPRklMRV9ESVNUQU5DRShhLGIpIHJpbmdidWZmZXJfZGlzdGFuY2UgKGEsIGIsIDEs IFJCX1BST0ZJTEVfQkVHSU4sIFJCX1BST0ZJTEVfRU5EKQorIAorQEAgLTMyOSw4ICszMjksOCBA QCBsaXF1aXZpc2lvbl9seW54X2RldmljZV9yZWFkIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIHVu c2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZworIAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJH UzsKKyAKKyAJLy8gR2V0IHRoZSBwYWdlIGFuZCBzZWdtZW50IG51bWJlci4KKy0JdW5zaWduZWQg aW50IHBhZ2UgICAgPSAoYWRkcmVzcyAvIFBBR0VTSVpFKTsKKy0JdW5zaWduZWQgaW50IHNlZ21l bnQgPSAoYWRkcmVzcyAlIFBBR0VTSVpFKSAvIFNFR01FTlRTSVpFOworKwl1bnNpZ25lZCBpbnQg cGFnZSAgICA9IChhZGRyZXNzIC8gWFBBR0VTSVpFKTsKKysJdW5zaWduZWQgaW50IHNlZ21lbnQg PSAoYWRkcmVzcyAlIFhQQUdFU0laRSkgLyBTRUdNRU5UU0laRTsKKyAKKyAJdW5zaWduZWQgaW50 IG5ieXRlcyA9IDA7CisgCXdoaWxlIChuYnl0ZXMgPCBzaXplKSB7CitAQCAtMzU0LDcgKzM1NCw3 IEBAIGxpcXVpdmlzaW9uX2x5bnhfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwg dW5zaWduZWQgaW50IGFkZHJlc3MsIHVuc2lnCisgCisgCQluYnl0ZXMgKz0gU0VHTUVOVFNJWkU7 CisgCQlzZWdtZW50Kys7CistCQlpZiAoc2VnbWVudCA9PSAoUEFHRVNJWkUgLyBTRUdNRU5UU0la RSkpIHsKKysJCWlmIChzZWdtZW50ID09IChYUEFHRVNJWkUgLyBTRUdNRU5UU0laRSkpIHsKKyAJ CQlzZWdtZW50ID0gMDsKKyAJCQlwYWdlKys7CisgCQl9CitAQCAtNDIwLDEzICs0MjAsMTMgQEAg bGlxdWl2aXNpb25fbHlueF9kZXZpY2VfZm9yZWFjaCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBk Y19kaXZlX2NhbGxiYWNrX3QgY2FsbGIKKyAJdW5zaWduZWQgaW50IGhlYWRlcnNpemUgPSAobW9k ZWwgPT0gWEVOKSA/IFNaX0hFQURFUl9YRU4gOiBTWl9IRUFERVJfT1RIRVI7CisgCisgCS8vIEdl dCB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgcGVyIHBhZ2UuCistCXVuc2lnbmVkIGludCBucGFnZXMg PSBQQUdFU0laRSAvIGhlYWRlcnNpemU7CisrCXVuc2lnbmVkIGludCBucGFnZXMgPSBYUEFHRVNJ WkUgLyBoZWFkZXJzaXplOworIAorIAkvLyBHZXQgdGhlIGxvZ2Jvb2sgcG9pbnRlcnMuCisgCXVu c2lnbmVkIGludCBiZWdpbiA9IGFycmF5X3VpbnQxNl9sZSAoY29uZmlnICsgMHg0Nik7CisgCXVu c2lnbmVkIGludCBlbmQgICA9IGFycmF5X3VpbnQxNl9sZSAoY29uZmlnICsgMHg0OCk7CistCXVu c2lnbmVkIGludCByYl9sb2dib29rX2JlZ2luID0gUkJfTE9HQk9PS19CRUdJTiArIChiZWdpbiAv IG5wYWdlcykgKiBQQUdFU0laRSArIChiZWdpbiAlIG5wYWdlcykgKiBoZWFkZXJzaXplOworLQl1 bnNpZ25lZCBpbnQgcmJfbG9nYm9va19lbmQgICA9IFJCX0xPR0JPT0tfQkVHSU4gKyAoZW5kICAg LyBucGFnZXMpICogUEFHRVNJWkUgKyAoZW5kICAgJSBucGFnZXMpICogaGVhZGVyc2l6ZTsKKysJ dW5zaWduZWQgaW50IHJiX2xvZ2Jvb2tfYmVnaW4gPSBSQl9MT0dCT09LX0JFR0lOICsgKGJlZ2lu IC8gbnBhZ2VzKSAqIFhQQUdFU0laRSArIChiZWdpbiAlIG5wYWdlcykgKiBoZWFkZXJzaXplOwor Kwl1bnNpZ25lZCBpbnQgcmJfbG9nYm9va19lbmQgICA9IFJCX0xPR0JPT0tfQkVHSU4gKyAoZW5k ICAgLyBucGFnZXMpICogWFBBR0VTSVpFICsgKGVuZCAgICUgbnBhZ2VzKSAqIGhlYWRlcnNpemU7 CisgCWlmIChyYl9sb2dib29rX2JlZ2luIDwgUkJfTE9HQk9PS19CRUdJTiB8fCByYl9sb2dib29r X2JlZ2luID4gUkJfTE9HQk9PS19FTkQgfHwKKyAJCXJiX2xvZ2Jvb2tfZW5kICAgPCBSQl9MT0dC T09LX0JFR0lOIHx8IHJiX2xvZ2Jvb2tfZW5kICAgPiBSQl9MT0dCT09LX0VORCkgeworIAkJRVJS T1IgKGFic3RyYWN0LT5jb250ZXh0LCAiSW52YWxpZCBsb2dib29rIHBvaW50ZXJzICglMDR4LCAl MDR4KS4iLAorQEAgLTQ4OCw4ICs0ODgsOCBAQCBsaXF1aXZpc2lvbl9seW54X2RldmljZV9mb3Jl YWNoIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2RpdmVfY2FsbGJhY2tfdCBjYWxsYgorIAkJ CWFkZHJlc3MgPSBSQl9MT0dCT09LX0VORDsKKyAKKyAJCS8vIFNraXAgdGhlIHBhZGRpbmcgYnl0 ZXMuCistCQlpZiAoKGFkZHJlc3MgJSBQQUdFU0laRSkgPT0gMCkgeworLQkJCXVuc2lnbmVkIGlu dCBwYWRkaW5nID0gUEFHRVNJWkUgJSBoZWFkZXJzaXplOworKwkJaWYgKChhZGRyZXNzICUgWFBB R0VTSVpFKSA9PSAwKSB7CisrCQkJdW5zaWduZWQgaW50IHBhZGRpbmcgPSBYUEFHRVNJWkUgJSBo ZWFkZXJzaXplOworIAkJCXVuc2lnbmVkIGNoYXIgZHVtbXlbU1pfSEVBREVSX01BWF0gPSB7MH07 CisgCQkJc3RhdHVzID0gZGNfcmJzdHJlYW1fcmVhZCAocmJsb2dib29rLCAmcHJvZ3Jlc3MsIGR1 bW15LCBwYWRkaW5nKTsKKyAJCQlpZiAoc3RhdHVzICE9IERDX1NUQVRVU19TVUNDRVNTKSB7Cist LS0gYS9zcmMvb2NlYW5pY19hdG9tMi5jCisrKysgYi9zcmMvb2NlYW5pY19hdG9tMi5jCitAQCAt MTAxMSwxMSArMTAxMSwxMSBAQCBvY2VhbmljX2F0b20yX2RldmljZV92ZXJzaW9uIChkY19kZXZp Y2VfdCAqYWJzdHJhY3QsIHVuc2lnbmVkIGNoYXIgZGF0YVtdLCB1bnNpZworIAlpZiAoIUlTSU5T VEFOQ0UgKGFic3RyYWN0KSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCist CWlmIChzaXplIDwgUEFHRVNJWkUpCisrCWlmIChzaXplIDwgWFBBR0VTSVpFKQorIAkJcmV0dXJu IERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJdW5zaWduZWQgY2hhciBjb21tYW5kW10gPSB7 Q01EX1ZFUlNJT059OworLQlkY19zdGF0dXNfdCByYyA9IG9jZWFuaWNfYXRvbTJfdHJhbnNmZXIg KGRldmljZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5kKSwgQUNLLCBkYXRhLCBQQUdFU0laRSwg MSk7CisrCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY19hdG9tMl90cmFuc2ZlciAoZGV2aWNlLCBj b21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBBQ0ssIGRhdGEsIFhQQUdFU0laRSwgMSk7CisgCWlm IChyYyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykKKyAJCXJldHVybiByYzsKKyAKK0BAIC0xMDI5LDgg KzEwMjksOCBAQCBvY2VhbmljX2F0b20yX2RldmljZV9yZWFkIChkY19kZXZpY2VfdCAqYWJzdHJh Y3QsIHVuc2lnbmVkIGludCBhZGRyZXNzLCB1bnNpZ25lZAorIAlvY2VhbmljX2F0b20yX2Rldmlj ZV90ICpkZXZpY2UgPSAob2NlYW5pY19hdG9tMl9kZXZpY2VfdCopIGFic3RyYWN0OworIAljb25z dCBvY2VhbmljX2NvbW1vbl9sYXlvdXRfdCAqbGF5b3V0ID0gZGV2aWNlLT5iYXNlLmxheW91dDsK KyAKKy0JaWYgKChhZGRyZXNzICUgUEFHRVNJWkUgIT0gMCkgfHwKKy0JCShzaXplICAgICUgUEFH RVNJWkUgIT0gMCkpCisrCWlmICgoYWRkcmVzcyAlIFhQQUdFU0laRSAhPSAwKSB8fAorKwkJKHNp emUgICAgJSBYUEFHRVNJWkUgIT0gMCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdT OworIAorIAkvLyBQaWNrIHRoZSBjb3JyZWN0IHJlYWQgY29tbWFuZCBhbmQgbnVtYmVyIG9mIGNo ZWNrc3VtIGJ5dGVzLgorQEAgLTEwNTQsNyArMTA1NCw3IEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNl X3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIHVuc2ln bmVkCisgCX0KKyAKKyAJLy8gUGljayB0aGUgYmVzdCBwYWdlc2l6ZSB0byB1c2UuCistCXVuc2ln bmVkIGludCBwYWdlc2l6ZSA9IGRldmljZS0+YmlncGFnZSAqIFBBR0VTSVpFOworKwl1bnNpZ25l ZCBpbnQgcGFnZXNpemUgPSBkZXZpY2UtPmJpZ3BhZ2UgKiBYUEFHRVNJWkU7CisgCisgCS8vIEhp Z2ggbWVtb3J5IHN0YXRlLgorIAl1bnNpZ25lZCBpbnQgaGlnaG1lbSA9IDA7CitAQCAtMTA2Niw3 ICsxMDY2LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKmFic3Ry YWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgdW5zaWduZWQKKyAJCQloaWdobWVtID0gbGF5b3V0 LT5oaWdobWVtOworIAkJCXJlYWRfY21kID0gQ01EX1JFQUQxNkhJOworIAkJCWNyY19zaXplID0g MjsKKy0JCQlwYWdlc2l6ZSA9IDE2ICogUEFHRVNJWkU7CisrCQkJcGFnZXNpemUgPSAxNiAqIFhQ QUdFU0laRTsKKyAJCX0KKyAKKyAJCS8vIENhbGN1bGF0ZSB0aGUgcGFnZSBudW1iZXIgYWZ0ZXIg bWFwcGluZyB0aGUgdmlydHVhbCBoaWdoIG1lbW9yeQorQEAgLTEwNzUsNyArMTA3NSw3IEBAIG9j ZWFuaWNfYXRvbTJfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQg aW50IGFkZHJlc3MsIHVuc2lnbmVkCisgCisgCQlpZiAocGFnZSAhPSBkZXZpY2UtPmNhY2hlZF9w YWdlIHx8IGhpZ2htZW0gIT0gZGV2aWNlLT5jYWNoZWRfaGlnaG1lbSkgeworIAkJCS8vIFJlYWQg dGhlIHBhY2thZ2UuCistCQkJdW5zaWduZWQgaW50IG51bWJlciA9IGhpZ2htZW0gPyBwYWdlIDog cGFnZSAqIGRldmljZS0+YmlncGFnZTsgLy8gVGhpcyBpcyBhbHdheXMgUEFHRVNJWkUsIGV2ZW4g aW4gYmlnIHBhZ2UgbW9kZS4KKysJCQl1bnNpZ25lZCBpbnQgbnVtYmVyID0gaGlnaG1lbSA/IHBh Z2UgOiBwYWdlICogZGV2aWNlLT5iaWdwYWdlOyAvLyBUaGlzIGlzIGFsd2F5cyBYUEFHRVNJWkUs IGV2ZW4gaW4gYmlnIHBhZ2UgbW9kZS4KKyAJCQl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbXSA9IHty ZWFkX2NtZCwKKyAJCQkJCShudW1iZXIgPj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCQkobnVt YmVyICAgICApICYgMHhGRiwgLy8gbG93CitAQCAtMTExMCw4ICsxMTEwLDggQEAgb2NlYW5pY19h dG9tMl9kZXZpY2Vfd3JpdGUgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFk ZHJlc3MsIGNvbnN0IHUKKyB7CisgCW9jZWFuaWNfYXRvbTJfZGV2aWNlX3QgKmRldmljZSA9IChv Y2VhbmljX2F0b20yX2RldmljZV90KikgYWJzdHJhY3Q7CisgCistCWlmICgoYWRkcmVzcyAlIFBB R0VTSVpFICE9IDApIHx8CistCQkoc2l6ZSAgICAlIFBBR0VTSVpFICE9IDApKQorKwlpZiAoKGFk ZHJlc3MgJSBYUEFHRVNJWkUgIT0gMCkgfHwKKysJCShzaXplICAgICUgWFBBR0VTSVpFICE9IDAp KQorIAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJLy8gSW52YWxpZGF0ZSB0 aGUgY2FjaGUuCitAQCAtMTEyMSw3ICsxMTIxLDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2Vfd3Jp dGUgKGRjX2RldmljZV90ICphYnN0cmFjdCwgdW5zaWduZWQgaW50IGFkZHJlc3MsIGNvbnN0IHUK KyAJdW5zaWduZWQgaW50IG5ieXRlcyA9IDA7CisgCXdoaWxlIChuYnl0ZXMgPCBzaXplKSB7Cisg CQkvLyBQcmVwYXJlIHRvIHdyaXRlIHRoZSBwYWNrYWdlLgorLQkJdW5zaWduZWQgaW50IG51bWJl ciA9IGFkZHJlc3MgLyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBudW1iZXIgPSBhZGRyZXNz IC8gWFBBR0VTSVpFOworIAkJdW5zaWduZWQgY2hhciBwcmVwYXJlW10gPSB7Q01EX1dSSVRFLAor IAkJCQkobnVtYmVyID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkobnVtYmVyICAgICApICYg MHhGRiwgLy8gbG93CitAQCAtMTEzMSwxNiArMTEzMSwxNiBAQCBvY2VhbmljX2F0b20yX2Rldmlj ZV93cml0ZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywgY29u c3QgdQorIAkJCXJldHVybiByYzsKKyAKKyAJCS8vIFdyaXRlIHRoZSBwYWNrYWdlLgorLQkJdW5z aWduZWQgY2hhciBjb21tYW5kW1BBR0VTSVpFICsgMV0gPSB7MH07CistCQltZW1jcHkgKGNvbW1h bmQsIGRhdGEsIFBBR0VTSVpFKTsKKy0JCWNvbW1hbmRbUEFHRVNJWkVdID0gY2hlY2tzdW1fYWRk X3VpbnQ4IChjb21tYW5kLCBQQUdFU0laRSwgMHgwMCk7CisrCQl1bnNpZ25lZCBjaGFyIGNvbW1h bmRbWFBBR0VTSVpFICsgMV0gPSB7MH07CisrCQltZW1jcHkgKGNvbW1hbmQsIGRhdGEsIFhQQUdF U0laRSk7CisrCQljb21tYW5kW1hQQUdFU0laRV0gPSBjaGVja3N1bV9hZGRfdWludDggKGNvbW1h bmQsIFhQQUdFU0laRSwgMHgwMCk7CisgCQlyYyA9IG9jZWFuaWNfYXRvbTJfdHJhbnNmZXIgKGRl dmljZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5kKSwgQUNLLCBOVUxMLCAwLCAwKTsKKyAJCWlm IChyYyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykKKyAJCQlyZXR1cm4gcmM7CisgCistCQluYnl0ZXMg Kz0gUEFHRVNJWkU7CistCQlhZGRyZXNzICs9IFBBR0VTSVpFOworLQkJZGF0YSArPSBQQUdFU0la RTsKKysJCW5ieXRlcyArPSBYUEFHRVNJWkU7CisrCQlhZGRyZXNzICs9IFhQQUdFU0laRTsKKysJ CWRhdGEgKz0gWFBBR0VTSVpFOworIAl9CisgCisgCXJldHVybiBEQ19TVEFUVVNfU1VDQ0VTUzsK Ky0tLSBhL3NyYy9vY2VhbmljX2F0b20yX3BhcnNlci5jCisrKysgYi9zcmMvb2NlYW5pY19hdG9t Ml9wYXJzZXIuYworQEAgLTE2Nyw4ICsxNjcsOCBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9jcmVh dGUgKGRjX3BhcnNlcl90ICoqb3V0LCBkY19jb250ZXh0X3QgKmNvbnRleHQsIHVuc2lnbmVkCisg CisgCS8vIFNldCB0aGUgZGVmYXVsdCB2YWx1ZXMuCisgCXBhcnNlci0+bW9kZWwgPSBtb2RlbDsK Ky0JcGFyc2VyLT5oZWFkZXJzaXplID0gOSAqIFBBR0VTSVpFIC8gMjsKKy0JcGFyc2VyLT5mb290 ZXJzaXplID0gMiAqIFBBR0VTSVpFIC8gMjsKKysJcGFyc2VyLT5oZWFkZXJzaXplID0gOSAqIFhQ QUdFU0laRSAvIDI7CisrCXBhcnNlci0+Zm9vdGVyc2l6ZSA9IDIgKiBYUEFHRVNJWkUgLyAyOwor IAlpZiAobW9kZWwgPT0gREFUQU1BU0sgfHwgbW9kZWwgPT0gQ09NUFVNQVNLIHx8CisgCQltb2Rl bCA9PSBHRU8gfHwgbW9kZWwgPT0gR0VPMjAgfHwKKyAJCW1vZGVsID09IFZFTzIwIHx8IG1vZGVs ID09IFZFTzMwIHx8CitAQCAtMTc5LDMxICsxNzksMzEgQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJf Y3JlYXRlIChkY19wYXJzZXJfdCAqKm91dCwgZGNfY29udGV4dF90ICpjb250ZXh0LCB1bnNpZ25l ZAorIAkJbW9kZWwgPT0gSTIwMCB8fCBtb2RlbCA9PSBJMjAwQyB8fAorIAkJbW9kZWwgPT0gSTMw MEMgfHwgbW9kZWwgPT0gR0VPNDAgfHwKKyAJCW1vZGVsID09IFZFTzQwIHx8IG1vZGVsID09IEk0 NzBUQykgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplIC09IFBBR0VTSVpFOworKwkJcGFyc2VyLT5o ZWFkZXJzaXplIC09IFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBWVDQgfHwgbW9k ZWwgPT0gVlQ0MSkgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplICs9IFBBR0VTSVpFOworKwkJcGFy c2VyLT5oZWFkZXJzaXplICs9IFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBUWDEp IHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSArPSAyICogUEFHRVNJWkU7CisrCQlwYXJzZXItPmhl YWRlcnNpemUgKz0gMiAqIFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBBVE9NMSB8 fCBtb2RlbCA9PSBJMTAwIHx8CisgCQltb2RlbCA9PSBQUk9QTFVTNCkgeworLQkJcGFyc2VyLT5o ZWFkZXJzaXplIC09IDIgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSAtPSAyICog WFBBR0VTSVpFOworIAl9IGVsc2UgaWYgKG1vZGVsID09IEYxMEEgfHwgbW9kZWwgPT0gRjEwQiB8 fAorIAkJbW9kZWwgPT0gTVVORElBTDIgfHwgbW9kZWwgPT0gTVVORElBTDMpIHsKKy0JCXBhcnNl ci0+aGVhZGVyc2l6ZSA9IDMgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDMg KiBYUEFHRVNJWkU7CisgCQlwYXJzZXItPmZvb3RlcnNpemUgPSAwOworIAl9IGVsc2UgaWYgKG1v ZGVsID09IEYxMUEgfHwgbW9kZWwgPT0gRjExQikgeworLQkJcGFyc2VyLT5oZWFkZXJzaXplID0g NSAqIFBBR0VTSVpFOworKwkJcGFyc2VyLT5oZWFkZXJzaXplID0gNSAqIFhQQUdFU0laRTsKKyAJ CXBhcnNlci0+Zm9vdGVyc2l6ZSA9IDA7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gQTMwMENTIHx8 IG1vZGVsID09IFZUWCB8fAorIAkJbW9kZWwgPT0gSTQ1MFQgfHwgbW9kZWwgPT0gSTc1MFRDIHx8 CisgCQltb2RlbCA9PSBJNzcwUiB8fCBtb2RlbCA9PSBTQUdFIHx8CisgCQltb2RlbCA9PSBCRUFD T04pIHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDUgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+ aGVhZGVyc2l6ZSA9IDUgKiBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gUFJPUExV U1gpIHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDMgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+ aGVhZGVyc2l6ZSA9IDMgKiBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9kZWwgPT0gSTU1MEMg fHwgbW9kZWwgPT0gV0lTRE9NNCB8fAorIAkJbW9kZWwgPT0gSTIwMENWMikgeworLQkJcGFyc2Vy LT5oZWFkZXJzaXplID0gNSAqIFBBR0VTSVpFIC8gMjsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSA9 IDUgKiBYUEFHRVNJWkUgLyAyOworIAl9CisgCisgCXBhcnNlci0+c2VyaWFsID0gc2VyaWFsOwor QEAgLTQzMywxMiArNDMzLDEyIEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX2NhY2hlIChvY2Vhbmlj X2F0b20yX3BhcnNlcl90ICpwYXJzZXIpCisgCQlyZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7 CisgCisgCS8vIEdldCB0aGUgb2Zmc2V0IHRvIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBzYW1wbGUu CistCXVuc2lnbmVkIGludCBoZWFkZXIgPSBoZWFkZXJzaXplIC0gUEFHRVNJWkUgLyAyOworKwl1 bnNpZ25lZCBpbnQgaGVhZGVyID0gaGVhZGVyc2l6ZSAtIFhQQUdFU0laRSAvIDI7CisgCXVuc2ln bmVkIGludCBmb290ZXIgPSBzaXplIC0gZm9vdGVyc2l6ZTsKKyAJaWYgKHBhcnNlci0+bW9kZWwg PT0gVlQ0IHx8IHBhcnNlci0+bW9kZWwgPT0gVlQ0MSB8fAorIAkJcGFyc2VyLT5tb2RlbCA9PSBB MzAwQUkgfHwgcGFyc2VyLT5tb2RlbCA9PSBWSVNJT04gfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0g WFBBSVIpIHsKKy0JCWhlYWRlciA9IDMgKiBQQUdFU0laRTsKKysJCWhlYWRlciA9IDMgKiBYUEFH RVNJWkU7CisgCX0KKyAKKyAJLy8gR2V0IHRoZSBkaXZlIG1vZGUuCitAQCAtNjY1LDcgKzY2NSw3 IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX3ZlbmRvciAob2NlYW5pY19hdG9tMl9wYXJzZXJfdCAq cGFyc2VyLCBjb25zdCB1bnNpZ25lZCBjaGFyCisgCQkvLyBHZXQgdGhlIHNhbXBsZSBzaXplLgor IAkJdW5zaWduZWQgaW50IGxlbmd0aCA9IHNhbXBsZXNpemU7CisgCQlpZiAoc2FtcGxldHlwZSA9 PSAweEJCKSB7CistCQkJbGVuZ3RoID0gUEFHRVNJWkU7CisrCQkJbGVuZ3RoID0gWFBBR0VTSVpF OworIAkJfQorIAorIAkJLy8gVmVuZG9yIHNwZWNpZmljIGRhdGEKK0BAIC03MjAsNyArNzIwLDcg QEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJzZXJfdCAqYWJz dHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18KKyAJCX0KKyAJfQorIAorLQl1bnNpZ25lZCBpbnQg c2FtcGxlc2l6ZSA9IFBBR0VTSVpFIC8gMjsKKysJdW5zaWduZWQgaW50IHNhbXBsZXNpemUgPSBY UEFHRVNJWkUgLyAyOworIAlpZiAocGFyc2VyLT5tb2RlID09IEZSRUVESVZFKSB7CisgCQlpZiAo cGFyc2VyLT5tb2RlbCA9PSBGMTBBIHx8IHBhcnNlci0+bW9kZWwgPT0gRjEwQiB8fAorIAkJCXBh cnNlci0+bW9kZWwgPT0gRjExQSB8fCBwYXJzZXItPm1vZGVsID09IEYxMUIgfHwKK0BAIC03MzYs NyArNzM2LDcgQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChkY19wYXJz ZXJfdCAqYWJzdHJhY3QsIGRjX3NhbXBsZV9jYWxsYmFja18KKyAJCXBhcnNlci0+bW9kZWwgPT0g STc1MFRDIHx8IHBhcnNlci0+bW9kZWwgPT0gUFJPUExVU1ggfHwKKyAJCXBhcnNlci0+bW9kZWwg PT0gSTc3MFIgfHwgcGFyc2VyLT5tb2RlbCA9PSBJNDcwVEMgfHwKKyAJCXBhcnNlci0+bW9kZWwg PT0gU0FHRSB8fCBwYXJzZXItPm1vZGVsID09IEJFQUNPTikgeworLQkJc2FtcGxlc2l6ZSA9IFBB R0VTSVpFOworKwkJc2FtcGxlc2l6ZSA9IFhQQUdFU0laRTsKKyAJfQorIAorIAl1bnNpZ25lZCBp bnQgaGF2ZV90ZW1wZXJhdHVyZSA9IDEsIGhhdmVfcHJlc3N1cmUgPSAxOworQEAgLTgwNiw3ICs4 MDYsNyBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjX3BhcnNlcl90 ICphYnN0cmFjdCwgZGNfc2FtcGxlX2NhbGxiYWNrXworIAkJLy8gbGFyZ2VyIHNpemUuIENoZWNr IHdoZXRoZXIgd2UgaGF2ZSB0aGF0IG1hbnkgYnl0ZXMgYXZhaWxhYmxlLgorIAkJdW5zaWduZWQg aW50IGxlbmd0aCA9IHNhbXBsZXNpemU7CisgCQlpZiAoc2FtcGxldHlwZSA9PSAweEJCKSB7Cist CQkJbGVuZ3RoID0gUEFHRVNJWkU7CisrCQkJbGVuZ3RoID0gWFBBR0VTSVpFOworIAkJCWlmIChv ZmZzZXQgKyBsZW5ndGggPiBzaXplIC0gcGFyc2VyLT5mb290ZXJzaXplKSB7CisgCQkJCUVSUk9S IChhYnN0cmFjdC0+Y29udGV4dCwgIkJ1ZmZlciBvdmVyZmxvdyBkZXRlY3RlZCEiKTsKKyAJCQkJ cmV0dXJuIERDX1NUQVRVU19EQVRBRk9STUFUOworLS0tIGEvc3JjL29jZWFuaWNfY29tbW9uLmMK KysrKyBiL3NyYy9vY2VhbmljX2NvbW1vbi5jCitAQCAtMTA0LDcgKzEwNCw3IEBAIG9jZWFuaWNf Y29tbW9uX21hdGNoX3BhdHRlcm4gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0cmluZywgY29uc3Qg dW5zaWduZWQgY2hhciAqCisgCXVuc2lnbmVkIGludCB2YWx1ZSA9IDA7CisgCXVuc2lnbmVkIGlu dCBjb3VudCA9IDA7CisgCistCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgUEFHRVNJWkU7 ICsraSwgKytwYXR0ZXJuLCArK3N0cmluZykgeworKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg aSA8IFhQQUdFU0laRTsgKytpLCArK3BhdHRlcm4sICsrc3RyaW5nKSB7CisgCQlpZiAoKnBhdHRl cm4gIT0gJ1wwJykgeworIAkJCS8vIENvbXBhcmUgdGhlIHBhdHRlcm4uCisgCQkJaWYgKCpwYXR0 ZXJuICE9ICpzdHJpbmcpCitAQCAtMjEwLDcgKzIxMCw3IEBAIG9jZWFuaWNfY29tbW9uX2Rldmlj ZV9kdW1wIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2J1ZmZlcl90ICpidWZmZXIpCisgCisg CS8vIERvd25sb2FkIHRoZSBtZW1vcnkgZHVtcC4KKyAJc3RhdHVzID0gZGV2aWNlX2R1bXBfcmVh ZCAoYWJzdHJhY3QsIDAsIGRjX2J1ZmZlcl9nZXRfZGF0YSAoYnVmZmVyKSwKKy0JCWRjX2J1ZmZl cl9nZXRfc2l6ZSAoYnVmZmVyKSwgUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSk7CisrCQlk Y19idWZmZXJfZ2V0X3NpemUgKGJ1ZmZlciksIFhQQUdFU0laRSAqIGRldmljZS0+bXVsdGlwYWdl KTsKKyAJaWYgKHN0YXR1cyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykgeworIAkJcmV0dXJuIHN0YXR1 czsKKyAJfQorQEAgLTI2MCw3ICsyNjAsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2VfbG9nYm9v ayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190ICpwcm9ncgorIAl9 CisgCisgCS8vIFJlYWQgdGhlIHBvaW50ZXIgZGF0YS4KKy0JdW5zaWduZWQgY2hhciBwb2ludGVy c1tQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgcG9pbnRlcnNbWFBBR0VTSVpFXSA9 IHswfTsKKyAJcmMgPSBkY19kZXZpY2VfcmVhZCAoYWJzdHJhY3QsIGxheW91dC0+Y2ZfcG9pbnRl cnMsIHBvaW50ZXJzLCBzaXplb2YgKHBvaW50ZXJzKSk7CisgCWlmIChyYyAhPSBEQ19TVEFUVVNf U1VDQ0VTUykgeworIAkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiRmFpbGVkIHRvIHJlYWQg dGhlIG1lbW9yeSBwYWdlLiIpOworQEAgLTMwNCw4ICszMDQsOCBAQCBvY2VhbmljX2NvbW1vbl9k ZXZpY2VfbG9nYm9vayAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190 ICpwcm9ncgorIAl9CisgCisgCS8vIFVwZGF0ZSBhbmQgZW1pdCBhIHByb2dyZXNzIGV2ZW50Lgor LQlwcm9ncmVzcy0+Y3VycmVudCArPSBQQUdFU0laRTsKKy0JcHJvZ3Jlc3MtPm1heGltdW0gKz0g UEFHRVNJWkU7CisrCXByb2dyZXNzLT5jdXJyZW50ICs9IFhQQUdFU0laRTsKKysJcHJvZ3Jlc3Mt Pm1heGltdW0gKz0gWFBBR0VTSVpFOworIAlwcm9ncmVzcy0+bWF4aW11bSAtPSAobGF5b3V0LT5y Yl9sb2dib29rX2VuZCAtIGxheW91dC0+cmJfbG9nYm9va19iZWdpbikgLSByYl9sb2dib29rX3Np emU7CisgCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsIHBy b2dyZXNzKTsKKyAKK0BAIC0zMjMsNyArMzIzLDcgQEAgb2NlYW5pY19jb21tb25fZGV2aWNlX2xv Z2Jvb2sgKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZXZlbnRfcHJvZ3Jlc3NfdCAqcHJvZ3IK KyAKKyAJLy8gQ3JlYXRlIHRoZSByaW5nYnVmZmVyIHN0cmVhbS4KKyAJZGNfcmJzdHJlYW1fdCAq cmJzdHJlYW0gPSBOVUxMOworLQlyYyA9IGRjX3Jic3RyZWFtX25ldyAoJnJic3RyZWFtLCBhYnN0 cmFjdCwgUEFHRVNJWkUsIFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2UsIGxheW91dC0+cmJf bG9nYm9va19iZWdpbiwgbGF5b3V0LT5yYl9sb2dib29rX2VuZCwgcmJfbG9nYm9va19lbmQpOwor KwlyYyA9IGRjX3Jic3RyZWFtX25ldyAoJnJic3RyZWFtLCBhYnN0cmFjdCwgWFBBR0VTSVpFLCBY UEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSwgbGF5b3V0LT5yYl9sb2dib29rX2JlZ2luLCBs YXlvdXQtPnJiX2xvZ2Jvb2tfZW5kLCByYl9sb2dib29rX2VuZCk7CisgCWlmIChyYyAhPSBEQ19T VEFUVVNfU1VDQ0VTUykgeworIAkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiRmFpbGVkIHRv IGNyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJlYW0uIik7CisgCQlyZXR1cm4gcmM7CitAQCAtNDAw LDcgKzQwMCw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9wcm9maWxlIChkY19kZXZpY2VfdCAq YWJzdHJhY3QsIGRjX2V2ZW50X3Byb2dyZXNzX3QgKnByb2dyCisgCWNvbnN0IG9jZWFuaWNfY29t bW9uX2xheW91dF90ICpsYXlvdXQgPSBkZXZpY2UtPmxheW91dDsKKyAKKyAJLy8gR2V0IHRoZSBw YWdlc2l6ZQorLQl1bnNpZ25lZCBpbnQgcGFnZXNpemUgPSBsYXlvdXQtPmhpZ2htZW0gPyAxNiAq IFBBR0VTSVpFIDogUEFHRVNJWkU7CisrCXVuc2lnbmVkIGludCBwYWdlc2l6ZSA9IGxheW91dC0+ aGlnaG1lbSA/IDE2ICogWFBBR0VTSVpFIDogWFBBR0VTSVpFOworIAorIAkvLyBDYWNoZSB0aGUg bG9nYm9vayBwb2ludGVyIGFuZCBzaXplLgorIAljb25zdCB1bnNpZ25lZCBjaGFyICpsb2dib29r cyA9IGRjX2J1ZmZlcl9nZXRfZGF0YSAobG9nYm9vayk7CitAQCAtNDg1LDcgKzQ4NSw3IEBAIG9j ZWFuaWNfY29tbW9uX2RldmljZV9wcm9maWxlIChkY19kZXZpY2VfdCAqYWJzdHJhY3QsIGRjX2V2 ZW50X3Byb2dyZXNzX3QgKnByb2dyCisgCisgCS8vIENyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJl YW0uCisgCWRjX3Jic3RyZWFtX3QgKnJic3RyZWFtID0gTlVMTDsKKy0JcmMgPSBkY19yYnN0cmVh bV9uZXcgKCZyYnN0cmVhbSwgYWJzdHJhY3QsIFBBR0VTSVpFLCBQQUdFU0laRSAqIGRldmljZS0+ bXVsdGlwYWdlLCBsYXlvdXQtPnJiX3Byb2ZpbGVfYmVnaW4sIGxheW91dC0+cmJfcHJvZmlsZV9l bmQsIHJiX3Byb2ZpbGVfZW5kKTsKKysJcmMgPSBkY19yYnN0cmVhbV9uZXcgKCZyYnN0cmVhbSwg YWJzdHJhY3QsIFhQQUdFU0laRSwgWFBBR0VTSVpFICogZGV2aWNlLT5tdWx0aXBhZ2UsIGxheW91 dC0+cmJfcHJvZmlsZV9iZWdpbiwgbGF5b3V0LT5yYl9wcm9maWxlX2VuZCwgcmJfcHJvZmlsZV9l bmQpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKyAJCUVSUk9SIChhYnN0cmFj dC0+Y29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgdGhlIHJpbmdidWZmZXIgc3RyZWFtLiIpOwor IAkJcmV0dXJuIHJjOworQEAgLTU3OCw3ICs1NzgsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2Vf cHJvZmlsZSAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19ldmVudF9wcm9ncmVzc190ICpwcm9n cgorIAkJCXVuc2lnbmVkIGludCB2YWx1ZV9oaSA9IHZhbHVlICYgMHhFMDAwOworIAkJCXVuc2ln bmVkIGludCB2YWx1ZV9sbyA9IHZhbHVlICYgMHgwRkZGOworIAkJCXVuc2lnbmVkIGludCBucGFn ZXMgPSAoKHZhbHVlX2hpID4+IDEpIHwgdmFsdWVfbG8pICsgMTsKKy0JCQl1bnNpZ25lZCBpbnQg bGVuZ3RoID0gbnBhZ2VzICogUEFHRVNJWkU7CisrCQkJdW5zaWduZWQgaW50IGxlbmd0aCA9IG5w YWdlcyAqIFhQQUdFU0laRTsKKyAJCQlpZiAocmJfZW50cnlfc2l6ZSA+IGxlbmd0aCkgeworIAkJ CQlyYl9lbnRyeV9zaXplID0gbGVuZ3RoOworIAkJCX0KK0BAIC02MDksNyArNjA5LDcgQEAgb2Nl YW5pY19jb21tb25fZGV2aWNlX2ZvcmVhY2ggKGRjX2RldmljZV90ICphYnN0cmFjdCwgZGNfZGl2 ZV9jYWxsYmFja190IGNhbGxiYWMKKyAKKyAJLy8gRW5hYmxlIHByb2dyZXNzIG5vdGlmaWNhdGlv bnMuCisgCWRjX2V2ZW50X3Byb2dyZXNzX3QgcHJvZ3Jlc3MgPSBFVkVOVF9QUk9HUkVTU19JTklU SUFMSVpFUjsKKy0JcHJvZ3Jlc3MubWF4aW11bSA9IFBBR0VTSVpFICsKKysJcHJvZ3Jlc3MubWF4 aW11bSA9IFhQQUdFU0laRSArCisgCQkobGF5b3V0LT5yYl9sb2dib29rX2VuZCAtIGxheW91dC0+ cmJfbG9nYm9va19iZWdpbikgKworIAkJKGxheW91dC0+cmJfcHJvZmlsZV9lbmQgLSBsYXlvdXQt PnJiX3Byb2ZpbGVfYmVnaW4pOworIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJzdHJhY3QsIERDX0VW RU5UX1BST0dSRVNTLCAmcHJvZ3Jlc3MpOworQEAgLTYyMSw3ICs2MjEsNyBAQCBvY2VhbmljX2Nv bW1vbl9kZXZpY2VfZm9yZWFjaCAoZGNfZGV2aWNlX3QgKmFic3RyYWN0LCBkY19kaXZlX2NhbGxi YWNrX3QgY2FsbGJhYworIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJzdHJhY3QsIERDX0VWRU5UX1ZF TkRPUiwgJnZlbmRvcik7CisgCisgCS8vIFJlYWQgdGhlIGRldmljZSBpZC4KKy0JdW5zaWduZWQg Y2hhciBpZFtQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNoYXIgaWRbWFBBR0VTSVpFXSA9 IHswfTsKKyAJZGNfc3RhdHVzX3QgcmMgPSBkY19kZXZpY2VfcmVhZCAoYWJzdHJhY3QsIGxheW91 dC0+Y2ZfZGV2aW5mbywgaWQsIHNpemVvZiAoaWQpKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19T VUNDRVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gcmVhZCB0 aGUgbWVtb3J5IHBhZ2UuIik7CitAQCAtNjI5LDcgKzYyOSw3IEBAIG9jZWFuaWNfY29tbW9uX2Rl 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 ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIyODFiYjg0Y2QxMAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUKQEAg LTAsMCArMSwzMCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZGl2ZWNvbXB1dGVyLXN1YnN1 cmZhY2UnCitwa2duYW1lPWxpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlCit2ZXJzaW9uPTUuMC4x MAorcmV2aXNpb249MQord3Jrc3JjPSJsaWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1icmFuY2gt JHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtlZGVwZW5kcz0i bGlidG9vbCBhdXRvbWFrZSBhdXRvY29uZiBwa2ctY29uZmlnIgorbWFrZWRlcGVuZHM9ImxpYnVz Yi1kZXZlbCBsaWJtdHAtZGV2ZWwgaGlkYXBpLWRldmVsIGxpYmJsdWV0b290aC1kZXZlbCIKK3No b3J0X2Rlc2M9IlN1YnN1cmZhY2UgdmVyc2lvbiBvZiBsaWJkaXZlY29tcHV0ZXIiCittYWludGFp bmVyPSJBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPiIKK2xpY2Vuc2U9IkxHUEwt Mi4xLW9ubHkiCitob21lcGFnZT0iaHR0cHM6Ly9zdWJzdXJmYWNlLWRpdmVsb2cub3JnLyIKK2Rp c3RmaWxlcz0iJHtob21lcGFnZX0vZG93bmxvYWRzLyR7cGtnbmFtZX0tYnJhbmNoLSR7dmVyc2lv bn0udGd6IgorY2hlY2tzdW09NWRjMTNjNWU4MmMzNWU1MDQxY2RkZTJlZTIwNmI2YzU5NzJlNjc1 NWVhMzk5MzczZGY3Y2ZkNzdkNzI3NWYxNAorCitwcmVfY29uZmlndXJlKCkgeworCWF1dG9yZWNv bmYgLWZpCit9CisKK2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRldmVsX3BhY2thZ2UoKSB7 CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgInVzci9saWIv Ki5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5hIgorCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMK Kwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3Vw ZGF0ZSBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdXBkYXRlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjFmZmYyNDU5NzQ1Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS91cGRhdGUKQEAgLTAs MCArMSwyIEBACitzaXRlPSIke2hvbWVwYWdlfS9kb3dubG9hZHMiCitwYXR0ZXJuPSIke3BrZ25h bWV9LWJyYW5jaC1cS1tcZFwuXSsoPz1cLnRneikiCgpGcm9tIGIzMzdkZTJiZmFlNTY4NTg4M2Ux MjEzYTY4M2QzMDcxYTA3NTA5Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsYW4g QnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5jb20+CkRhdGU6IFRodSwgMjUgTm92IDIwMjEgMTg6 MjM6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIIDMvM10gTmV3IHBhY2thZ2U6IFN1YnN1cmZhY2Ut NS4wLjEwCgotLS0KIC4uLi9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gg ICB8IDEwICsrKysrKysrKysKIC4uLi9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1vci1uaW5qYS5w YXRjaCAgICB8IDExICsrKysrKysrKysKIHNyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwg NDEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvU3Vic3VyZmFjZS9w YXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvY29yZS1kZXBlbmRzLWdlbmVyYXRlZC11aS5wYXRjaCBi L3NyY3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wYzk0ZGY2ZTkxYWQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9jb3JlLWRlcGVu ZHMtZ2VuZXJhdGVkLXVpLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL0NNYWtlTGlzdHMu dHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTUwNyw2ICs1MDcsNyBAQCBlbHNlaWYgKFNV QlNVUkZBQ0VfVEFSR0VUX0VYRUNVVEFCTEUgTUFUQ0hFUyAiRGVza3RvcEV4ZWN1dGFibGUiKQor IAlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2VfaW50ZXJmYWNlIHN1YnN1cmZhY2VfZ2VuZXJh dGVkX3VpKQorIAlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2VfcHJvZmlsZSBzdWJzdXJmYWNl X2dlbmVyYXRlZF91aSkKKyAJYWRkX2RlcGVuZGVuY2llcyhzdWJzdXJmYWNlX21vZGVsc19kZXNr dG9wIHN1YnN1cmZhY2VfZ2VuZXJhdGVkX3VpKQorKwlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZh Y2VfY29yZWxpYiBzdWJzdXJmYWNlX2dlbmVyYXRlZF91aSkKKyAJYWRkX2RlcGVuZGVuY2llcyhz dWJzdXJmYWNlX2dlbmVyYXRlZF91aSB2ZXJzaW9uKQorIGVsc2VpZiAoU1VCU1VSRkFDRV9UQVJH RVRfRVhFQ1VUQUJMRSBNQVRDSEVTICJEb3dubG9hZGVyRXhlY3V0YWJsZSIpCisgCXNldChET1dO TE9BREVSX0FQUApkaWZmIC0tZ2l0IGEvc3JjcGtncy9TdWJzdXJmYWNlL3BhdGNoZXMvbWFrZS1v ci1uaW5qYS5wYXRjaCBiL3NyY3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL21ha2Utb3ItbmluamEu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wOGYxMWE0MzRi NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9y LW5pbmphLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2NtYWtlL01vZHVsZXMvUnVuT25C dWlsZERpci5jbWFrZQorKysrIGIvY21ha2UvTW9kdWxlcy9SdW5PbkJ1aWxkRGlyLmNtYWtlCitA QCAtMjUsNyArMjUsNyBAQCBpZihOT1QgTk9fRE9DUykKKyAJYWRkX2N1c3RvbV90YXJnZXQoCisg CQlkb2N1bWVudGF0aW9uIEFMTAorIAkJQ09NTUFORAorLQkJJHtDTUFLRV9NQUtFX1BST0dSQU19 IC1DICR7Q01BS0VfU09VUkNFX0RJUn0vRG9jdW1lbnRhdGlvbiBPVVQ9JHtDTUFLRV9CSU5BUllf RElSfS9Eb2N1bWVudGF0aW9uLyBkb2MKKysJCW1ha2UgLUMgJHtDTUFLRV9TT1VSQ0VfRElSfS9E b2N1bWVudGF0aW9uIE9VVD0ke0NNQUtFX0JJTkFSWV9ESVJ9L0RvY3VtZW50YXRpb24vIGRvYwor IAkJREVQRU5EUyBkb2N1bWVudGF0aW9uTGluaworIAkpCisgZW5kaWYoKQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlIGIvc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTUzMjY2YjYyZWMyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9TdWJzdXJmYWNlL3RlbXBsYXRlCkBAIC0wLDAgKzEs MjAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ1N1YnN1cmZhY2UnCitwa2duYW1lPVN1YnN1cmZh Y2UKK3ZlcnNpb249NS4wLjEwCityZXZpc2lvbj0xCitidWlsZF9zdHlsZT1jbWFrZQorY29uZmln dXJlX2FyZ3M9Ii1EU1VCU1VSRkFDRV9UQVJHRVRfRVhFQ1VUQUJMRT1EZXNrdG9wRXhlY3V0YWJs ZQorIC1EQlRTVVBQT1JUPU9OIC1ETk9fVVNFUk1BTlVBTD1PRkYgLUROT19QUklOVElORz1PRkYi Citob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCBx dDUtZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwg bGliYmx1ZXRvb3RoLWRldmVsIGxpYmN1cmwtZGV2ZWwKKyBzcWxpdGUtZGV2ZWwgbGlic3NoMi1k ZXZlbCBldWRldi1saWJ1ZGV2LWRldmVsIGxpYnVzYi1kZXZlbCBsaWJ4bWwyLWRldmVsCisgbGli eHNsdC1kZXZlbCBxdDUtZGV2ZWwgcXQ1LWNvbm5lY3Rpdml0eS1kZXZlbCBxdDUtZGVjbGFyYXRp dmUtZGV2ZWwKKyBxdDUtbG9jYXRpb24tZGV2ZWwgcXQ1LXNjcmlwdC1kZXZlbCBxdDUtc3ZnLWRl dmVsIHF0NS10b29scy1kZXZlbAorIHF0NS13ZWJraXQtZGV2ZWwgYmx1ZXotcXQ1LWRldmVsIGxp YmdpdDItZGV2ZWwgbGliemlwLWRldmVsIGxpYm10cC1kZXZlbCIKK2RlcGVuZHM9ImxpYmRpdmVj b21wdXRlci1zdWJzdXJmYWNlIHF0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMiCitzaG9ydF9k ZXNjPSJNdWx0aS1wbGF0Zm9ybSBkaXZlbG9nIHNvZnR3YXJlIgorbWFpbnRhaW5lcj0iQWxhbiBC cm93biA8YWRicm93bkByb2NrZXRtYWlsLmNvbT4iCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkiCito b21lcGFnZT0iaHR0cHM6Ly9zdWJzdXJmYWNlLWRpdmVsb2cub3JnLyIKK2Rpc3RmaWxlcz0iJHto b21lcGFnZX0vZG93bmxvYWRzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50Z3oiCitjaGVja3N1bT1m MWE5NzgyOGE3MjY0NDNjOGU4YmViOTc3ZThkMDQ4ZWRiMThhM2NiZDA1NjBiYWYyNTdkNWFlZGM0 NGVkZDk2Cg== --===============5580310864182046007==--