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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 22437 invoked from network); 30 Jan 2023 17:09:04 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 30 Jan 2023 17:09:04 -0000 Content-Type: multipart/mixed; boundary="===============0982189490402430174==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_vanitygen=3A_remove?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 30 Jan 2023 18:09:04 +0100 List-Id: Message-ID: <20230130170904.wGSTONf_E12yQjy_BiwGG-WA0hMCyrI518QBlfXMPfA@z> GitHub notification mails are now in MIME to allow UTF8. --===============0982189490402430174== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZGt3byBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZGt3by92 b2lkLXBhY2thZ2VzIE8zdmFuCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC80MTk2OAoKdmFuaXR5Z2VuOiByZW1vdmUKLSBJIHRlc3RlZCB0aGUgY2hhbmdl cyBpbiB0aGlzIFBSOiB5ZXMNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2 ZSBhcmNoaXRlY3R1cmUsICh4ODZfNjQtbXVzbCkNCg0KZG9lcyBub3QgYnVpbGQgd2l0aCBvcGVu c3NsMywgbm8gZGlzdGZpbGVzIGF2YWlsYWJsZQoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxOTY4LnBhdGNoIGlzIGF0 dGFjaGVk --===============0982189490402430174== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-O3van-41968.patch" RnJvbSA3NTQzZTcwMjE2NDVmM2RjYTEwODRkYmZlOGNiMDQzNTFmNmZmZGRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMjYgSmFuIDIwMjMgMTM6NDE6MjcgLTA1MDAKU3ViamVjdDogW1BBVENIXSB2YW5p dHlnZW46IHJlbW92ZSBwYWNrYWdlCgpubyBkaXN0ZmlsZXMgYXZhaWxhYmxlCi0tLQogc3JjcGtn cy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlICAgICAgICAgICAgIHwgICAgMyArLQogLi4uNGE2 NDY4NzNjODQzOWQzYjVlZTNhMjI3OGU3Mjc1NzU1MjFmLnBhdGNoIHwgMTE3MSAtLS0tLS0tLS0t LS0tLS0tLQogLi4uM2U2ZmZmN2RhNTJjNGFlY2JkODk4ZDlkZjJlNjBhNTZmMTM0LnBhdGNoIHwg ICA5OCAtLQogc3JjcGtncy92YW5pdHlnZW4vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwg ICAyMSAtCiA0IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTI5MSBkZWxldGlvbnMo LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzRiODE0YTY0 Njg3M2M4NDM5ZDNiNWVlM2EyMjc4ZTcyNzU3NTUyMWYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzVmMTYzZTZmZmY3ZGE1MmM0YWVjYmQ4OThkOWRm MmU2MGE1NmYxMzQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3Zhbml0eWdlbi90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBi L3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCA4NTI4YWM0NjBhMGIuLmVm NzgxYTQxMmViOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JlbW92ZWQtcGFja2FnZXMnCiBwa2duYW1lPXJlbW92ZWQt cGFja2FnZXMKLXZlcnNpb249MC4xLjIwMjMwMTI5Cit2ZXJzaW9uPTAuMS4yMDIzMDEzMAogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRfZGVzYz0iVW5pbnN0YWxscyBwYWNrYWdl cyByZW1vdmVkIGZyb20gcmVwb3NpdG9yeSIKQEAgLTUxMSw2ICs1MTEsNyBAQCByZXBsYWNlcz0i CiAgdXJsbWF0Y2gtZ2l0PD0yMDE0MTExNl8yCiAgdXdzZ2ktcHl0aG9uPD0yLjAuMThfMwogIHY4 PD0zLjI0LjM1LjMzXzQKKyB2YW5pdHlnZW48PTEuNTNfMgogIHZhcG91cnN5bnRoLW12dG9vbHM8 PTIzXzIKICB2a2QzZDw9MS4zXzEKICB2b2xub3RpPD0wLjFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy92YW5pdHlnZW4vcGF0Y2hlcy80YjgxNGE2NDY4NzNjODQzOWQzYjVlZTNhMjI3OGU3Mjc1NzU1 MjFmLnBhdGNoIGIvc3JjcGtncy92YW5pdHlnZW4vcGF0Y2hlcy80YjgxNGE2NDY4NzNjODQzOWQz YjVlZTNhMjI3OGU3Mjc1NzU1MjFmLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA3NGJkNTRkYmYwZmIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3Zhbml0eWdlbi9wYXRj aGVzLzRiODE0YTY0Njg3M2M4NDM5ZDNiNWVlM2EyMjc4ZTcyNzU3NTUyMWYucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMTcxICswLDAgQEAKLUZyb20gNGI4MTRhNjQ2ODczYzg0MzlkM2I1ZWUz YTIyNzhlNzI3NTc1NTIxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFudG9uaW8g U3BhZGFybyA8aWxvdmVsaW51eEB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBTYXQs IDIgSnVuIDIwMTggMjI6Mjc6NTEgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IE9wZW5TU0wg MS4xLjAgaW5jb21wYXRpYmlsaXRpZXMgKCM1NikKLQotKiBGaXggb3BlbnNzbCAxLjEuMCBpbmNv bXBhdGliaWxpdGllcwotCi0qIFJlcGxhY2UgQk5fTUFTSzIgd2l0aCAweGZmZmZmZmZmTAotCi0q IEZpeCBvdGhlciBvcGVuc3NsIDEuMS4wIGluY29tcGF0aWJpbGl0aWVzCi0KLSogRml4IHJldHJv Y29tcGF0aWJpbGl0eSBpc3N1ZQotCi0qIFJlbW92ZSBCTl9ibjJsZWJpbnBhZCBkdWUgdG8gaW5j b21wYXRpYmlsaXR5Ci0KLSogRml4IG90aGVyIGluY29tcGF0aWJpbGl0eSBlcnJvcnMKLQotKiBG aXhlZCByZXRyb2NvbXBhdGliaWxpdHkgKG1heWJlKS4gVGhhbmtzIHRvICBARGVzV3Vyc3Rlcwot Ci0qIEZpeCBPcGVuU1NMIDEuMSBhbmQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKLS0tLQotIGtl eWNvbnYuYyAgIHwgIDE4ICsrLS0KLSBvY2xlbmdpbmUuYyB8IDEzMCArKysrKysrKysrKysrKysr KystLS0tLS0tLS0KLSBwYXR0ZXJuLmMgICB8IDI1MiArKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcGF0dGVybi5oICAgfCAgIDggKy0KLSB1dGls LmMgICAgICB8ICA5MCArKysrKysrKystLS0tLS0tLS0tCi0gdmFuaXR5Z2VuLmMgfCAgMTQgKy0t Ci0gNiBmaWxlcyBjaGFuZ2VkLCAyNzcgaW5zZXJ0aW9ucygrKSwgMjM1IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEva2V5Y29udi5jIGIva2V5Y29udi5jCi1pbmRleCBmNzQ3NWU1Li4zOTRj M2EwIDEwMDY0NAotLS0tIGEva2V5Y29udi5jCi0rKysgYi9rZXljb252LmMKLUBAIC0xMTYwLDcg KzExNjAsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLSAKLSAJaWYgKGtleTJfaW4p IHsKLSAJCUJOX0NUWCAqYm5jdHg7Ci0tCQlCSUdOVU0gYm50bXAsIGJudG1wMjsKLSsJCUJJR05V TSAqYm50bXAsICpibnRtcDI7Ci0gCQlFQ19LRVkgKnBrZXkyOwotIAotIAkJcGtleTIgPSBFQ19L RVlfbmV3X2J5X2N1cnZlX25hbWUoTklEX3NlY3AyNTZrMSk7Ci1AQCAtMTE4MiwxOSArMTE4Miwx OSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLSAJCQljb21wcmVzc2VkID0gMTsKLSAJ CX0KLSAKLS0JCUJOX2luaXQoJmJudG1wKTsKLS0JCUJOX2luaXQoJmJudG1wMik7Ci0rCQlibnRt cCA9IEJOX25ldygpOwotKwkJYm50bXAyID0gQk5fbmV3KCk7Ci0gCQlibmN0eCA9IEJOX0NUWF9u ZXcoKTsKLS0JCUVDX0dST1VQX2dldF9vcmRlcihFQ19LRVlfZ2V0MF9ncm91cChwa2V5KSwgJmJu dG1wMiwgTlVMTCk7Ci0tCQlCTl9tb2RfYWRkKCZibnRtcCwKLSsJCUVDX0dST1VQX2dldF9vcmRl cihFQ19LRVlfZ2V0MF9ncm91cChwa2V5KSwgYm50bXAyLCBOVUxMKTsKLSsJCUJOX21vZF9hZGQo Ym50bXAsCi0gCQkJICAgRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkocGtleSksCi0gCQkJICAgRUNf S0VZX2dldDBfcHJpdmF0ZV9rZXkocGtleTIpLAotLQkJCSAgICZibnRtcDIsCi0rCQkJICAgYm50 bXAyLAotIAkJCSAgIGJuY3R4KTsKLS0JCXZnX3NldF9wcml2a2V5KCZibnRtcCwgcGtleSk7Ci0r CQl2Z19zZXRfcHJpdmtleShibnRtcCwgcGtleSk7Ci0gCQlFQ19LRVlfZnJlZShwa2V5Mik7Ci0t CQlCTl9jbGVhcl9mcmVlKCZibnRtcCk7Ci0tCQlCTl9jbGVhcl9mcmVlKCZibnRtcDIpOwotKwkJ Qk5fY2xlYXJfZnJlZShibnRtcCk7Ci0rCQlCTl9jbGVhcl9mcmVlKGJudG1wMik7Ci0gCQlCTl9D VFhfZnJlZShibmN0eCk7Ci0gCX0KLSAKLWRpZmYgLS1naXQgYS9vY2xlbmdpbmUuYyBiL29jbGVu Z2luZS5jCi1pbmRleCA0MDg1ZWRkLi42ZjY1ODQ2IDEwMDY0NAotLS0tIGEvb2NsZW5naW5lLmMK LSsrKyBiL29jbGVuZ2luZS5jCi1AQCAtNDMsNiArNDMsMzQgQEAKLSAjaW5jbHVkZSAicGF0dGVy bi5oIgotICNpbmNsdWRlICJ1dGlsLmgiCi0gCi0rLy8gVW5mb3J0dW5hdGVseSB3ZSBuZWVkIHRo aXMhCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPj0gMHgwMDEwMTAwMDAwCi0rI2RlZmlu ZSBQUE5UX0FSUk9XX1ggcHBudC0+WAotKyNkZWZpbmUgUFBOVF9BUlJPV19ZIHBwbnQtPlkKLSsj ZGVmaW5lIFBQTlRfQVJST1dfWiBwcG50LT5aCi0rI2RlZmluZSBQUFNfQVJST1dfWCBwcHMtPlgK LSsjZGVmaW5lIFBQU19BUlJPV19ZIHBwcy0+WQotKyNkZWZpbmUgUFBTX0FSUk9XX1ogcHBzLT5a Ci0rI2RlZmluZSBQUFRfQVJST1dfWCBwcHQtPlgKLSsjZGVmaW5lIFBQVF9BUlJPV19ZIHBwdC0+ WQotKyNkZWZpbmUgUFBSX0FSUk9XX1ggcHByLT5YCi0rI2RlZmluZSBQUFJfQVJST1dfWSBwcHIt PlkKLSsjZGVmaW5lIFBQQ19BUlJPV19YIHBwYy0+WAotKyNkZWZpbmUgUFBDX0FSUk9XX1kgcHBj LT5ZCi0rI2Vsc2UKLSsjZGVmaW5lIFBQTlRfQVJST1dfWCAmcHBudC0+WAotKyNkZWZpbmUgUFBO VF9BUlJPV19ZICZwcG50LT5ZCi0rI2RlZmluZSBQUE5UX0FSUk9XX1ogJnBwbnQtPloKLSsjZGVm aW5lIFBQU19BUlJPV19YICZwcHMtPlgKLSsjZGVmaW5lIFBQU19BUlJPV19ZICZwcHMtPlkKLSsj ZGVmaW5lIFBQU19BUlJPV19aICZwcHMtPloKLSsjZGVmaW5lIFBQVF9BUlJPV19YICZwcHQtPlgK LSsjZGVmaW5lIFBQVF9BUlJPV19ZICZwcHQtPlkKLSsjZGVmaW5lIFBQUl9BUlJPV19YICZwcHIt PlgKLSsjZGVmaW5lIFBQUl9BUlJPV19ZICZwcHItPlkKLSsjZGVmaW5lIFBQQ19BUlJPV19YICZw cGMtPlgKLSsjZGVmaW5lIFBQQ19BUlJPV19ZICZwcGMtPlkKLSsjZW5kaWYKLSAKLSAjZGVmaW5l IE1BWF9TTE9UIDIKLSAjZGVmaW5lIE1BWF9BUkcgNgotQEAgLTEzMDcsMTQgKzEzMzUsMjEgQEAg dmdfb2NsX2tlcm5lbF93YWl0KHZnX29jbF9jb250ZXh0X3QgKnZvY3AsIGludCBzbG90KQotIHN0 YXRpYyBJTkxJTkUgdm9pZAotIHZnX29jbF9nZXRfYmlnbnVtX3JhdyhCSUdOVU0gKmJuLCBjb25z dCB1bnNpZ25lZCBjaGFyICpidWYpCi0gewotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSID49 IDB4MDAxMDEwMDAwMAotKwlCTl9sZWJpbjJibihidWYsIDMyLCBibik7Ci0rI2Vsc2UKLSAJYm5f ZXhwYW5kKGJuLCAyNTYpOwotIAltZW1jcHkoYm4tPmQsIGJ1ZiwgMzIpOwotIAlibi0+dG9wID0g KDMyIC8gc2l6ZW9mKEJOX1VMT05HKSk7Ci0rI2VuZGlmCi0gfQotIAotIHN0YXRpYyBJTkxJTkUg dm9pZAotIHZnX29jbF9wdXRfYmlnbnVtX3Jhdyh1bnNpZ25lZCBjaGFyICpidWYsIGNvbnN0IEJJ R05VTSAqYm4pCi0gewotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSID49IDB4MDAxMDEwMDAw MAotKwlCTl9ibjJsZWJpbnBhZChibiwgYnVmLCAzMik7Ci0rI2Vsc2UKLSAJaW50IGJubGVuID0g KGJuLT50b3AgKiBzaXplb2YoQk5fVUxPTkcpKTsKLSAJaWYgKGJubGVuID49IDMyKSB7Ci0gCQlt ZW1jcHkoYnVmLCBibi0+ZCwgMzIpOwotQEAgLTEzMjIsNiArMTM1Nyw3IEBAIHZnX29jbF9wdXRf YmlnbnVtX3Jhdyh1bnNpZ25lZCBjaGFyICpidWYsIGNvbnN0IEJJR05VTSAqYm4pCi0gCQltZW1j cHkoYnVmLCBibi0+ZCwgYm5sZW4pOwotIAkJbWVtc2V0KGJ1ZiArIGJubGVuLCAwLCAzMiAtIGJu bGVuKTsKLSAJfQotKyNlbmRpZgotIH0KLSAKLSAjZGVmaW5lIEFDQ0VTU19CVU5ETEUgMTAyNAot QEAgLTEzNTEsOSArMTM4NywxNSBAQCB2Z19vY2xfZ2V0X2JpZ251bV90cGEoQklHTlVNICpibiwg Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY2VsbCkKLSAKLSBzdHJ1Y3QgZWNfcG9pbnRf c3QgewotIAljb25zdCBFQ19NRVRIT0QgKm1ldGg7Ci0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1C RVIgPj0gMHgwMDEwMTAwMDAwCi0rCUJJR05VTSAqWDsKLSsJQklHTlVNICpZOwotKwlCSUdOVU0g Klo7Ci0rI2Vsc2UKLSAJQklHTlVNIFg7Ci0gCUJJR05VTSBZOwotIAlCSUdOVU0gWjsKLSsjZW5k aWYKLSAJaW50IFpfaXNfb25lOwotIH07Ci0gCi1AQCAtMTM2MSwxMSArMTQwMywxMSBAQCBzdGF0 aWMgSU5MSU5FIHZvaWQKLSB2Z19vY2xfZ2V0X3BvaW50KEVDX1BPSU5UICpwcG50LCBjb25zdCB1 bnNpZ25lZCBjaGFyICpidWYpCi0gewotIAlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtb250 X29uZVtdID0geyAweDAxLDB4MDAsMHgwMCwweDAzLDB4ZDEgfTsKLS0Jdmdfb2NsX2dldF9iaWdu dW1fcmF3KCZwcG50LT5YLCBidWYpOwotLQl2Z19vY2xfZ2V0X2JpZ251bV9yYXcoJnBwbnQtPlks IGJ1ZiArIDMyKTsKLSsJdmdfb2NsX2dldF9iaWdudW1fcmF3KFBQTlRfQVJST1dfWCwgYnVmKTsK LSsJdmdfb2NsX2dldF9iaWdudW1fcmF3KFBQTlRfQVJST1dfWSwgYnVmICsgMzIpOwotIAlpZiAo IXBwbnQtPlpfaXNfb25lKSB7Ci0gCQlwcG50LT5aX2lzX29uZSA9IDE7Ci0tCQlCTl9iaW4yYm4o bW9udF9vbmUsIHNpemVvZihtb250X29uZSksICZwcG50LT5aKTsKLSsJCUJOX2JpbjJibihtb250 X29uZSwgc2l6ZW9mKG1vbnRfb25lKSwgUFBOVF9BUlJPV19aKTsKLSAJfQotIH0KLSAKLUBAIC0x MzczLDggKzE0MTUsOCBAQCBzdGF0aWMgSU5MSU5FIHZvaWQKLSB2Z19vY2xfcHV0X3BvaW50KHVu c2lnbmVkIGNoYXIgKmJ1ZiwgY29uc3QgRUNfUE9JTlQgKnBwbnQpCi0gewotIAlhc3NlcnQocHBu dC0+Wl9pc19vbmUpOwotLQl2Z19vY2xfcHV0X2JpZ251bV9yYXcoYnVmLCAmcHBudC0+WCk7Ci0t CXZnX29jbF9wdXRfYmlnbnVtX3JhdyhidWYgKyAzMiwgJnBwbnQtPlkpOwotKwl2Z19vY2xfcHV0 X2JpZ251bV9yYXcoYnVmLCBQUE5UX0FSUk9XX1gpOwotKwl2Z19vY2xfcHV0X2JpZ251bV9yYXco YnVmICsgMzIsIFBQTlRfQVJST1dfWSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtMTY2Miw3 ICsxNzA0LDcgQEAgdmdfb2NsX3ZlcmlmeV90ZW1wb3Jhcnkodmdfb2NsX2NvbnRleHRfdCAqdm9j cCwgaW50IHNsb3QsIGludCB6X2ludmVydGVkKQotIAl1bnNpZ25lZCBjaGFyICpvY2xfcG9pbnRz X2luID0gTlVMTCwgKm9jbF9zdHJpZGVzX2luID0gTlVMTDsKLSAJY29uc3QgRUNfR1JPVVAgKnBn cm91cDsKLSAJRUNfUE9JTlQgKnBwciA9IE5VTEwsICpwcGMgPSBOVUxMLCAqcHBzID0gTlVMTCwg KnBwdCA9IE5VTEw7Ci0tCUJJR05VTSBibnosIGJuZXosIGJubSwgKmJuemM7Ci0rCUJJR05VTSAq Ym56LCAqYm5leiwgKmJubSwgKmJuemM7Ci0gCUJOX0NUWCAqYm5jdHggPSBOVUxMOwotIAlCTl9N T05UX0NUWCAqYm5tb250OwotIAlpbnQgcmV0ID0gMDsKLUBAIC0xNjc1LDkgKzE3MTcsOSBAQCB2 Z19vY2xfdmVyaWZ5X3RlbXBvcmFyeSh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgc2xvdCwg aW50IHpfaW52ZXJ0ZWQpCi0gCQkweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZDLDB4 MkYKLSAJfTsKLSAKLS0JQk5faW5pdCgmYm56KTsKLS0JQk5faW5pdCgmYm5leik7Ci0tCUJOX2lu aXQoJmJubSk7Ci0rCWJueiA9IEJOX25ldygpOwotKwlibmV6ID0gQk5fbmV3KCk7Ci0rCWJubSA9 IEJOX25ldygpOwotIAotIAlibmN0eCA9IEJOX0NUWF9uZXcoKTsKLSAJYm5tb250ID0gQk5fTU9O VF9DVFhfbmV3KCk7Ci1AQCAtMTY5MiwxMyArMTczNCwxMyBAQCB2Z19vY2xfdmVyaWZ5X3RlbXBv cmFyeSh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgc2xvdCwgaW50IHpfaW52ZXJ0ZWQpCi0g CQlnb3RvIG91dDsKLSAJfQotIAotLQlCTl9iaW4yYm4ocmF3X21vZHVsdXMsIHNpemVvZihyYXdf bW9kdWx1cyksICZibm0pOwotLQlCTl9NT05UX0NUWF9zZXQoYm5tb250LCAmYm5tLCBibmN0eCk7 Ci0rCUJOX2JpbjJibihyYXdfbW9kdWx1cywgc2l6ZW9mKHJhd19tb2R1bHVzKSwgYm5tKTsKLSsJ Qk5fTU9OVF9DVFhfc2V0KGJubW9udCwgYm5tLCBibmN0eCk7Ci0gCi0gCWlmICh6X2ludmVydGVk KSB7Ci0tCQlibnpjID0gJmJuZXo7Ci0rCQlibnpjID0gYm5lejsKLSAJfSBlbHNlIHsKLS0JCWJu emMgPSAmcHBzLT5aOwotKwkJYm56YyA9IFBQU19BUlJPV19aOwotIAl9Ci0gCi0gCXpfaGVhcCA9 ICh1bnNpZ25lZCBjaGFyICopCi1AQCAtMTcyNiwxNSArMTc2OCwxNSBAQCB2Z19vY2xfdmVyaWZ5 X3RlbXBvcmFyeSh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgc2xvdCwgaW50IHpfaW52ZXJ0 ZWQpCi0gCQkJRUNfUE9JTlRfYWRkKHBncm91cCwgcHBzLCBwcGMsIHBwciwgYm5jdHgpOwotIAkJ CWFzc2VydCghcHBzLT5aX2lzX29uZSk7Ci0gCQkJdmdfb2NsX2dldF9wb2ludF90cGEocHB0LCBw b2ludF90bXAsIGJ4ICsgeCk7Ci0tCQkJdmdfb2NsX2dldF9iaWdudW1fdHBhKCZibnosIHpfaGVh cCwgYnggKyB4KTsKLSsJCQl2Z19vY2xfZ2V0X2JpZ251bV90cGEoYm56LCB6X2hlYXAsIGJ4ICsg eCk7Ci0gCQkJaWYgKHpfaW52ZXJ0ZWQpIHsKLS0JCQkJQk5fbW9kX2ludmVyc2UoJmJuZXosICZw cHMtPlosICZibm0sIGJuY3R4KTsKLS0JCQkJQk5fdG9fbW9udGdvbWVyeSgmYm5leiwgJmJuZXos IGJubW9udCwgYm5jdHgpOwotLQkJCQlCTl90b19tb250Z29tZXJ5KCZibmV6LCAmYm5leiwgYm5t b250LCBibmN0eCk7Ci0rCQkJCUJOX21vZF9pbnZlcnNlKGJuZXosIFBQU19BUlJPV19aLCBibm0s IGJuY3R4KTsKLSsJCQkJQk5fdG9fbW9udGdvbWVyeShibmV6LCBibmV6LCBibm1vbnQsIGJuY3R4 KTsKLSsJCQkJQk5fdG9fbW9udGdvbWVyeShibmV6LCBibmV6LCBibm1vbnQsIGJuY3R4KTsKLSAJ CQl9Ci0tCQkJaWYgKEJOX2NtcCgmcHB0LT5YLCAmcHBzLT5YKSB8fAotLQkJCSAgICBCTl9jbXAo JnBwdC0+WSwgJnBwcy0+WSkgfHwKLS0JCQkgICAgQk5fY21wKCZibnosIGJuemMpKSB7Ci0rCQkJ aWYgKEJOX2NtcChQUFRfQVJST1dfWCwgUFBTX0FSUk9XX1gpIHx8Ci0rCQkJICAgIEJOX2NtcChQ UFRfQVJST1dfWSwgUFBTX0FSUk9XX1kpIHx8Ci0rCQkJICAgIEJOX2NtcChibnosIGJuemMpKSB7 Ci0gCQkJCWlmICghbWlzbWF0Y2hlcykgewotIAkJCQkJZnByaW50ZihzdGRlcnIsICJCYXNlIHBy aXZrZXk6ICIpOwotIAkJCQkJZmR1bXBibihzdGRlcnIsIEVDX0tFWV9nZXQwX3ByaXZhdGVfa2V5 KAotQEAgLTE3NDcsMzMgKzE3ODksMzMgQEAgdmdfb2NsX3ZlcmlmeV90ZW1wb3Jhcnkodmdfb2Ns X2NvbnRleHRfdCAqdm9jcCwgaW50IHNsb3QsIGludCB6X2ludmVydGVkKQotIAkJCQlpZiAoIW1t X3IpIHsKLSAJCQkJCW1tX3IgPSAxOwotIAkJCQkJZnByaW50ZihzdGRlcnIsICJSb3cgWCAgIDog Iik7Ci0tCQkJCQlmZHVtcGJuKHN0ZGVyciwgJnBwci0+WCk7Ci0rCQkJCQlmZHVtcGJuKHN0ZGVy ciwgUFBSX0FSUk9XX1gpOwotIAkJCQkJZnByaW50ZihzdGRlcnIsICJSb3cgWSAgIDogIik7Ci0t CQkJCQlmZHVtcGJuKHN0ZGVyciwgJnBwci0+WSk7Ci0rCQkJCQlmZHVtcGJuKHN0ZGVyciwgUFBT X0FSUk9XX1kpOwotIAkJCQl9Ci0gCi0gCQkJCWZwcmludGYoc3RkZXJyLCAiQ29sdW1uIFg6ICIp OwotLQkJCQlmZHVtcGJuKHN0ZGVyciwgJnBwYy0+WCk7Ci0rCQkJCWZkdW1wYm4oc3RkZXJyLCBQ UENfQVJST1dfWCk7Ci0gCQkJCWZwcmludGYoc3RkZXJyLCAiQ29sdW1uIFk6ICIpOwotLQkJCQlm ZHVtcGJuKHN0ZGVyciwgJnBwYy0+WSk7Ci0rCQkJCWZkdW1wYm4oc3RkZXJyLCBQUENfQVJST1df WSk7Ci0gCi0tCQkJCWlmIChCTl9jbXAoJnBwdC0+WCwgJnBwcy0+WCkpIHsKLSsJCQkJaWYgKEJO X2NtcChQUFRfQVJST1dfWCwgUFBTX0FSUk9XX1gpKSB7Ci0gCQkJCQlmcHJpbnRmKHN0ZGVyciwg IkV4cGVjdCBYOiAiKTsKLS0JCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHBzLT5YKTsKLSsJCQkJCWZk dW1wYm4oc3RkZXJyLCBQUFNfQVJST1dfWCk7Ci0gCQkJCQlmcHJpbnRmKHN0ZGVyciwgIkRldmlj ZSBYOiAiKTsKLS0JCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHB0LT5YKTsKLSsJCQkJCWZkdW1wYm4o c3RkZXJyLCBQUFRfQVJST1dfWCk7Ci0gCQkJCX0KLS0JCQkJaWYgKEJOX2NtcCgmcHB0LT5ZLCAm cHBzLT5ZKSkgewotKwkJCQlpZiAoQk5fY21wKFBQVF9BUlJPV19ZLCBQUFNfQVJST1dfWSkpIHsK LSAJCQkJCWZwcmludGYoc3RkZXJyLCAiRXhwZWN0IFk6ICIpOwotLQkJCQkJZmR1bXBibihzdGRl cnIsICZwcHMtPlkpOwotKwkJCQkJZmR1bXBibihzdGRlcnIsIFBQU19BUlJPV19ZKTsKLSAJCQkJ CWZwcmludGYoc3RkZXJyLCAiRGV2aWNlIFk6ICIpOwotLQkJCQkJZmR1bXBibihzdGRlcnIsICZw cHQtPlkpOwotKwkJCQkJZmR1bXBibihzdGRlcnIsIFBQVF9BUlJPV19ZKTsKLSAJCQkJfQotLQkJ CQlpZiAoQk5fY21wKCZibnosIGJuemMpKSB7Ci0rCQkJCWlmIChCTl9jbXAoYm56LCBibnpjKSkg ewotIAkJCQkJZnByaW50ZihzdGRlcnIsICJFeHBlY3QgWjogIik7Ci0gCQkJCQlmZHVtcGJuKHN0 ZGVyciwgYm56Yyk7Ci0gCQkJCQlmcHJpbnRmKHN0ZGVyciwgIkRldmljZSBaOiAiKTsKLS0JCQkJ CWZkdW1wYm4oc3RkZXJyLCAmYm56KTsKLSsJCQkJCWZkdW1wYm4oc3RkZXJyLCBibnopOwotIAkJ CQl9Ci0gCQkJfQotIAkJfQotQEAgLTE3OTgsOSArMTg0MCw5IEBAIHZnX29jbF92ZXJpZnlfdGVt cG9yYXJ5KHZnX29jbF9jb250ZXh0X3QgKnZvY3AsIGludCBzbG90LCBpbnQgel9pbnZlcnRlZCkK LSAJCUVDX1BPSU5UX2ZyZWUocHBzKTsKLSAJaWYgKHBwdCkKLSAJCUVDX1BPSU5UX2ZyZWUocHB0 KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm56KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5leik7Ci0tCUJO X2NsZWFyX2ZyZWUoJmJubSk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm56KTsKLSsJQk5fY2xlYXJfZnJl ZShibmV6KTsKLSsJQk5fY2xlYXJfZnJlZShibm0pOwotIAlpZiAoYm5tb250KQotIAkJQk5fTU9O VF9DVFhfZnJlZShibm1vbnQpOwotIAlpZiAoYm5jdHgpCi1AQCAtMTk3MSwxMyArMjAxMywxMyBA QCB2Z19vcGVuY2xfbG9vcCh2Z19leGVjX2NvbnRleHRfdCAqYXJnKQotIAlpZiAoIXBiYXRjaGlu YyB8fCAhcG9mZnNldCB8fCAhcHNlZWspCi0gCQlnb3RvIGVub21lbTsKLSAKLS0JQk5fc2V0X3dv cmQoJnZ4Y3AtPnZ4Y19ibnRtcCwgbmNvbHMpOwotLQlFQ19QT0lOVF9tdWwocGdyb3VwLCBwYmF0 Y2hpbmMsICZ2eGNwLT52eGNfYm50bXAsIE5VTEwsIE5VTEwsCi0rCUJOX3NldF93b3JkKHZ4Y3At PnZ4Y19ibnRtcCwgbmNvbHMpOwotKwlFQ19QT0lOVF9tdWwocGdyb3VwLCBwYmF0Y2hpbmMsIHZ4 Y3AtPnZ4Y19ibnRtcCwgTlVMTCwgTlVMTCwKLSAJCSAgICAgdnhjcC0+dnhjX2JuY3R4KTsKLSAJ RUNfUE9JTlRfbWFrZV9hZmZpbmUocGdyb3VwLCBwYmF0Y2hpbmMsIHZ4Y3AtPnZ4Y19ibmN0eCk7 Ci0gCi0tCUJOX3NldF93b3JkKCZ2eGNwLT52eGNfYm50bXAsIHJvdW5kKTsKLS0JRUNfUE9JTlRf bXVsKHBncm91cCwgcG9mZnNldCwgJnZ4Y3AtPnZ4Y19ibnRtcCwgTlVMTCwgTlVMTCwKLSsJQk5f c2V0X3dvcmQodnhjcC0+dnhjX2JudG1wLCByb3VuZCk7Ci0rCUVDX1BPSU5UX211bChwZ3JvdXAs IHBvZmZzZXQsIHZ4Y3AtPnZ4Y19ibnRtcCwgTlVMTCwgTlVMTCwKLSAJCSAgICAgdnhjcC0+dnhj X2JuY3R4KTsKLSAJRUNfUE9JTlRfbWFrZV9hZmZpbmUocGdyb3VwLCBwb2Zmc2V0LCB2eGNwLT52 eGNfYm5jdHgpOwotIAotQEAgLTIwNDYsMTIgKzIwODgsMTIgQEAgdmdfb3BlbmNsX2xvb3Aodmdf ZXhlY19jb250ZXh0X3QgKmFyZykKLSAJfQotIAotIAkvKiBEZXRlcm1pbmUgcmVrZXkgaW50ZXJ2 YWwgKi8KLS0JRUNfR1JPVVBfZ2V0X29yZGVyKHBncm91cCwgJnZ4Y3AtPnZ4Y19ibnRtcCwgdnhj cC0+dnhjX2JuY3R4KTsKLS0JQk5fc3ViKCZ2eGNwLT52eGNfYm50bXAyLAotLQkgICAgICAgJnZ4 Y3AtPnZ4Y19ibnRtcCwKLSsJRUNfR1JPVVBfZ2V0X29yZGVyKHBncm91cCwgdnhjcC0+dnhjX2Ju dG1wLCB2eGNwLT52eGNfYm5jdHgpOwotKwlCTl9zdWIodnhjcC0+dnhjX2JudG1wMiwKLSsJICAg ICAgIHZ4Y3AtPnZ4Y19ibnRtcCwKLSAJICAgICAgIEVDX0tFWV9nZXQwX3ByaXZhdGVfa2V5KHBr ZXkpKTsKLS0JcmVrZXlfYXQgPSBCTl9nZXRfd29yZCgmdnhjcC0+dnhjX2JudG1wMik7Ci0tCWlm ICgocmVrZXlfYXQgPT0gQk5fTUFTSzIpIHx8IChyZWtleV9hdCA+IHJla2V5X21heCkpCi0rCXJl a2V5X2F0ID0gQk5fZ2V0X3dvcmQodnhjcC0+dnhjX2JudG1wMik7Ci0rCWlmICgocmVrZXlfYXQg PT0gMHhmZmZmZmZmZkwpIHx8IChyZWtleV9hdCA+IHJla2V5X21heCkpCi0gCQlyZWtleV9hdCA9 IHJla2V5X21heDsKLSAJYXNzZXJ0KHJla2V5X2F0ID4gMCk7Ci0gCi1kaWZmIC0tZ2l0IGEvcGF0 dGVybi5jIGIvcGF0dGVybi5jCi1pbmRleCBiODQzMzRlLi41NjczYTdlIDEwMDY0NAotLS0tIGEv cGF0dGVybi5jCi0rKysgYi9wYXR0ZXJuLmMKLUBAIC0xNTEsMTIgKzE1MSwxMiBAQCB2Z19leGVj X2NvbnRleHRfaW5pdCh2Z19jb250ZXh0X3QgKnZjcCwgdmdfZXhlY19jb250ZXh0X3QgKnZ4Y3Ap Ci0gCi0gCXZ4Y3AtPnZ4Y192YyA9IHZjcDsKLSAKLS0JQk5faW5pdCgmdnhjcC0+dnhjX2JudGFy Zyk7Ci0tCUJOX2luaXQoJnZ4Y3AtPnZ4Y19ibmJhc2UpOwotLQlCTl9pbml0KCZ2eGNwLT52eGNf Ym50bXApOwotLQlCTl9pbml0KCZ2eGNwLT52eGNfYm50bXAyKTsKLSsJdnhjcC0+dnhjX2JudGFy ZyA9IEJOX25ldygpOwotKwl2eGNwLT52eGNfYm5iYXNlID0gQk5fbmV3KCk7Ci0rCXZ4Y3AtPnZ4 Y19ibnRtcCA9IEJOX25ldygpOwotKwl2eGNwLT52eGNfYm50bXAyID0gQk5fbmV3KCk7Ci0gCi0t CUJOX3NldF93b3JkKCZ2eGNwLT52eGNfYm5iYXNlLCA1OCk7Ci0rCUJOX3NldF93b3JkKHZ4Y3At PnZ4Y19ibmJhc2UsIDU4KTsKLSAKLSAJdnhjcC0+dnhjX2JuY3R4ID0gQk5fQ1RYX25ldygpOwot IAlhc3NlcnQodnhjcC0+dnhjX2JuY3R4KTsKLUBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2Z19leGVj X2NvbnRleHRfZGVsKHZnX2V4ZWNfY29udGV4dF90ICp2eGNwKQotIAlpZiAodHAtPnZ4Y19zdG9w KQotIAkJcHRocmVhZF9jb25kX3NpZ25hbCgmdmdfdGhyZWFkX3VwY29uZCk7Ci0gCi0tCUJOX2Ns ZWFyX2ZyZWUoJnZ4Y3AtPnZ4Y19ibnRhcmcpOwotLQlCTl9jbGVhcl9mcmVlKCZ2eGNwLT52eGNf Ym5iYXNlKTsKLS0JQk5fY2xlYXJfZnJlZSgmdnhjcC0+dnhjX2JudG1wKTsKLS0JQk5fY2xlYXJf ZnJlZSgmdnhjcC0+dnhjX2JudG1wMik7Ci0rCUJOX2NsZWFyX2ZyZWUodnhjcC0+dnhjX2JudGFy Zyk7Ci0rCUJOX2NsZWFyX2ZyZWUodnhjcC0+dnhjX2JuYmFzZSk7Ci0rCUJOX2NsZWFyX2ZyZWUo dnhjcC0+dnhjX2JudG1wKTsKLSsJQk5fY2xlYXJfZnJlZSh2eGNwLT52eGNfYm50bXAyKTsKLSAJ Qk5fQ1RYX2ZyZWUodnhjcC0+dnhjX2JuY3R4KTsKLSAJdnhjcC0+dnhjX2JuY3R4ID0gTlVMTDsK LSAJcHRocmVhZF9tdXRleF91bmxvY2soJnZnX3RocmVhZF9sb2NrKTsKLUBAIC0yMjUsMTIgKzIy NSwxMiBAQCB2b2lkCi0gdmdfZXhlY19jb250ZXh0X2NvbnNvbGlkYXRlX2tleSh2Z19leGVjX2Nv bnRleHRfdCAqdnhjcCkKLSB7Ci0gCWlmICh2eGNwLT52eGNfZGVsdGEpIHsKLS0JCUJOX2NsZWFy KCZ2eGNwLT52eGNfYm50bXApOwotLQkJQk5fc2V0X3dvcmQoJnZ4Y3AtPnZ4Y19ibnRtcCwgdnhj cC0+dnhjX2RlbHRhKTsKLS0JCUJOX2FkZCgmdnhjcC0+dnhjX2JudG1wMiwKLSsJCUJOX2NsZWFy KHZ4Y3AtPnZ4Y19ibnRtcCk7Ci0rCQlCTl9zZXRfd29yZCh2eGNwLT52eGNfYm50bXAsIHZ4Y3At PnZ4Y19kZWx0YSk7Ci0rCQlCTl9hZGQodnhjcC0+dnhjX2JudG1wMiwKLSAJCSAgICAgICBFQ19L RVlfZ2V0MF9wcml2YXRlX2tleSh2eGNwLT52eGNfa2V5KSwKLS0JCSAgICAgICAmdnhjcC0+dnhj X2JudG1wKTsKLS0JCXZnX3NldF9wcml2a2V5KCZ2eGNwLT52eGNfYm50bXAyLCB2eGNwLT52eGNf a2V5KTsKLSsJCSAgICAgICB2eGNwLT52eGNfYm50bXApOwotKwkJdmdfc2V0X3ByaXZrZXkodnhj cC0+dnhjX2JudG1wMiwgdnhjcC0+dnhjX2tleSk7Ci0gCQl2eGNwLT52eGNfZGVsdGEgPSAwOwot IAl9Ci0gfQotQEAgLTc1MSwyMCArNzUxLDIwIEBAIGdldF9wcmVmaXhfcmFuZ2VzKGludCBhZGRy dHlwZSwgY29uc3QgY2hhciAqcGZ4LCBCSUdOVU0gKipyZXN1bHQsCi0gCWludCBiNThwb3csIGI1 OGNlaWwsIGI1OHRvcCA9IDA7Ci0gCWludCByZXQgPSAtMTsKLSAKLS0JQklHTlVNIGJudGFyZywg Ym5jZWlsLCBibmZsb29yOwotLQlCSUdOVU0gYm5iYXNlOwotKwlCSUdOVU0gKmJudGFyZywgKmJu Y2VpbCwgKmJuZmxvb3I7Ci0rCUJJR05VTSAqYm5iYXNlOwotIAlCSUdOVU0gKmJuYXAsICpibmJw LCAqYm50cDsKLSAJQklHTlVNICpibmhpZ2ggPSBOVUxMLCAqYm5sb3cgPSBOVUxMLCAqYm5oaWdo MiA9IE5VTEwsICpibmxvdzIgPSBOVUxMOwotLQlCSUdOVU0gYm50bXAsIGJudG1wMjsKLSsJQklH TlVNICpibnRtcCwgKmJudG1wMjsKLSAKLS0JQk5faW5pdCgmYm50YXJnKTsKLS0JQk5faW5pdCgm Ym5jZWlsKTsKLS0JQk5faW5pdCgmYm5mbG9vcik7Ci0tCUJOX2luaXQoJmJuYmFzZSk7Ci0tCUJO X2luaXQoJmJudG1wKTsKLS0JQk5faW5pdCgmYm50bXAyKTsKLSsJYm50YXJnID0gQk5fbmV3KCk7 Ci0rCWJuY2VpbCA9IEJOX25ldygpOwotKwlibmZsb29yID0gQk5fbmV3KCk7Ci0rCWJuYmFzZSA9 IEJOX25ldygpOwotKwlibnRtcCA9IEJOX25ldygpOwotKwlibnRtcDIgPSBCTl9uZXcoKTsKLSAK LS0JQk5fc2V0X3dvcmQoJmJuYmFzZSwgNTgpOwotKwlCTl9zZXRfd29yZChibmJhc2UsIDU4KTsK LSAKLSAJcCA9IHN0cmxlbihwZngpOwotIAotQEAgLTc5MSwyMCArNzkxLDIwIEBAIGdldF9wcmVm aXhfcmFuZ2VzKGludCBhZGRydHlwZSwgY29uc3QgY2hhciAqcGZ4LCBCSUdOVU0gKipyZXN1bHQs Ci0gCi0gCQkJLyogRmlyc3Qgbm9uLXplcm8gY2hhcmFjdGVyICovCi0gCQkJYjU4dG9wID0gYzsK LS0JCQlCTl9zZXRfd29yZCgmYm50YXJnLCBjKTsKLSsJCQlCTl9zZXRfd29yZChibnRhcmcsIGMp OwotIAotIAkJfSBlbHNlIHsKLS0JCQlCTl9zZXRfd29yZCgmYm50bXAyLCBjKTsKLS0JCQlCTl9t dWwoJmJudG1wLCAmYm50YXJnLCAmYm5iYXNlLCBibmN0eCk7Ci0tCQkJQk5fYWRkKCZibnRhcmcs ICZibnRtcCwgJmJudG1wMik7Ci0rCQkJQk5fc2V0X3dvcmQoYm50bXAyLCBjKTsKLSsJCQlCTl9t dWwoYm50bXAsIGJudGFyZywgYm5iYXNlLCBibmN0eCk7Ci0rCQkJQk5fYWRkKGJudGFyZywgYm50 bXAsIGJudG1wMik7Ci0gCQl9Ci0gCX0KLSAKLSAJLyogUG93ZXItb2YtdHdvIGNlaWxpbmcgYW5k IGZsb29yIHZhbHVlcyBiYXNlZCBvbiBsZWFkaW5nIDFzICovCi0tCUJOX2NsZWFyKCZibnRtcCk7 Ci0tCUJOX3NldF9iaXQoJmJudG1wLCAyMDAgLSAoemVyb19wcmVmaXggKiA4KSk7Ci0tCUJOX3N1 YigmYm5jZWlsLCAmYm50bXAsIEJOX3ZhbHVlX29uZSgpKTsKLS0JQk5fc2V0X2JpdCgmYm5mbG9v ciwgMTkyIC0gKHplcm9fcHJlZml4ICogOCkpOwotKwlCTl9jbGVhcihibnRtcCk7Ci0rCUJOX3Nl dF9iaXQoYm50bXAsIDIwMCAtICh6ZXJvX3ByZWZpeCAqIDgpKTsKLSsJQk5fc3ViKGJuY2VpbCwg Ym50bXAsIEJOX3ZhbHVlX29uZSgpKTsKLSsJQk5fc2V0X2JpdChibmZsb29yLCAxOTIgLSAoemVy b19wcmVmaXggKiA4KSk7Ci0gCi0gCWJubG93ID0gQk5fbmV3KCk7Ci0gCWJuaGlnaCA9IEJOX25l dygpOwotQEAgLTgxNSwxMyArODE1LDEzIEBAIGdldF9wcmVmaXhfcmFuZ2VzKGludCBhZGRydHlw ZSwgY29uc3QgY2hhciAqcGZ4LCBCSUdOVU0gKipyZXN1bHQsCi0gCQkgKiBudW1lcmljIGJvdW5k YXJpZXMgb2YgdGhlIHByZWZpeC4KLSAJCSAqLwotIAotLQkJQk5fY29weSgmYm50bXAsICZibmNl aWwpOwotLQkJYm5hcCA9ICZibnRtcDsKLS0JCWJuYnAgPSAmYm50bXAyOwotKwkJQk5fY29weShi bnRtcCwgYm5jZWlsKTsKLSsJCWJuYXAgPSBibnRtcDsKLSsJCWJuYnAgPSBibnRtcDI7Ci0gCQli NThwb3cgPSAwOwotLQkJd2hpbGUgKEJOX2NtcChibmFwLCAmYm5iYXNlKSA+IDApIHsKLSsJCXdo aWxlIChCTl9jbXAoYm5hcCwgYm5iYXNlKSA+IDApIHsKLSAJCQliNThwb3crKzsKLS0JCQlCTl9k aXYoYm5icCwgTlVMTCwgYm5hcCwgJmJuYmFzZSwgYm5jdHgpOwotKwkJCUJOX2RpdihibmJwLCBO VUxMLCBibmFwLCBibmJhc2UsIGJuY3R4KTsKLSAJCQlibnRwID0gYm5hcDsKLSAJCQlibmFwID0g Ym5icDsKLSAJCQlibmJwID0gYm50cDsKLUBAIC04MzcsMTEgKzgzNywxMSBAQCBnZXRfcHJlZml4 X3JhbmdlcyhpbnQgYWRkcnR5cGUsIGNvbnN0IGNoYXIgKnBmeCwgQklHTlVNICoqcmVzdWx0LAot IAkJCS8qIGdvdG8gb3V0OyAqLwotIAkJfQotIAotLQkJQk5fc2V0X3dvcmQoJmJudG1wMiwgYjU4 cG93IC0gKHAgLSB6ZXJvX3ByZWZpeCkpOwotLQkJQk5fZXhwKCZibnRtcCwgJmJuYmFzZSwgJmJu dG1wMiwgYm5jdHgpOwotLQkJQk5fbXVsKGJubG93LCAmYm50bXAsICZibnRhcmcsIGJuY3R4KTsK LS0JCUJOX3N1YigmYm50bXAyLCAmYm50bXAsIEJOX3ZhbHVlX29uZSgpKTsKLS0JCUJOX2FkZChi bmhpZ2gsIGJubG93LCAmYm50bXAyKTsKLSsJCUJOX3NldF93b3JkKGJudG1wMiwgYjU4cG93IC0g KHAgLSB6ZXJvX3ByZWZpeCkpOwotKwkJQk5fZXhwKGJudG1wLCBibmJhc2UsIGJudG1wMiwgYm5j dHgpOwotKwkJQk5fbXVsKGJubG93LCBibnRtcCwgYm50YXJnLCBibmN0eCk7Ci0rCQlCTl9zdWIo Ym50bXAyLCBibnRtcCwgQk5fdmFsdWVfb25lKCkpOwotKwkJQk5fYWRkKGJuaGlnaCwgYm5sb3cs IGJudG1wMik7Ci0gCi0gCQlpZiAoYjU4dG9wIDw9IGI1OGNlaWwpIHsKLSAJCQkvKiBGaWxsIG91 dCB0aGUgdXBwZXIgcmFuZ2UgdG9vICovCi1AQCAtODQ5LDE2ICs4NDksMTYgQEAgZ2V0X3ByZWZp eF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25zdCBjaGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwK LSAJCQlibmxvdzIgPSBCTl9uZXcoKTsKLSAJCQlibmhpZ2gyID0gQk5fbmV3KCk7Ci0gCi0tCQkJ Qk5fbXVsKGJubG93MiwgYm5sb3csICZibmJhc2UsIGJuY3R4KTsKLS0JCQlCTl9tdWwoJmJudG1w MiwgYm5oaWdoLCAmYm5iYXNlLCBibmN0eCk7Ci0tCQkJQk5fc2V0X3dvcmQoJmJudG1wLCA1Nyk7 Ci0tCQkJQk5fYWRkKGJuaGlnaDIsICZibnRtcDIsICZibnRtcCk7Ci0rCQkJQk5fbXVsKGJubG93 MiwgYm5sb3csIGJuYmFzZSwgYm5jdHgpOwotKwkJCUJOX211bChibnRtcDIsIGJuaGlnaCwgYm5i YXNlLCBibmN0eCk7Ci0rCQkJQk5fc2V0X3dvcmQoYm50bXAsIDU3KTsKLSsJCQlCTl9hZGQoYm5o aWdoMiwgYm50bXAyLCBibnRtcCk7Ci0gCi0gCQkJLyoKLSAJCQkgKiBBZGRyZXNzZXMgYWJvdmUg dGhlIGNlaWxpbmcgd2lsbCBoYXZlIG9uZQotIAkJCSAqIGZld2VyICIxIiBwcmVmaXggaW4gZnJv bnQgdGhhbiB3ZSByZXF1aXJlLgotIAkJCSAqLwotLQkJCWlmIChCTl9jbXAoJmJuY2VpbCwgYm5s b3cyKSA8IDApIHsKLSsJCQlpZiAoQk5fY21wKGJuY2VpbCwgYm5sb3cyKSA8IDApIHsKLSAJCQkJ LyogSGlnaCBwcmVmaXggaXMgYWJvdmUgdGhlIGNlaWxpbmcgKi8KLSAJCQkJY2hlY2tfdXBwZXIg PSAwOwotIAkJCQlCTl9mcmVlKGJuaGlnaDIpOwotQEAgLTg2NiwxNSArODY2LDE1IEBAIGdldF9w cmVmaXhfcmFuZ2VzKGludCBhZGRydHlwZSwgY29uc3QgY2hhciAqcGZ4LCBCSUdOVU0gKipyZXN1 bHQsCi0gCQkJCUJOX2ZyZWUoYm5sb3cyKTsKLSAJCQkJYm5sb3cyID0gTlVMTDsKLSAJCQl9Ci0t CQkJZWxzZSBpZiAoQk5fY21wKCZibmNlaWwsIGJuaGlnaDIpIDwgMCkKLSsJCQllbHNlIGlmIChC Tl9jbXAoYm5jZWlsLCBibmhpZ2gyKSA8IDApCi0gCQkJCS8qIEhpZ2ggcHJlZml4IGlzIHBhcnRs eSBhYm92ZSB0aGUgY2VpbGluZyAqLwotLQkJCQlCTl9jb3B5KGJuaGlnaDIsICZibmNlaWwpOwot KwkJCQlCTl9jb3B5KGJuaGlnaDIsIGJuY2VpbCk7Ci0gCi0gCQkJLyoKLSAJCQkgKiBBZGRyZXNz ZXMgYmVsb3cgdGhlIGZsb29yIHdpbGwgaGF2ZSBhbm90aGVyCi0gCQkJICogIjEiIHByZWZpeCBp biBmcm9udCBpbnN0ZWFkIG9mIG91ciB0YXJnZXQuCi0gCQkJICovCi0tCQkJaWYgKEJOX2NtcCgm Ym5mbG9vciwgYm5oaWdoKSA+PSAwKSB7Ci0rCQkJaWYgKEJOX2NtcChibmZsb29yLCBibmhpZ2gp ID49IDApIHsKLSAJCQkJLyogTG93IHByZWZpeCBpcyBjb21wbGV0ZWx5IGJlbG93IHRoZSBmbG9v ciAqLwotIAkJCQlhc3NlcnQoY2hlY2tfdXBwZXIpOwotIAkJCQljaGVja191cHBlciA9IDA7Ci1A QCAtODg1LDM1ICs4ODUsMzUgQEAgZ2V0X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25z dCBjaGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwKLSAJCQkJYm5sb3cgPSBibmxvdzI7Ci0gCQkJ CWJubG93MiA9IE5VTEw7Ci0gCQkJfQkJCQotLQkJCWVsc2UgaWYgKEJOX2NtcCgmYm5mbG9vciwg Ym5sb3cpID4gMCkgewotKwkJCWVsc2UgaWYgKEJOX2NtcChibmZsb29yLCBibmxvdykgPiAwKSB7 Ci0gCQkJCS8qIExvdyBwcmVmaXggaXMgcGFydGx5IGJlbG93IHRoZSBmbG9vciAqLwotLQkJCQlC Tl9jb3B5KGJubG93LCAmYm5mbG9vcik7Ci0rCQkJCUJOX2NvcHkoYm5sb3csIGJuZmxvb3IpOwot IAkJCX0KLSAJCX0KLSAKLSAJfSBlbHNlIHsKLS0JCUJOX2NvcHkoYm5oaWdoLCAmYm5jZWlsKTsK LSsJCUJOX2NvcHkoYm5oaWdoLCBibmNlaWwpOwotIAkJQk5fY2xlYXIoYm5sb3cpOwotIAl9Ci0g Ci0gCS8qIExpbWl0IHRoZSBwcmVmaXggdG8gdGhlIGFkZHJlc3MgdHlwZSAqLwotLQlCTl9jbGVh cigmYm50bXApOwotLQlCTl9zZXRfd29yZCgmYm50bXAsIGFkZHJ0eXBlKTsKLS0JQk5fbHNoaWZ0 KCZibnRtcDIsICZibnRtcCwgMTkyKTsKLSsJQk5fY2xlYXIoYm50bXApOwotKwlCTl9zZXRfd29y ZChibnRtcCwgYWRkcnR5cGUpOwotKwlCTl9sc2hpZnQoYm50bXAyLCBibnRtcCwgMTkyKTsKLSAK LSAJaWYgKGNoZWNrX3VwcGVyKSB7Ci0tCQlpZiAoQk5fY21wKCZibnRtcDIsIGJuaGlnaDIpID4g MCkgewotKwkJaWYgKEJOX2NtcChibnRtcDIsIGJuaGlnaDIpID4gMCkgewotIAkJCWNoZWNrX3Vw cGVyID0gMDsKLSAJCQlCTl9mcmVlKGJuaGlnaDIpOwotIAkJCWJuaGlnaDIgPSBOVUxMOwotIAkJ CUJOX2ZyZWUoYm5sb3cyKTsKLSAJCQlibmxvdzIgPSBOVUxMOwotIAkJfQotLQkJZWxzZSBpZiAo Qk5fY21wKCZibnRtcDIsIGJubG93MikgPiAwKQotLQkJCUJOX2NvcHkoYm5sb3cyLCAmYm50bXAy KTsKLSsJCWVsc2UgaWYgKEJOX2NtcChibnRtcDIsIGJubG93MikgPiAwKQotKwkJCUJOX2NvcHko Ym5sb3cyLCBibnRtcDIpOwotIAl9Ci0gCi0tCWlmIChCTl9jbXAoJmJudG1wMiwgYm5oaWdoKSA+ IDApIHsKLSsJaWYgKEJOX2NtcChibnRtcDIsIGJuaGlnaCkgPiAwKSB7Ci0gCQlpZiAoIWNoZWNr X3VwcGVyKQotIAkJCWdvdG8gbm90X3Bvc3NpYmxlOwotIAkJY2hlY2tfdXBwZXIgPSAwOwotQEAg LTkyNCwyNiArOTI0LDI2IEBAIGdldF9wcmVmaXhfcmFuZ2VzKGludCBhZGRydHlwZSwgY29uc3Qg Y2hhciAqcGZ4LCBCSUdOVU0gKipyZXN1bHQsCi0gCQlibmxvdyA9IGJubG93MjsKLSAJCWJubG93 MiA9IE5VTEw7Ci0gCX0KLS0JZWxzZSBpZiAoQk5fY21wKCZibnRtcDIsIGJubG93KSA+IDApIHsK LS0JCUJOX2NvcHkoYm5sb3csICZibnRtcDIpOwotKwllbHNlIGlmIChCTl9jbXAoYm50bXAyLCBi bmxvdykgPiAwKSB7Ci0rCQlCTl9jb3B5KGJubG93LCBibnRtcDIpOwotIAl9Ci0gCi0tCUJOX3Nl dF93b3JkKCZibnRtcCwgYWRkcnR5cGUgKyAxKTsKLS0JQk5fbHNoaWZ0KCZibnRtcDIsICZibnRt cCwgMTkyKTsKLSsJQk5fc2V0X3dvcmQoYm50bXAsIGFkZHJ0eXBlICsgMSk7Ci0rCUJOX2xzaGlm dChibnRtcDIsIGJudG1wLCAxOTIpOwotIAotIAlpZiAoY2hlY2tfdXBwZXIpIHsKLS0JCWlmIChC Tl9jbXAoJmJudG1wMiwgYm5sb3cyKSA8IDApIHsKLSsJCWlmIChCTl9jbXAoYm50bXAyLCBibmxv dzIpIDwgMCkgewotIAkJCWNoZWNrX3VwcGVyID0gMDsKLSAJCQlCTl9mcmVlKGJuaGlnaDIpOwot IAkJCWJuaGlnaDIgPSBOVUxMOwotIAkJCUJOX2ZyZWUoYm5sb3cyKTsKLSAJCQlibmxvdzIgPSBO VUxMOwotIAkJfQotLQkJZWxzZSBpZiAoQk5fY21wKCZibnRtcDIsIGJuaGlnaDIpIDwgMCkKLS0J CQlCTl9jb3B5KGJubG93MiwgJmJudG1wMik7Ci0rCQllbHNlIGlmIChCTl9jbXAoYm50bXAyLCBi bmhpZ2gyKSA8IDApCi0rCQkJQk5fY29weShibmxvdzIsIGJudG1wMik7Ci0gCX0KLSAKLS0JaWYg KEJOX2NtcCgmYm50bXAyLCBibmxvdykgPCAwKSB7Ci0rCWlmIChCTl9jbXAoYm50bXAyLCBibmxv dykgPCAwKSB7Ci0gCQlpZiAoIWNoZWNrX3VwcGVyKQotIAkJCWdvdG8gbm90X3Bvc3NpYmxlOwot IAkJY2hlY2tfdXBwZXIgPSAwOwotQEAgLTk1NCw4ICs5NTQsOCBAQCBnZXRfcHJlZml4X3Jhbmdl cyhpbnQgYWRkcnR5cGUsIGNvbnN0IGNoYXIgKnBmeCwgQklHTlVNICoqcmVzdWx0LAotIAkJYm5s b3cgPSBibmxvdzI7Ci0gCQlibmxvdzIgPSBOVUxMOwotIAl9Ci0tCWVsc2UgaWYgKEJOX2NtcCgm Ym50bXAyLCBibmhpZ2gpIDwgMCkgewotLQkJQk5fY29weShibmhpZ2gsICZibnRtcDIpOwotKwll bHNlIGlmIChCTl9jbXAoYm50bXAyLCBibmhpZ2gpIDwgMCkgewotKwkJQk5fY29weShibmhpZ2gs IGJudG1wMik7Ci0gCX0KLSAKLSAJLyogQWRkcmVzcyByYW5nZXMgYXJlIGNvbXBsZXRlICovCi1A QCAtOTc2LDEyICs5NzYsMTIgQEAgZ2V0X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25z dCBjaGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwKLSAJfQotIAotIG91dDoKLS0JQk5fY2xlYXJf ZnJlZSgmYm50YXJnKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5jZWlsKTsKLS0JQk5fY2xlYXJfZnJl ZSgmYm5mbG9vcik7Ci0tCUJOX2NsZWFyX2ZyZWUoJmJuYmFzZSk7Ci0tCUJOX2NsZWFyX2ZyZWUo JmJudG1wKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm50bXAyKTsKLSsJQk5fY2xlYXJfZnJlZShibnRh cmcpOwotKwlCTl9jbGVhcl9mcmVlKGJuY2VpbCk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm5mbG9vcik7 Ci0rCUJOX2NsZWFyX2ZyZWUoYm5iYXNlKTsKLSsJQk5fY2xlYXJfZnJlZShibnRtcCk7Ci0rCUJO X2NsZWFyX2ZyZWUoYm50bXAyKTsKLSAJaWYgKGJuaGlnaCkKLSAJCUJOX2ZyZWUoYm5oaWdoKTsK LSAJaWYgKGJubG93KQotQEAgLTEyNjYsNyArMTI2Niw3IEBAIHByZWZpeF9jYXNlX2l0ZXJfbmV4 dChwcmVmaXhfY2FzZV9pdGVyX3QgKmNpcCkKLSB0eXBlZGVmIHN0cnVjdCBfdmdfcHJlZml4X2Nv bnRleHRfcyB7Ci0gCXZnX2NvbnRleHRfdAkJYmFzZTsKLSAJYXZsX3Jvb3RfdAkJdmNwX2F2bHJv b3Q7Ci0tCUJJR05VTQkJCXZjcF9kaWZmaWN1bHR5OwotKwlCSUdOVU0JCQkqdmNwX2RpZmZpY3Vs dHk7Ci0gCWludAkJCXZjcF9jYXNlaW5zZW5zaXRpdmU7Ci0gfSB2Z19wcmVmaXhfY29udGV4dF90 OwotIAotQEAgLTEyOTQsNyArMTI5NCw3IEBAIHZnX3ByZWZpeF9jb250ZXh0X2NsZWFyX2FsbF9w YXR0ZXJucyh2Z19jb250ZXh0X3QgKnZjcCkKLSAJdmNwcC0+YmFzZS52Y19ucGF0dGVybnMgPSAw OwotIAl2Y3BwLT5iYXNlLnZjX25wYXR0ZXJuc19zdGFydCA9IDA7Ci0gCXZjcHAtPmJhc2UudmNf Zm91bmQgPSAwOwotLQlCTl9jbGVhcigmdmNwcC0+dmNwX2RpZmZpY3VsdHkpOwotKwlCTl9jbGVh cih2Y3BwLT52Y3BfZGlmZmljdWx0eSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtMTMwMiw3 ICsxMzAyLDcgQEAgdmdfcHJlZml4X2NvbnRleHRfZnJlZSh2Z19jb250ZXh0X3QgKnZjcCkKLSB7 Ci0gCXZnX3ByZWZpeF9jb250ZXh0X3QgKnZjcHAgPSAodmdfcHJlZml4X2NvbnRleHRfdCAqKSB2 Y3A7Ci0gCXZnX3ByZWZpeF9jb250ZXh0X2NsZWFyX2FsbF9wYXR0ZXJucyh2Y3ApOwotLQlCTl9j bGVhcl9mcmVlKCZ2Y3BwLT52Y3BfZGlmZmljdWx0eSk7Ci0rCUJOX2NsZWFyX2ZyZWUodmNwcC0+ dmNwX2RpZmZpY3VsdHkpOwotIAlmcmVlKHZjcHApOwotIH0KLSAKLUBAIC0xMzE0LDcgKzEzMTQs NyBAQCB2Z19wcmVmaXhfY29udGV4dF9uZXh0X2RpZmZpY3VsdHkodmdfcHJlZml4X2NvbnRleHRf dCAqdmNwcCwKLSAKLSAJQk5fY2xlYXIoYm50bXApOwotIAlCTl9zZXRfYml0KGJudG1wLCAxOTIp OwotLQlCTl9kaXYoYm50bXAyLCBOVUxMLCBibnRtcCwgJnZjcHAtPnZjcF9kaWZmaWN1bHR5LCBi bmN0eCk7Ci0rCUJOX2RpdihibnRtcDIsIE5VTEwsIGJudG1wLCB2Y3BwLT52Y3BfZGlmZmljdWx0 eSwgYm5jdHgpOwotIAotIAlkYnVmID0gQk5fYm4yZGVjKGJudG1wMik7Ci0gCWlmICh2Y3BwLT5i YXNlLnZjX3ZlcmJvc2UgPiAwKSB7Ci1AQCAtMTMzNyw3ICsxMzM3LDcgQEAgdmdfcHJlZml4X2Nv bnRleHRfYWRkX3BhdHRlcm5zKHZnX2NvbnRleHRfdCAqdmNwLAotIAlwcmVmaXhfY2FzZV9pdGVy X3QgY2FzZWl0ZXI7Ci0gCXZnX3ByZWZpeF90ICp2cCwgKnZwMjsKLSAJQk5fQ1RYICpibmN0eDsK LS0JQklHTlVNIGJudG1wLCBibnRtcDIsIGJudG1wMzsKLSsJQklHTlVNICpibnRtcCwgKmJudG1w MiwgKmJudG1wMzsKLSAJQklHTlVNICpyYW5nZXNbNF07Ci0gCWludCByZXQgPSAwOwotIAlpbnQg aSwgaW1wb3NzaWJsZSA9IDA7Ci1AQCAtMTM0Niw5ICsxMzQ2LDkgQEAgdmdfcHJlZml4X2NvbnRl eHRfYWRkX3BhdHRlcm5zKHZnX2NvbnRleHRfdCAqdmNwLAotIAljaGFyICpkYnVmOwotIAotIAli bmN0eCA9IEJOX0NUWF9uZXcoKTsKLS0JQk5faW5pdCgmYm50bXApOwotLQlCTl9pbml0KCZibnRt cDIpOwotLQlCTl9pbml0KCZibnRtcDMpOwotKwlibnRtcCA9IEJOX25ldygpOwotKwlibnRtcDIg PSBCTl9uZXcoKTsKLSsJYm50bXAzID0gQk5fbmV3KCk7Ci0gCi0gCW5wZnggPSAwOwotIAlmb3Ig KGkgPSAwOyBpIDwgbnBhdHRlcm5zOyBpKyspIHsKLUBAIC0xNDI2LDE2ICsxNDI2LDE2IEBAIHZn X3ByZWZpeF9jb250ZXh0X2FkZF9wYXR0ZXJucyh2Z19jb250ZXh0X3QgKnZjcCwKLSAJCW5wZngr KzsKLSAKLSAJCS8qIERldGVybWluZSB0aGUgcHJvYmFiaWxpdHkgb2YgZmluZGluZyBhIG1hdGNo ICovCi0tCQl2Z19wcmVmaXhfcmFuZ2Vfc3VtKHZwLCAmYm50bXAsICZibnRtcDIpOwotLQkJQk5f YWRkKCZibnRtcDIsICZ2Y3BwLT52Y3BfZGlmZmljdWx0eSwgJmJudG1wKTsKLS0JCUJOX2NvcHko JnZjcHAtPnZjcF9kaWZmaWN1bHR5LCAmYm50bXAyKTsKLSsJCXZnX3ByZWZpeF9yYW5nZV9zdW0o dnAsIGJudG1wLCBibnRtcDIpOwotKwkJQk5fYWRkKGJudG1wMiwgdmNwcC0+dmNwX2RpZmZpY3Vs dHksIGJudG1wKTsKLSsJCUJOX2NvcHkodmNwcC0+dmNwX2RpZmZpY3VsdHksIGJudG1wMik7Ci0g Ci0gCQlpZiAodmNwLT52Y192ZXJib3NlID4gMSkgewotLQkJCUJOX2NsZWFyKCZibnRtcDIpOwot LQkJCUJOX3NldF9iaXQoJmJudG1wMiwgMTkyKTsKLS0JCQlCTl9kaXYoJmJudG1wMywgTlVMTCwg JmJudG1wMiwgJmJudG1wLCBibmN0eCk7Ci0rCQkJQk5fY2xlYXIoYm50bXAyKTsKLSsJCQlCTl9z ZXRfYml0KGJudG1wMiwgMTkyKTsKLSsJCQlCTl9kaXYoYm50bXAzLCBOVUxMLCBibnRtcDIsIGJu dG1wLCBibmN0eCk7Ci0gCi0tCQkJZGJ1ZiA9IEJOX2JuMmRlYygmYm50bXAzKTsKLSsJCQlkYnVm ID0gQk5fYm4yZGVjKGJudG1wMyk7Ci0gCQkJZnByaW50ZihzdGRlcnIsCi0gCQkJCSJQcmVmaXgg ZGlmZmljdWx0eTogJTIwcyAlc1xuIiwKLSAJCQkJZGJ1ZiwgcGF0dGVybnNbaV0pOwotQEAgLTE0 NjksMTMgKzE0NjksMTMgQEAgdmdfcHJlZml4X2NvbnRleHRfYWRkX3BhdHRlcm5zKHZnX2NvbnRl eHRfdCAqdmNwLAotIAl9Ci0gCi0gCWlmIChucGZ4KQotLQkJdmdfcHJlZml4X2NvbnRleHRfbmV4 dF9kaWZmaWN1bHR5KHZjcHAsICZibnRtcCwgJmJudG1wMiwgYm5jdHgpOwotKwkJdmdfcHJlZml4 X2NvbnRleHRfbmV4dF9kaWZmaWN1bHR5KHZjcHAsIGJudG1wLCBibnRtcDIsIGJuY3R4KTsKLSAK LSAJcmV0ID0gKG5wZnggIT0gMCk7Ci0gCi0tCUJOX2NsZWFyX2ZyZWUoJmJudG1wKTsKLS0JQk5f Y2xlYXJfZnJlZSgmYm50bXAyKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm50bXAzKTsKLSsJQk5fY2xl YXJfZnJlZShibnRtcCk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm50bXAyKTsKLSsJQk5fY2xlYXJfZnJl ZShibnRtcDMpOwotIAlCTl9DVFhfZnJlZShibmN0eCk7Ci0gCXJldHVybiByZXQ7Ci0gfQotQEAg LTE0ODQsMzkgKzE0ODQsMzkgQEAgZG91YmxlCi0gdmdfcHJlZml4X2dldF9kaWZmaWN1bHR5KGlu dCBhZGRydHlwZSwgY29uc3QgY2hhciAqcGF0dGVybikKLSB7Ci0gCUJOX0NUWCAqYm5jdHg7Ci0t CUJJR05VTSByZXN1bHQsIGJudG1wOwotKwlCSUdOVU0gKnJlc3VsdCwgKmJudG1wOwotIAlCSUdO VU0gKnJhbmdlc1s0XTsKLSAJY2hhciAqZGJ1ZjsKLSAJaW50IHJldDsKLSAJZG91YmxlIGRpZmZy ZXQgPSAwLjA7Ci0gCi0gCWJuY3R4ID0gQk5fQ1RYX25ldygpOwotLQlCTl9pbml0KCZyZXN1bHQp OwotLQlCTl9pbml0KCZibnRtcCk7Ci0rCXJlc3VsdCA9IEJOX25ldygpOwotKwlibnRtcCA9IEJO X25ldygpOwotIAotIAlyZXQgPSBnZXRfcHJlZml4X3JhbmdlcyhhZGRydHlwZSwKLSAJCQkJcGF0 dGVybiwgcmFuZ2VzLCBibmN0eCk7Ci0gCi0gCWlmIChyZXQgPT0gMCkgewotLQkJQk5fc3ViKCZi bnRtcCwgcmFuZ2VzWzFdLCByYW5nZXNbMF0pOwotLQkJQk5fYWRkKCZyZXN1bHQsICZyZXN1bHQs ICZibnRtcCk7Ci0rCQlCTl9zdWIoYm50bXAsIHJhbmdlc1sxXSwgcmFuZ2VzWzBdKTsKLSsJCUJO X2FkZChyZXN1bHQsIHJlc3VsdCwgYm50bXApOwotIAkJaWYgKHJhbmdlc1syXSkgewotLQkJCUJO X3N1YigmYm50bXAsIHJhbmdlc1szXSwgcmFuZ2VzWzJdKTsKLS0JCQlCTl9hZGQoJnJlc3VsdCwg JnJlc3VsdCwgJmJudG1wKTsKLSsJCQlCTl9zdWIoYm50bXAsIHJhbmdlc1szXSwgcmFuZ2VzWzJd KTsKLSsJCQlCTl9hZGQocmVzdWx0LCByZXN1bHQsIGJudG1wKTsKLSAJCX0KLSAJCWZyZWVfcmFu Z2VzKHJhbmdlcyk7Ci0gCi0tCQlCTl9jbGVhcigmYm50bXApOwotLQkJQk5fc2V0X2JpdCgmYm50 bXAsIDE5Mik7Ci0tCQlCTl9kaXYoJnJlc3VsdCwgTlVMTCwgJmJudG1wLCAmcmVzdWx0LCBibmN0 eCk7Ci0rCQlCTl9jbGVhcihibnRtcCk7Ci0rCQlCTl9zZXRfYml0KGJudG1wLCAxOTIpOwotKwkJ Qk5fZGl2KHJlc3VsdCwgTlVMTCwgYm50bXAsIHJlc3VsdCwgYm5jdHgpOwotIAotLQkJZGJ1ZiA9 IEJOX2JuMmRlYygmcmVzdWx0KTsKLSsJCWRidWYgPSBCTl9ibjJkZWMocmVzdWx0KTsKLSAJCWRp ZmZyZXQgPSBzdHJ0b2QoZGJ1ZiwgTlVMTCk7Ci0gCQlPUEVOU1NMX2ZyZWUoZGJ1Zik7Ci0gCX0K LSAKLS0JQk5fY2xlYXJfZnJlZSgmcmVzdWx0KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm50bXApOwot KwlCTl9jbGVhcl9mcmVlKHJlc3VsdCk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm50bXApOwotIAlCTl9D VFhfZnJlZShibmN0eCk7Ci0gCXJldHVybiBkaWZmcmV0OwotIH0KLUBAIC0xNTM1LDEwICsxNTM1 LDEwIEBAIHZnX3ByZWZpeF90ZXN0KHZnX2V4ZWNfY29udGV4dF90ICp2eGNwKQotIAkgKiBjaGVj ayBjb2RlLgotIAkgKi8KLSAKLS0JQk5fYmluMmJuKHZ4Y3AtPnZ4Y19iaW5yZXMsIDI1LCAmdnhj cC0+dnhjX2JudGFyZyk7Ci0rCUJOX2JpbjJibih2eGNwLT52eGNfYmlucmVzLCAyNSwgdnhjcC0+ dnhjX2JudGFyZyk7Ci0gCi0gcmVzZWFyY2g6Ci0tCXZwID0gdmdfcHJlZml4X2F2bF9zZWFyY2go JnZjcHAtPnZjcF9hdmxyb290LCAmdnhjcC0+dnhjX2JudGFyZyk7Ci0rCXZwID0gdmdfcHJlZml4 X2F2bF9zZWFyY2goJnZjcHAtPnZjcF9hdmxyb290LCB2eGNwLT52eGNfYm50YXJnKTsKLSAJaWYg KHZwKSB7Ci0gCQlpZiAodmdfZXhlY19jb250ZXh0X3VwZ3JhZGVfbG9jayh2eGNwKSkKLSAJCQln b3RvIHJlc2VhcmNoOwotQEAgLTE1NTgsMjAgKzE1NTgsMjAgQEAgdmdfcHJlZml4X3Rlc3Qodmdf ZXhlY19jb250ZXh0X3QgKnZ4Y3ApCi0gCQlpZiAodmNwcC0+YmFzZS52Y19yZW1vdmVfb25fbWF0 Y2gpIHsKLSAJCQkvKiBTdWJ0cmFjdCB0aGUgcmFuZ2UgZnJvbSB0aGUgZGlmZmljdWx0eSAqLwot IAkJCXZnX3ByZWZpeF9yYW5nZV9zdW0odnAsCi0tCQkJCQkgICAgJnZ4Y3AtPnZ4Y19ibnRhcmcs Ci0tCQkJCQkgICAgJnZ4Y3AtPnZ4Y19ibnRtcCk7Ci0tCQkJQk5fc3ViKCZ2eGNwLT52eGNfYm50 bXAsCi0tCQkJICAgICAgICZ2Y3BwLT52Y3BfZGlmZmljdWx0eSwKLS0JCQkgICAgICAgJnZ4Y3At PnZ4Y19ibnRhcmcpOwotLQkJCUJOX2NvcHkoJnZjcHAtPnZjcF9kaWZmaWN1bHR5LCAmdnhjcC0+ dnhjX2JudG1wKTsKLSsJCQkJCSAgICB2eGNwLT52eGNfYm50YXJnLAotKwkJCQkJICAgIHZ4Y3At PnZ4Y19ibnRtcCk7Ci0rCQkJQk5fc3ViKHZ4Y3AtPnZ4Y19ibnRtcCwKLSsJCQkgICAgICAgdmNw cC0+dmNwX2RpZmZpY3VsdHksCi0rCQkJICAgICAgIHZ4Y3AtPnZ4Y19ibnRhcmcpOwotKwkJCUJO X2NvcHkodmNwcC0+dmNwX2RpZmZpY3VsdHksIHZ4Y3AtPnZ4Y19ibnRtcCk7Ci0gCi0gCQkJdmdf cHJlZml4X2RlbGV0ZSgmdmNwcC0+dmNwX2F2bHJvb3QsdnApOwotIAkJCXZjcHAtPmJhc2UudmNf bnBhdHRlcm5zLS07Ci0gCi0gCQkJaWYgKCFhdmxfcm9vdF9lbXB0eSgmdmNwcC0+dmNwX2F2bHJv b3QpKQotIAkJCQl2Z19wcmVmaXhfY29udGV4dF9uZXh0X2RpZmZpY3VsdHkoCi0tCQkJCQl2Y3Bw LCAmdnhjcC0+dnhjX2JudG1wLAotLQkJCQkJJnZ4Y3AtPnZ4Y19ibnRtcDIsCi0rCQkJCQl2Y3Bw LCB2eGNwLT52eGNfYm50bXAsCi0rCQkJCQl2eGNwLT52eGNfYm50bXAyLAotIAkJCQkJdnhjcC0+ dnhjX2JuY3R4KTsKLSAJCQl2Y3BwLT5iYXNlLnZjX3BhdHRlcm5fZ2VuZXJhdGlvbisrOwotIAkJ fQotQEAgLTE2NTIsNyArMTY1Miw3IEBAIHZnX3ByZWZpeF9jb250ZXh0X25ldyhpbnQgYWRkcnR5 cGUsIGludCBwcml2dHlwZSwgaW50IGNhc2VpbnNlbnNpdGl2ZSkKLSAJCXZjcHAtPmJhc2UudmNf dGVzdCA9IHZnX3ByZWZpeF90ZXN0OwotIAkJdmNwcC0+YmFzZS52Y19oYXNoMTYwX3NvcnQgPSB2 Z19wcmVmaXhfaGFzaDE2MF9zb3J0OwotIAkJYXZsX3Jvb3RfaW5pdCgmdmNwcC0+dmNwX2F2bHJv b3QpOwotLQkJQk5faW5pdCgmdmNwcC0+dmNwX2RpZmZpY3VsdHkpOwotKwkJdmNwcC0+dmNwX2Rp ZmZpY3VsdHkgPSBCTl9uZXcoKTsKLSAJCXZjcHAtPnZjcF9jYXNlaW5zZW5zaXRpdmUgPSBjYXNl aW5zZW5zaXRpdmU7Ci0gCX0KLSAJcmV0dXJuICZ2Y3BwLT5iYXNlOwotQEAgLTE3NzgsMjEgKzE3 NzgsMjEgQEAgdmdfcmVnZXhfdGVzdCh2Z19leGVjX2NvbnRleHRfdCAqdnhjcCkKLSAJdW5zaWdu ZWQgY2hhciBoYXNoMVszMl0sIGhhc2gyWzMyXTsKLSAJaW50IGksIHpwZngsIHAsIGQsIG5yZXMs IHJlX3ZlY1s5XTsKLSAJY2hhciBiNThbNDBdOwotLQlCSUdOVU0gYm5yZW07Ci0rCUJJR05VTSAq Ym5yZW07Ci0gCUJJR05VTSAqYm4sICpibmRpdiwgKmJucHRtcDsKLSAJaW50IHJlcyA9IDA7Ci0g Ci0gCXBjcmUgKnJlOwotIAotLQlCTl9pbml0KCZibnJlbSk7Ci0rCWJucmVtID0gQk5fbmV3KCk7 Ci0gCi0gCS8qIEhhc2ggdGhlIGhhc2ggYW5kIHdyaXRlIHRoZSBmb3VyIGJ5dGUgY2hlY2sgY29k ZSAqLwotIAlTSEEyNTYodnhjcC0+dnhjX2JpbnJlcywgMjEsIGhhc2gxKTsKLSAJU0hBMjU2KGhh c2gxLCBzaXplb2YoaGFzaDEpLCBoYXNoMik7Ci0gCW1lbWNweSgmdnhjcC0+dnhjX2JpbnJlc1sy MV0sIGhhc2gyLCA0KTsKLSAKLS0JYm4gPSAmdnhjcC0+dnhjX2JudG1wOwotLQlibmRpdiA9ICZ2 eGNwLT52eGNfYm50bXAyOwotKwlibiA9IHZ4Y3AtPnZ4Y19ibnRtcDsKLSsJYm5kaXYgPSB2eGNw LT52eGNfYm50bXAyOwotIAotIAlCTl9iaW4yYm4odnhjcC0+dnhjX2JpbnJlcywgMjUsIGJuKTsK LSAKLUBAIC0xODAxLDExICsxODAxLDExIEBAIHZnX3JlZ2V4X3Rlc3QodmdfZXhlY19jb250ZXh0 X3QgKnZ4Y3ApCi0gCXAgPSBzaXplb2YoYjU4KSAtIDE7Ci0gCWI1OFtwXSA9ICdcMCc7Ci0gCXdo aWxlICghQk5faXNfemVybyhibikpIHsKLS0JCUJOX2RpdihibmRpdiwgJmJucmVtLCBibiwgJnZ4 Y3AtPnZ4Y19ibmJhc2UsIHZ4Y3AtPnZ4Y19ibmN0eCk7Ci0rCQlCTl9kaXYoYm5kaXYsIGJucmVt LCBibiwgdnhjcC0+dnhjX2JuYmFzZSwgdnhjcC0+dnhjX2JuY3R4KTsKLSAJCWJucHRtcCA9IGJu OwotIAkJYm4gPSBibmRpdjsKLSAJCWJuZGl2ID0gYm5wdG1wOwotLQkJZCA9IEJOX2dldF93b3Jk KCZibnJlbSk7Ci0rCQlkID0gQk5fZ2V0X3dvcmQoYm5yZW0pOwotIAkJYjU4Wy0tcF0gPSB2Z19i NThfYWxwaGFiZXRbZF07Ci0gCX0KLSAJd2hpbGUgKHpwZngtLSkgewotQEAgLTE4NzgsNyArMTg3 OCw3IEBAIHZnX3JlZ2V4X3Rlc3QodmdfZXhlY19jb250ZXh0X3QgKnZ4Y3ApCi0gCQlyZXMgPSAx OwotIAl9Ci0gb3V0OgotLQlCTl9jbGVhcl9mcmVlKCZibnJlbSk7Ci0rCUJOX2NsZWFyX2ZyZWUo Ym5yZW0pOwotIAlyZXR1cm4gcmVzOwotIH0KLSAKLWRpZmYgLS1naXQgYS9wYXR0ZXJuLmggYi9w YXR0ZXJuLmgKLWluZGV4IDNjZTJkMWYuLjBiNjA0ZWEgMTAwNjQ0Ci0tLS0gYS9wYXR0ZXJuLmgK LSsrKyBiL3BhdHRlcm4uaAotQEAgLTUxLDEwICs1MSwxMCBAQCBzdHJ1Y3QgX3ZnX2V4ZWNfY29u dGV4dF9zIHsKLSAJRUNfS0VZCQkJCSp2eGNfa2V5OwotIAlpbnQJCQkJdnhjX2RlbHRhOwotIAl1 bnNpZ25lZCBjaGFyCQkJdnhjX2JpbnJlc1syOF07Ci0tCUJJR05VTQkJCQl2eGNfYm50YXJnOwot LQlCSUdOVU0JCQkJdnhjX2JuYmFzZTsKLS0JQklHTlVNCQkJCXZ4Y19ibnRtcDsKLS0JQklHTlVN CQkJCXZ4Y19ibnRtcDI7Ci0rCUJJR05VTQkJCQkqdnhjX2JudGFyZzsKLSsJQklHTlVNCQkJCSp2 eGNfYm5iYXNlOwotKwlCSUdOVU0JCQkJKnZ4Y19ibnRtcDsKLSsJQklHTlVNCQkJCSp2eGNfYm50 bXAyOwotIAotIAl2Z19leGVjX2NvbnRleHRfdGhyZWFkZnVuY190CXZ4Y190aHJlYWRmdW5jOwot IAlwdGhyZWFkX3QJCQl2eGNfcHRocmVhZDsKLWRpZmYgLS1naXQgYS91dGlsLmMgYi91dGlsLmMK LWluZGV4IDRmM2NiYjguLjM1Y2Q1OTIgMTAwNjQ0Ci0tLS0gYS91dGlsLmMKLSsrKyBiL3V0aWwu YwotQEAgLTExMCwxOSArMTEwLDE5IEBAIHZnX2I1OF9lbmNvZGVfY2hlY2sodm9pZCAqYnVmLCBz aXplX3QgbGVuLCBjaGFyICpyZXN1bHQpCi0gCi0gCUJOX0NUWCAqYm5jdHg7Ci0gCUJJR05VTSAq Ym4sICpibmRpdiwgKmJudG1wOwotLQlCSUdOVU0gYm5hLCBibmIsIGJuYmFzZSwgYm5yZW07Ci0r CUJJR05VTSAqYm5hLCAqYm5iLCAqYm5iYXNlLCAqYm5yZW07Ci0gCXVuc2lnbmVkIGNoYXIgKmJp bnJlczsKLSAJaW50IGJybGVuLCB6cGZ4OwotIAotIAlibmN0eCA9IEJOX0NUWF9uZXcoKTsKLS0J Qk5faW5pdCgmYm5hKTsKLS0JQk5faW5pdCgmYm5iKTsKLS0JQk5faW5pdCgmYm5iYXNlKTsKLS0J Qk5faW5pdCgmYm5yZW0pOwotLQlCTl9zZXRfd29yZCgmYm5iYXNlLCA1OCk7Ci0rCWJuYSA9IEJO X25ldygpOwotKwlibmIgPSBCTl9uZXcoKTsKLSsJYm5iYXNlID0gQk5fbmV3KCk7Ci0rCWJucmVt ID0gQk5fbmV3KCk7Ci0rCUJOX3NldF93b3JkKGJuYmFzZSwgNTgpOwotIAotLQlibiA9ICZibmE7 Ci0tCWJuZGl2ID0gJmJuYjsKLSsJYm4gPSBibmE7Ci0rCWJuZGl2ID0gYm5iOwotIAotIAlicmxl biA9ICgyICogbGVuKSArIDQ7Ci0gCWJpbnJlcyA9ICh1bnNpZ25lZCBjaGFyKikgbWFsbG9jKGJy bGVuKTsKLUBAIC0xNTQsMTEgKzE1NCwxMSBAQCB2Z19iNThfZW5jb2RlX2NoZWNrKHZvaWQgKmJ1 Ziwgc2l6ZV90IGxlbiwgY2hhciAqcmVzdWx0KQotIAotIAlwID0gYnJsZW47Ci0gCXdoaWxlICgh Qk5faXNfemVybyhibikpIHsKLS0JCUJOX2RpdihibmRpdiwgJmJucmVtLCBibiwgJmJuYmFzZSwg Ym5jdHgpOwotKwkJQk5fZGl2KGJuZGl2LCBibnJlbSwgYm4sIGJuYmFzZSwgYm5jdHgpOwotIAkJ Ym50bXAgPSBibjsKLSAJCWJuID0gYm5kaXY7Ci0gCQlibmRpdiA9IGJudG1wOwotLQkJZCA9IEJO X2dldF93b3JkKCZibnJlbSk7Ci0rCQlkID0gQk5fZ2V0X3dvcmQoYm5yZW0pOwotIAkJYmlucmVz Wy0tcF0gPSB2Z19iNThfYWxwaGFiZXRbZF07Ci0gCX0KLSAKLUBAIC0xNzAsMTAgKzE3MCwxMCBA QCB2Z19iNThfZW5jb2RlX2NoZWNrKHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgY2hhciAqcmVzdWx0 KQotIAlyZXN1bHRbYnJsZW4gLSBwXSA9ICdcMCc7Ci0gCi0gCWZyZWUoYmlucmVzKTsKLS0JQk5f Y2xlYXJfZnJlZSgmYm5hKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5iKTsKLS0JQk5fY2xlYXJfZnJl ZSgmYm5iYXNlKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5yZW0pOwotKwlCTl9jbGVhcl9mcmVlKGJu YSk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm5iKTsKLSsJQk5fY2xlYXJfZnJlZShibmJhc2UpOwotKwlC Tl9jbGVhcl9mcmVlKGJucmVtKTsKLSAJQk5fQ1RYX2ZyZWUoYm5jdHgpOwotIH0KLSAKLUBAIC0x ODUsNyArMTg1LDcgQEAgdmdfYjU4X2RlY29kZV9jaGVjayhjb25zdCBjaGFyICppbnB1dCwgdm9p ZCAqYnVmLCBzaXplX3QgbGVuKQotIHsKLSAJaW50IGksIGwsIGM7Ci0gCXVuc2lnbmVkIGNoYXIg KnhidWYgPSBOVUxMOwotLQlCSUdOVU0gYm4sIGJudywgYm5iYXNlOwotKwlCSUdOVU0gKmJuLCAq Ym53LCAqYm5iYXNlOwotIAlCTl9DVFggKmJuY3R4OwotIAl1bnNpZ25lZCBjaGFyIGhhc2gxWzMy XSwgaGFzaDJbMzJdOwotIAl1bnNpZ25lZCBjaGFyIGdyb2VzdGxoYXNoMVs2NF07Ci1AQCAtMTkz LDEwICsxOTMsMTAgQEAgdmdfYjU4X2RlY29kZV9jaGVjayhjb25zdCBjaGFyICppbnB1dCwgdm9p ZCAqYnVmLCBzaXplX3QgbGVuKQotIAlpbnQgenBmeDsKLSAJaW50IHJlcyA9IDA7Ci0gCi0tCUJO X2luaXQoJmJuKTsKLS0JQk5faW5pdCgmYm53KTsKLS0JQk5faW5pdCgmYm5iYXNlKTsKLS0JQk5f c2V0X3dvcmQoJmJuYmFzZSwgNTgpOwotKwlibiA9IEJOX25ldygpOwotKwlibncgPSBCTl9uZXco KTsKLSsJYm5iYXNlID0gQk5fbmV3KCk7Ci0rCUJOX3NldF93b3JkKGJuYmFzZSwgNTgpOwotIAli bmN0eCA9IEJOX0NUWF9uZXcoKTsKLSAKLSAJLyogQnVpbGQgYSBiaWdudW0gZnJvbSB0aGUgZW5j b2RlZCB2YWx1ZSAqLwotQEAgLTIwNywxMCArMjA3LDEwIEBAIHZnX2I1OF9kZWNvZGVfY2hlY2so Y29uc3QgY2hhciAqaW5wdXQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKLSAJCWMgPSB2Z19iNThf cmV2ZXJzZV9tYXBbKGludClpbnB1dFtpXV07Ci0gCQlpZiAoYyA8IDApCi0gCQkJZ290byBvdXQ7 Ci0tCQlCTl9jbGVhcigmYm53KTsKLS0JCUJOX3NldF93b3JkKCZibncsIGMpOwotLQkJQk5fbXVs KCZibiwgJmJuLCAmYm5iYXNlLCBibmN0eCk7Ci0tCQlCTl9hZGQoJmJuLCAmYm4sICZibncpOwot KwkJQk5fY2xlYXIoYm53KTsKLSsJCUJOX3NldF93b3JkKGJudywgYyk7Ci0rCQlCTl9tdWwoYm4s IGJuLCBibmJhc2UsIGJuY3R4KTsKLSsJCUJOX2FkZChibiwgYm4sIGJudyk7Ci0gCX0KLSAKLSAJ LyogQ29weSB0aGUgYmlnbnVtIHRvIGEgYnl0ZSBidWZmZXIgKi8KLUBAIC0yMjEsNyArMjIxLDcg QEAgdmdfYjU4X2RlY29kZV9jaGVjayhjb25zdCBjaGFyICppbnB1dCwgdm9pZCAqYnVmLCBzaXpl X3QgbGVuKQotIAkJCWJyZWFrOwotIAkJenBmeCsrOwotIAl9Ci0tCWMgPSBCTl9udW1fYnl0ZXMo JmJuKTsKLSsJYyA9IEJOX251bV9ieXRlcyhibik7Ci0gCWwgPSB6cGZ4ICsgYzsKLSAJaWYgKGwg PCA1KQotIAkJZ290byBvdXQ7Ci1AQCAtMjMxLDcgKzIzMSw3IEBAIHZnX2I1OF9kZWNvZGVfY2hl Y2soY29uc3QgY2hhciAqaW5wdXQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKLSAJaWYgKHpwZngp Ci0gCQltZW1zZXQoeGJ1ZiwgMCwgenBmeCk7Ci0gCWlmIChjKQotLQkJQk5fYm4yYmluKCZibiwg eGJ1ZiArIHpwZngpOwotKwkJQk5fYm4yYmluKGJuLCB4YnVmICsgenBmeCk7Ci0gCi0gCS8qIENo ZWNrIHRoZSBoYXNoIGNvZGUgKi8KLSAJbCAtPSA0OwotQEAgLTI3MCw5ICsyNzAsOSBAQCB2Z19i NThfZGVjb2RlX2NoZWNrKGNvbnN0IGNoYXIgKmlucHV0LCB2b2lkICpidWYsIHNpemVfdCBsZW4p Ci0gb3V0OgotIAlpZiAoeGJ1ZikKLSAJCWZyZWUoeGJ1Zik7Ci0tCUJOX2NsZWFyX2ZyZWUoJmJu KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm53KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5iYXNlKTsKLSsJ Qk5fY2xlYXJfZnJlZShibik7Ci0rCUJOX2NsZWFyX2ZyZWUoYm53KTsKLSsJQk5fY2xlYXJfZnJl ZShibmJhc2UpOwotIAlCTl9DVFhfZnJlZShibmN0eCk7Ci0gCXJldHVybiByZXM7Ci0gfQotQEAg LTQyMCw3ICs0MjAsNyBAQCB2Z19zZXRfcHJpdmtleShjb25zdCBCSUdOVU0gKmJucHJpdiwgRUNf S0VZICpwa2V5KQotIGludAotIHZnX2RlY29kZV9wcml2a2V5KGNvbnN0IGNoYXIgKmI1OGVuY29k ZWQsIEVDX0tFWSAqcGtleSwgaW50ICphZGRydHlwZSkKLSB7Ci0tCUJJR05VTSBibnByaXY7Ci0r CUJJR05VTSAqYm5wcml2OwotIAl1bnNpZ25lZCBjaGFyIGVjcHJpdls0OF07Ci0gCWludCByZXMs IHJldDsKLSAKLUBAIC00MzAsMTAgKzQzMCwxMCBAQCB2Z19kZWNvZGVfcHJpdmtleShjb25zdCBj aGFyICpiNThlbmNvZGVkLCBFQ19LRVkgKnBrZXksIGludCAqYWRkcnR5cGUpCi0gCi0gCXJldCA9 IHJlcyAtIDMyOwotIAotLQlCTl9pbml0KCZibnByaXYpOwotLQlCTl9iaW4yYm4oZWNwcml2ICsg MSwgMzIsICZibnByaXYpOwotLQlyZXMgPSB2Z19zZXRfcHJpdmtleSgmYm5wcml2LCBwa2V5KTsK LS0JQk5fY2xlYXJfZnJlZSgmYm5wcml2KTsKLSsJYm5wcml2ID0gQk5fbmV3KCk7Ci0rCUJOX2Jp bjJibihlY3ByaXYgKyAxLCAzMiwgYm5wcml2KTsKLSsJcmVzID0gdmdfc2V0X3ByaXZrZXkoYm5w cml2LCBwa2V5KTsKLSsJQk5fY2xlYXJfZnJlZShibnByaXYpOwotIAkqYWRkcnR5cGUgPSBlY3By aXZbMF07Ci0gCXJldHVybiByZXQ7Ci0gfQotQEAgLTYzMiwxNSArNjMyLDE1IEBAIHZnX3Byb3Rl Y3RfY3J5cHQoaW50IHBhcmFtZXRlcl9ncm91cCwKLSAJCXNhbHRfbGVuID0gNDsKLSAJCWhtYWNf bGVuID0gODsKLSAJCWhtYWNfa2V5bGVuID0gMTY7Ci0tCQljaXBoZXJ0ZXh0X2xlbiA9ICgocGxh aW50ZXh0X2xlbiArIGNpcGhlci0+YmxvY2tfc2l6ZSAtIDEpIC8KLS0JCQkJICBjaXBoZXItPmJs b2NrX3NpemUpICogY2lwaGVyLT5ibG9ja19zaXplOwotKwkJY2lwaGVydGV4dF9sZW4gPSAoKHBs YWludGV4dF9sZW4gKyBFVlBfQ0lQSEVSX2Jsb2NrX3NpemUoY2lwaGVyKSAtIDEpIC8KLSsJCQkJ ICBFVlBfQ0lQSEVSX2Jsb2NrX3NpemUoY2lwaGVyKSkgKiBFVlBfQ0lQSEVSX2Jsb2NrX3NpemUo Y2lwaGVyKTsKLSAJCXBrY3M3X3BhZGRpbmcgPSAwOwotIAkJaG1hY19kaWdlc3QgPSBFVlBfc2hh MjU2KCk7Ci0gCX0gZWxzZSB7Ci0gCQkvKiBQS0NTLWNvbXBsaWFudCBlbmNvZGluZyAqLwotIAkJ c2FsdF9sZW4gPSA4OwotLQkJY2lwaGVydGV4dF9sZW4gPSAoKHBsYWludGV4dF9sZW4gKyBjaXBo ZXItPmJsb2NrX3NpemUpIC8KLS0JCQkJICBjaXBoZXItPmJsb2NrX3NpemUpICogY2lwaGVyLT5i bG9ja19zaXplOwotKwkJY2lwaGVydGV4dF9sZW4gPSAoKHBsYWludGV4dF9sZW4gKyBFVlBfQ0lQ SEVSX2Jsb2NrX3NpemUoY2lwaGVyKSkgLwotKwkJCQkgIEVWUF9DSVBIRVJfYmxvY2tfc2l6ZShj aXBoZXIpKSAqIEVWUF9DSVBIRVJfYmxvY2tfc2l6ZShjaXBoZXIpOwotIAkJaG1hY19kaWdlc3Qg PSBOVUxMOwotIAl9Ci0gCi1AQCAtNjY2LDEyICs2NjYsMTIgQEAgdmdfcHJvdGVjdF9jcnlwdChp bnQgcGFyYW1ldGVyX2dyb3VwLAotIAkJCSAgc2FsdCwgc2FsdF9sZW4sCi0gCQkJICBwYXJhbXMt Pml0ZXJhdGlvbnMsCi0gCQkJICBwYmtkZl9kaWdlc3QsCi0tCQkJICBjaXBoZXItPmtleV9sZW4g KyBjaXBoZXItPml2X2xlbiArIGhtYWNfa2V5bGVuLAotKwkJCSAgRVZQX0NJUEhFUl9rZXlfbGVu Z3RoKGNpcGhlcikgKyBFVlBfQ0lQSEVSX2l2X2xlbmd0aChjaXBoZXIpICsgaG1hY19rZXlsZW4s Ci0gCQkJICBrZXltYXRlcmlhbCk7Ci0gCi0gCWlmICghRVZQX0NpcGhlckluaXQoY3R4LCBjaXBo ZXIsCi0gCQkJICAgIGtleW1hdGVyaWFsLAotLQkJCSAgICBrZXltYXRlcmlhbCArIGNpcGhlci0+ a2V5X2xlbiwKLSsJCQkgICAga2V5bWF0ZXJpYWwgKyBFVlBfQ0lQSEVSX2tleV9sZW5ndGgoY2lw aGVyKSwKLSAJCQkgICAgZW5jKSkgewotIAkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogY291bGQg bm90IGNvbmZpZ3VyZSBjaXBoZXJcbiIpOwotIAkJZ290byBvdXQ7Ci1AQCAtNzA3LDcgKzcwNyw3 IEBAIHZnX3Byb3RlY3RfY3J5cHQoaW50IHBhcmFtZXRlcl9ncm91cCwKLSAJaWYgKGhtYWNfbGVu KSB7Ci0gCQlobGVuID0gc2l6ZW9mKGhtYWMpOwotIAkJSE1BQyhobWFjX2RpZ2VzdCwKLS0JCSAg ICAga2V5bWF0ZXJpYWwgKyBjaXBoZXItPmtleV9sZW4gKyBjaXBoZXItPml2X2xlbiwKLSsJCSAg ICAga2V5bWF0ZXJpYWwgKyBFVlBfQ0lQSEVSX2tleV9sZW5ndGgoY2lwaGVyKSArIEVWUF9DSVBI RVJfaXZfbGVuZ3RoKGNpcGhlciksCi0gCQkgICAgIGhtYWNfa2V5bGVuLAotIAkJICAgICBlbmMg PyBkYXRhX2luIDogZGF0YV9vdXQsIHBsYWludGV4dF9sZW4sCi0gCQkgICAgIGhtYWMsICZobGVu KTsKLUBAIC03ODYsNyArNzg2LDcgQEAgdmdfcHJvdGVjdF9kZWNvZGVfcHJpdmtleShFQ19LRVkg KnBrZXksIGludCAqa2V5dHlwZSwKLSB7Ci0gCXVuc2lnbmVkIGNoYXIgZWNwcml2WzY0XTsKLSAJ dW5zaWduZWQgY2hhciBlY2VuY1sxMjhdOwotLQlCSUdOVU0gYm47Ci0rCUJJR05VTSAqYm47Ci0g CWludCByZXN0eXBlOwotIAlpbnQgcmVzOwotIAotQEAgLTgxMCwxMCArODEwLDEwIEBAIHZnX3By b3RlY3RfZGVjb2RlX3ByaXZrZXkoRUNfS0VZICpwa2V5LCBpbnQgKmtleXR5cGUsCi0gCi0gCXJl cyA9IDE7Ci0gCWlmIChwa2V5KSB7Ci0tCQlCTl9pbml0KCZibik7Ci0tCQlCTl9iaW4yYm4oZWNw cml2LCAzMiwgJmJuKTsKLS0JCXJlcyA9IHZnX3NldF9wcml2a2V5KCZibiwgcGtleSk7Ci0tCQlC Tl9jbGVhcl9mcmVlKCZibik7Ci0rCQlibiA9IEJOX25ldygpOwotKwkJQk5fYmluMmJuKGVjcHJp diwgMzIsIGJuKTsKLSsJCXJlcyA9IHZnX3NldF9wcml2a2V5KGJuLCBwa2V5KTsKLSsJCUJOX2Ns ZWFyX2ZyZWUoYm4pOwotIAkJT1BFTlNTTF9jbGVhbnNlKGVjcHJpdiwgc2l6ZW9mKGVjcHJpdikp OwotIAl9Ci0gCi1kaWZmIC0tZ2l0IGEvdmFuaXR5Z2VuLmMgYi92YW5pdHlnZW4uYwotaW5kZXgg ZmI3OTI1YS4uOTkyZTVkNyAxMDA2NDQKLS0tLSBhL3Zhbml0eWdlbi5jCi0rKysgYi92YW5pdHln ZW4uYwotQEAgLTk0LDggKzk0LDggQEAgdmdfdGhyZWFkX2xvb3Aodm9pZCAqYXJnKQotIAkJZXhp dCgxKTsKLSAJfQotIAotLQlCTl9zZXRfd29yZCgmdnhjcC0+dnhjX2JudG1wLCBwdGFycmF5c2l6 ZSk7Ci0tCUVDX1BPSU5UX211bChwZ3JvdXAsIHBiYXRjaGluYywgJnZ4Y3AtPnZ4Y19ibnRtcCwg TlVMTCwgTlVMTCwKLSsJQk5fc2V0X3dvcmQodnhjcC0+dnhjX2JudG1wLCBwdGFycmF5c2l6ZSk7 Ci0rCUVDX1BPSU5UX211bChwZ3JvdXAsIHBiYXRjaGluYywgdnhjcC0+dnhjX2JudG1wLCBOVUxM LCBOVUxMLAotIAkJICAgICB2eGNwLT52eGNfYm5jdHgpOwotIAlFQ19QT0lOVF9tYWtlX2FmZmlu ZShwZ3JvdXAsIHBiYXRjaGluYywgdnhjcC0+dnhjX2JuY3R4KTsKLSAKLUBAIC0xMzksMTMgKzEz OSwxMyBAQCB2Z190aHJlYWRfbG9vcCh2b2lkICphcmcpCi0gCQkJbnBvaW50cyA9IDA7Ci0gCi0g CQkJLyogRGV0ZXJtaW5lIHJla2V5IGludGVydmFsICovCi0tCQkJRUNfR1JPVVBfZ2V0X29yZGVy KHBncm91cCwgJnZ4Y3AtPnZ4Y19ibnRtcCwKLSsJCQlFQ19HUk9VUF9nZXRfb3JkZXIocGdyb3Vw LCB2eGNwLT52eGNfYm50bXAsCi0gCQkJCQkgICB2eGNwLT52eGNfYm5jdHgpOwotLQkJCUJOX3N1 YigmdnhjcC0+dnhjX2JudG1wMiwKLS0JCQkgICAgICAgJnZ4Y3AtPnZ4Y19ibnRtcCwKLSsJCQlC Tl9zdWIodnhjcC0+dnhjX2JudG1wMiwKLSsJCQkgICAgICAgdnhjcC0+dnhjX2JudG1wLAotIAkJ CSAgICAgICBFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShwa2V5KSk7Ci0tCQkJcmVrZXlfYXQgPSBC Tl9nZXRfd29yZCgmdnhjcC0+dnhjX2JudG1wMik7Ci0tCQkJaWYgKChyZWtleV9hdCA9PSBCTl9N QVNLMikgfHwgKHJla2V5X2F0ID4gcmVrZXlfbWF4KSkKLSsJCQlyZWtleV9hdCA9IEJOX2dldF93 b3JkKHZ4Y3AtPnZ4Y19ibnRtcDIpOwotKwkJCWlmICgocmVrZXlfYXQgPT0gMHhmZmZmZmZmZkwp IHx8IChyZWtleV9hdCA+IHJla2V5X21heCkpCi0gCQkJCXJla2V5X2F0ID0gcmVrZXlfbWF4Owot IAkJCWFzc2VydChyZWtleV9hdCA+IDApOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy92YW5pdHln ZW4vcGF0Y2hlcy81ZjE2M2U2ZmZmN2RhNTJjNGFlY2JkODk4ZDlkZjJlNjBhNTZmMTM0LnBhdGNo IGIvc3JjcGtncy92YW5pdHlnZW4vcGF0Y2hlcy81ZjE2M2U2ZmZmN2RhNTJjNGFlY2JkODk4ZDlk ZjJlNjBhNTZmMTM0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWUzMGFl MDhjZGYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzVmMTYz ZTZmZmY3ZGE1MmM0YWVjYmQ4OThkOWRmMmU2MGE1NmYxMzQucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw5OCArMCwwIEBACi1Gcm9tIDVmMTYzZTZmZmY3ZGE1MmM0YWVjYmQ4OThkOWRmMmU2MGE1 NmYxMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZXNXdXJzdGVzIDxEZXNXdXJz dGVzQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KLURhdGU6IFN1biwgMyBKdW4gMjAxOCAxNzo0 NjoxNiArMDMwMAotU3ViamVjdDogW1BBVENIXSBQcml2a2V5IHByZWZpeCBPcGVuU1NMIDEuMSBj b21wYXRpYmlsaXR5ICgjMTE2KQotCi1GaXhlcyAjMTE0Ci0tLS0KLSBvY2xlbmdpbmUuYyB8IDE4 ICsrKysrKysrKysrKystLS0tLQotIHZhbml0eWdlbi5jIHwgMTIgKysrKysrKysrKy0tCi0gMiBm aWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvb2NsZW5naW5lLmMgYi9vY2xlbmdpbmUuYwotaW5kZXggNjU4NWZjNi4uYzY5YmQ0YiAx MDA2NDQKLS0tLSBhL29jbGVuZ2luZS5jCi0rKysgYi9vY2xlbmdpbmUuYwotQEAgLTUsNyArNSw3 IEBACi0gICogVmFuaXR5Z2VuIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKLSAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZl cm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgot LSAqIGFueSBsYXRlciB2ZXJzaW9uLiAKLSsgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAgKgotICAq IFZhbml0eWdlbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotICAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi1AQCAtMTA1OCw3ICsxMDU4LDcgQEAgdmdfb2NsX2tlcm5lbF9hcmdf YWxsb2Modmdfb2NsX2NvbnRleHRfdCAqdm9jcCwgaW50IHNsb3QsCi0gCQkJCQkgICAgIGthcmcs Ci0gCQkJCQkgICAgIHNpemVvZihjbGJ1ZiksCi0gCQkJCQkgICAgICZjbGJ1Zik7Ci0tCQkJCi0r Ci0gCQkJaWYgKHJldCkgewotIAkJCQlmcHJpbnRmKHN0ZGVyciwKLSAJCQkJCSJjbFNldEtlcm5l bEFyZyglZCwlZCk6ICIsIGtudW0sIGthcmcpOwotQEAgLTEwOTAsNyArMTA5MCw3IEBAIHZnX29j bF9jb3B5b3V0X2FyZyh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgd3Nsb3QsIGludCBhcmcs Ci0gCQkJCSAgIGJ1ZmZlciwKLSAJCQkJICAgMCwgTlVMTCwKLSAJCQkJICAgTlVMTCk7Ci0tCQkJ Ci0rCi0gCWlmIChyZXQpIHsKLSAJCWZwcmludGYoc3RkZXJyLCAiY2xFbnF1ZXVlV3JpdGVCdWZm ZXIoJWQpOiAiLCBhcmcpOwotIAkJdmdfb2NsX2Vycm9yKHZvY3AsIHJldCwgTlVMTCk7Ci1AQCAt MjA3OSw3ICsyMDc5LDE1IEBAIHZnX29wZW5jbF9sb29wKHZnX2V4ZWNfY29udGV4dF90ICphcmcp Ci0gCW5wb2ludHMgPSAwOwotIAlpZiAodmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGggPiAw KSB7Ci0gCQlCSUdOVU0gKnBrYm4gPSBCTl9kdXAoRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkocGtl eSkpOwotLQkJbWVtY3B5KChjaGFyICopcGtibi0+ZCArIDMyIC0gdmNwLT52Y19wcml2a2V5X3By ZWZpeF9sZW5ndGgsIHZjcC0+dmNfcHJpdmtleV9wcmVmaXgsIHZjcC0+dmNfcHJpdmtleV9wcmVm aXhfbGVuZ3RoKTsKLSsJCXVuc2lnbmVkIGNoYXIgcGtleV9hcnJbMzJdOwotKwkJYXNzZXJ0KEJO X2JuMmJpbihwa2JuLCBwa2V5X2FycikgPCAzMyk7Ci0rCQltZW1jcHkoKGNoYXIgKikgcGtleV9h cnIsIHZjcC0+dmNfcHJpdmtleV9wcmVmaXgsIHZjcC0+dmNfcHJpdmtleV9wcmVmaXhfbGVuZ3Ro KTsKLSsJCWZvciAoaW50IGkgPSAwOyBpIDwgdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgg LyAyOyBpKyspIHsKLSsJCQlpbnQgayA9IHBrZXlfYXJyW2ldOwotKwkJCXBrZXlfYXJyW2ldID0g cGtleV9hcnJbdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGggLSAxIC0gaV07Ci0rCQkJcGtl eV9hcnJbdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGggLSAxIC0gaV0gPSBrOwotKwkJfQot KwkJQk5fYmluMmJuKHBrZXlfYXJyLCAzMiwgcGtibik7Ci0gCQlFQ19LRVlfc2V0X3ByaXZhdGVf a2V5KHBrZXksIHBrYm4pOwotIAotIAkJRUNfUE9JTlQgKm9yaWdpbiA9IEVDX1BPSU5UX25ldyhw Z3JvdXApOwotQEAgLTIyNDAsNyArMjI0OCw3IEBAIHZnX29wZW5jbF9sb29wKHZnX2V4ZWNfY29u dGV4dF90ICphcmcpCi0gCQkJc2xvdF9idXN5ID0gMTsKLSAJCQlzbG90ID0gKHNsb3QgKyAxKSAl IG5zbG90czsKLSAKLS0JCX0gZWxzZSB7IAotKwkJfSBlbHNlIHsKLSAJCQlpZiAoc2xvdF9idXN5 KSB7Ci0gCQkJCXB0aHJlYWRfbXV0ZXhfbG9jaygmdm9jcC0+dm9jX2xvY2spOwotIAkJCQl3aGls ZSAodm9jcC0+dm9jX29jbF9zbG90ICE9IC0xKSB7Ci1kaWZmIC0tZ2l0IGEvdmFuaXR5Z2VuLmMg Yi92YW5pdHlnZW4uYwotaW5kZXggOTkyZTVkNy4uNWU0OWRmNyAxMDA2NDQKLS0tLSBhL3Zhbml0 eWdlbi5jCi0rKysgYi92YW5pdHlnZW4uYwotQEAgLTEyOSw3ICsxMjksMTUgQEAgdmdfdGhyZWFk X2xvb3Aodm9pZCAqYXJnKQotIAkJCUVDX0tFWV9nZW5lcmF0ZV9rZXkocGtleSk7Ci0gCQkJaWYg KHZjcC0+dmNfcHJpdmtleV9wcmVmaXhfbGVuZ3RoID4gMCkgewotIAkJCQlCSUdOVU0gKnBrYm4g PSBCTl9kdXAoRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkocGtleSkpOwotLQkJCQltZW1jcHkoKGNo YXIgKilwa2JuLT5kICsgMzIgLSB2Y3AtPnZjX3ByaXZrZXlfcHJlZml4X2xlbmd0aCwgdmNwLT52 Y19wcml2a2V5X3ByZWZpeCwgdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgpOwotKyAgICAg ICAgdW5zaWduZWQgY2hhciBwa2V5X2FyclszMl07Ci0rICAgICAgICBhc3NlcnQoQk5fYm4yYmlu KHBrYm4sIHBrZXlfYXJyKSA8IDMzKTsKLSsgICAgICAgIG1lbWNweSgoY2hhciAqKSBwa2V5X2Fy ciwgdmNwLT52Y19wcml2a2V5X3ByZWZpeCwgdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgp OwotKwkJCQlmb3IgKGludCBpID0gMDsgaSA8IHZjcC0+dmNfcHJpdmtleV9wcmVmaXhfbGVuZ3Ro IC8gMjsgaSsrKSB7Ci0rCQkJCQlpbnQgayA9IHBrZXlfYXJyW2ldOwotKwkJCQkJcGtleV9hcnJb aV0gPSBwa2V5X2Fyclt2Y3AtPnZjX3ByaXZrZXlfcHJlZml4X2xlbmd0aCAtIDEgLSBpXTsKLSsJ CQkJCXBrZXlfYXJyW3ZjcC0+dmNfcHJpdmtleV9wcmVmaXhfbGVuZ3RoIC0gMSAtIGldID0gazsK LSsJCQkJfQotKyAgICAgICAgQk5fYmluMmJuKHBrZXlfYXJyLCAzMiwgcGtibik7Ci0gCQkJCUVD X0tFWV9zZXRfcHJpdmF0ZV9rZXkocGtleSwgcGtibik7Ci0gCi0gCQkJCUVDX1BPSU5UICpvcmln aW4gPSBFQ19QT0lOVF9uZXcocGdyb3VwKTsKLUBAIC0xMzk1LDcgKzE0MDMsNyBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKLSAJCQkJCWFkZHJ0eXBlID0gNjA7Ci0gCQkJCQlwcml2dHlw ZSA9IDEyODsKLSAJCQkJCWJyZWFrOwotLQkJCX0JCQkKLSsJCQl9Ci0gCQkJYnJlYWs7Ci0gCi0g LypFTkQgQUxUQ09JTiBHRU5FUkFUT1IqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YW5pdHlnZW4v dGVtcGxhdGUgYi9zcmNwa2dzL3Zhbml0eWdlbi90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNjI0YWM4NTlkNWQyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy92YW5p dHlnZW4vdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jIFRlbXBsYXRl IGZpbGUgZm9yICd2YW5pdHlnZW4nCi1wa2duYW1lPXZhbml0eWdlbgotdmVyc2lvbj0xLjUzCi1y ZXZpc2lvbj0yCi1tYWtlZGVwZW5kcz0icGNyZS1kZXZlbCBvcGVuc3NsLWRldmVsIgotc2hvcnRf ZGVzYz0iQml0Y29pbiB2YW5pdHkgYWRkcmVzcyBnZW5lcmF0b3IiCi1tYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iQUdQTC0zLjAtb3ItbGF0ZXIi Ci1ob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL2V4cGxvaXRhZ2VuY3kvdmFuaXR5Z2VuLXBs dXMiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9leHBsb2l0 YWdlbmN5L3Zhbml0eWdlbi1wbHVzL21hc3Rlci9DSEFOR0VMT0ciCi1kaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9leHBsb2l0YWdlbmN5L3Zhbml0eWdlbi1wbHVzL2FyY2hpdmUvUExVUyR7 dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OTc2YTlhZmUyYTQ0NzA1NTFhOGI2YjBkYTk3MTAx YTNhMmU2YzU0YzVhMjZkYzg3MGFlNzU1YmIyZDhjNzA0MQotCi1kb19idWlsZCgpIHsKLQltYWtl IENDPSRDQyBDRkxBR1M9IiRDRkxBR1MgJExERkxBR1MiICR7bWFrZWpvYnN9Ci19Ci1kb19pbnN0 YWxsKCkgewotCXZiaW4gdmFuaXR5Z2VuCi0JdmJpbiBrZXljb252Ci0JdmxpY2Vuc2UgTElDRU5T RQotfQo= --===============0982189490402430174==--