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 9330 invoked from network); 30 Jan 2023 15:29:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 30 Jan 2023 15:29:48 -0000 Content-Type: multipart/mixed; boundary="===============9137265052989197938==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_vanitygen=3A_remove?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org Message-ID: Date: Mon, 30 Jan 2023 16:29:48 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============9137265052989197938== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGRrd28gYWdhaW5zdCBtYXN0ZXIgb24gdGhl IHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2Rrd28vdm9pZC1w YWNrYWdlcyBPM3ZhbgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2Vz L3B1bGwvNDE5NjgKCnZhbml0eWdlbjogcmVtb3ZlCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4g dGhpcyBQUjogeWVzDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJj aGl0ZWN0dXJlLCAoeDg2XzY0LW11c2wpDQoNCmRvZXMgbm90IGJ1aWxkIHdpdGggb3BlbnNzbDMs IG5vIGRpc3RmaWxlcyBhdmFpbGFibGUKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80MTk2OC5wYXRjaCBpcyBhdHRhY2hl ZA== --===============9137265052989197938== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-O3van-41968.patch" RnJvbSBmNjhiODJiZTA5ZTFhYTljOTMyYTA4NjgyZDIzMzdlZWQxYmU5NTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMjYgSmFuIDIwMjMgMTM6NDE6MjcgLTA1MDAKU3ViamVjdDogW1BBVENIXSB2YW5p dHlnZW46IHJlbW92ZQoKLS0tCiBzcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgICAg ICAgICAgICAgfCAgICAzICstCiAuLi40YTY0Njg3M2M4NDM5ZDNiNWVlM2EyMjc4ZTcyNzU3NTUy MWYucGF0Y2ggfCAxMTcxIC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4zZTZmZmY3ZGE1MmM0YWVjYmQ4 OThkOWRmMmU2MGE1NmYxMzQucGF0Y2ggfCAgIDk4IC0tCiBzcmNwa2dzL3Zhbml0eWdlbi90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIxIC0KIDQgZmlsZXMgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxMjkxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv dmFuaXR5Z2VuL3BhdGNoZXMvNGI4MTRhNjQ2ODczYzg0MzlkM2I1ZWUzYTIyNzhlNzI3NTc1NTIx Zi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFuaXR5Z2VuL3BhdGNoZXMvNWYx NjNlNmZmZjdkYTUyYzRhZWNiZDg5OGQ5ZGYyZTYwYTU2ZjEzNC5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvdmFuaXR5Z2VuL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9y ZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBs YXRlCmluZGV4IDg1MjhhYzQ2MGEwYi4uZWY3ODFhNDEyZWI4IDEwMDY0NAotLS0gYS9zcmNwa2dz L3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2Vz L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncmVtb3ZlZC1w YWNrYWdlcycKIHBrZ25hbWU9cmVtb3ZlZC1wYWNrYWdlcwotdmVyc2lvbj0wLjEuMjAyMzAxMjkK K3ZlcnNpb249MC4xLjIwMjMwMTMwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9y dF9kZXNjPSJVbmluc3RhbGxzIHBhY2thZ2VzIHJlbW92ZWQgZnJvbSByZXBvc2l0b3J5IgpAQCAt NTExLDYgKzUxMSw3IEBAIHJlcGxhY2VzPSIKICB1cmxtYXRjaC1naXQ8PTIwMTQxMTE2XzIKICB1 d3NnaS1weXRob248PTIuMC4xOF8zCiAgdjg8PTMuMjQuMzUuMzNfNAorIHZhbml0eWdlbjw9MS41 M18yCiAgdmFwb3Vyc3ludGgtbXZ0b29sczw9MjNfMgogIHZrZDNkPD0xLjNfMQogIHZvbG5vdGk8 PTAuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzRiODE0YTY0Njg3 M2M4NDM5ZDNiNWVlM2EyMjc4ZTcyNzU3NTUyMWYucGF0Y2ggYi9zcmNwa2dzL3Zhbml0eWdlbi9w YXRjaGVzLzRiODE0YTY0Njg3M2M4NDM5ZDNiNWVlM2EyMjc4ZTcyNzU3NTUyMWYucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0YmQ1NGRiZjBmYi4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvdmFuaXR5Z2VuL3BhdGNoZXMvNGI4MTRhNjQ2ODczYzg0MzlkM2I1ZWUzYTIy NzhlNzI3NTc1NTIxZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNzEgKzAsMCBAQAotRnJv bSA0YjgxNGE2NDY4NzNjODQzOWQzYjVlZTNhMjI3OGU3Mjc1NzU1MjFmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogQW50b25pbyBTcGFkYXJvIDxpbG92ZWxpbnV4QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KLURhdGU6IFNhdCwgMiBKdW4gMjAxOCAyMjoyNzo1MSArMDAwMAotU3Vi amVjdDogW1BBVENIXSBGaXggT3BlblNTTCAxLjEuMCBpbmNvbXBhdGliaWxpdGllcyAoIzU2KQot Ci0qIEZpeCBvcGVuc3NsIDEuMS4wIGluY29tcGF0aWJpbGl0aWVzCi0KLSogUmVwbGFjZSBCTl9N QVNLMiB3aXRoIDB4ZmZmZmZmZmZMCi0KLSogRml4IG90aGVyIG9wZW5zc2wgMS4xLjAgaW5jb21w YXRpYmlsaXRpZXMKLQotKiBGaXggcmV0cm9jb21wYXRpYmlsaXR5IGlzc3VlCi0KLSogUmVtb3Zl IEJOX2JuMmxlYmlucGFkIGR1ZSB0byBpbmNvbXBhdGliaWxpdHkKLQotKiBGaXggb3RoZXIgaW5j b21wYXRpYmlsaXR5IGVycm9ycwotCi0qIEZpeGVkIHJldHJvY29tcGF0aWJpbGl0eSAobWF5YmUp LiBUaGFua3MgdG8gIEBEZXNXdXJzdGVzCi0KLSogRml4IE9wZW5TU0wgMS4xIGFuZCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eQotLS0tCi0ga2V5Y29udi5jICAgfCAgMTggKystLQotIG9jbGVuZ2lu ZS5jIHwgMTMwICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQotIHBhdHRlcm4uYyAgIHwgMjUy ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBw YXR0ZXJuLmggICB8ICAgOCArLQotIHV0aWwuYyAgICAgIHwgIDkwICsrKysrKysrKy0tLS0tLS0t LS0KLSB2YW5pdHlnZW4uYyB8ICAxNCArLS0KLSA2IGZpbGVzIGNoYW5nZWQsIDI3NyBpbnNlcnRp b25zKCspLCAyMzUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9rZXljb252LmMgYi9rZXlj b252LmMKLWluZGV4IGY3NDc1ZTUuLjM5NGMzYTAgMTAwNjQ0Ci0tLS0gYS9rZXljb252LmMKLSsr KyBiL2tleWNvbnYuYwotQEAgLTExNjAsNyArMTE2MCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQotIAotIAlpZiAoa2V5Ml9pbikgewotIAkJQk5fQ1RYICpibmN0eDsKLS0JCUJJR05V TSBibnRtcCwgYm50bXAyOwotKwkJQklHTlVNICpibnRtcCwgKmJudG1wMjsKLSAJCUVDX0tFWSAq cGtleTI7Ci0gCi0gCQlwa2V5MiA9IEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShOSURfc2VjcDI1 NmsxKTsKLUBAIC0xMTgyLDE5ICsxMTgyLDE5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQotIAkJCWNvbXByZXNzZWQgPSAxOwotIAkJfQotIAotLQkJQk5faW5pdCgmYm50bXApOwotLQkJ Qk5faW5pdCgmYm50bXAyKTsKLSsJCWJudG1wID0gQk5fbmV3KCk7Ci0rCQlibnRtcDIgPSBCTl9u ZXcoKTsKLSAJCWJuY3R4ID0gQk5fQ1RYX25ldygpOwotLQkJRUNfR1JPVVBfZ2V0X29yZGVyKEVD X0tFWV9nZXQwX2dyb3VwKHBrZXkpLCAmYm50bXAyLCBOVUxMKTsKLS0JCUJOX21vZF9hZGQoJmJu dG1wLAotKwkJRUNfR1JPVVBfZ2V0X29yZGVyKEVDX0tFWV9nZXQwX2dyb3VwKHBrZXkpLCBibnRt cDIsIE5VTEwpOwotKwkJQk5fbW9kX2FkZChibnRtcCwKLSAJCQkgICBFQ19LRVlfZ2V0MF9wcml2 YXRlX2tleShwa2V5KSwKLSAJCQkgICBFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShwa2V5MiksCi0t CQkJICAgJmJudG1wMiwKLSsJCQkgICBibnRtcDIsCi0gCQkJICAgYm5jdHgpOwotLQkJdmdfc2V0 X3ByaXZrZXkoJmJudG1wLCBwa2V5KTsKLSsJCXZnX3NldF9wcml2a2V5KGJudG1wLCBwa2V5KTsK LSAJCUVDX0tFWV9mcmVlKHBrZXkyKTsKLS0JCUJOX2NsZWFyX2ZyZWUoJmJudG1wKTsKLS0JCUJO X2NsZWFyX2ZyZWUoJmJudG1wMik7Ci0rCQlCTl9jbGVhcl9mcmVlKGJudG1wKTsKLSsJCUJOX2Ns ZWFyX2ZyZWUoYm50bXAyKTsKLSAJCUJOX0NUWF9mcmVlKGJuY3R4KTsKLSAJfQotIAotZGlmZiAt LWdpdCBhL29jbGVuZ2luZS5jIGIvb2NsZW5naW5lLmMKLWluZGV4IDQwODVlZGQuLjZmNjU4NDYg MTAwNjQ0Ci0tLS0gYS9vY2xlbmdpbmUuYwotKysrIGIvb2NsZW5naW5lLmMKLUBAIC00Myw2ICs0 MywzNCBAQAotICNpbmNsdWRlICJwYXR0ZXJuLmgiCi0gI2luY2x1ZGUgInV0aWwuaCIKLSAKLSsv LyBVbmZvcnR1bmF0ZWx5IHdlIG5lZWQgdGhpcyEKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJF UiA+PSAweDAwMTAxMDAwMDAKLSsjZGVmaW5lIFBQTlRfQVJST1dfWCBwcG50LT5YCi0rI2RlZmlu ZSBQUE5UX0FSUk9XX1kgcHBudC0+WQotKyNkZWZpbmUgUFBOVF9BUlJPV19aIHBwbnQtPloKLSsj ZGVmaW5lIFBQU19BUlJPV19YIHBwcy0+WAotKyNkZWZpbmUgUFBTX0FSUk9XX1kgcHBzLT5ZCi0r I2RlZmluZSBQUFNfQVJST1dfWiBwcHMtPloKLSsjZGVmaW5lIFBQVF9BUlJPV19YIHBwdC0+WAot KyNkZWZpbmUgUFBUX0FSUk9XX1kgcHB0LT5ZCi0rI2RlZmluZSBQUFJfQVJST1dfWCBwcHItPlgK LSsjZGVmaW5lIFBQUl9BUlJPV19ZIHBwci0+WQotKyNkZWZpbmUgUFBDX0FSUk9XX1ggcHBjLT5Y Ci0rI2RlZmluZSBQUENfQVJST1dfWSBwcGMtPlkKLSsjZWxzZQotKyNkZWZpbmUgUFBOVF9BUlJP V19YICZwcG50LT5YCi0rI2RlZmluZSBQUE5UX0FSUk9XX1kgJnBwbnQtPlkKLSsjZGVmaW5lIFBQ TlRfQVJST1dfWiAmcHBudC0+WgotKyNkZWZpbmUgUFBTX0FSUk9XX1ggJnBwcy0+WAotKyNkZWZp bmUgUFBTX0FSUk9XX1kgJnBwcy0+WQotKyNkZWZpbmUgUFBTX0FSUk9XX1ogJnBwcy0+WgotKyNk ZWZpbmUgUFBUX0FSUk9XX1ggJnBwdC0+WAotKyNkZWZpbmUgUFBUX0FSUk9XX1kgJnBwdC0+WQot KyNkZWZpbmUgUFBSX0FSUk9XX1ggJnBwci0+WAotKyNkZWZpbmUgUFBSX0FSUk9XX1kgJnBwci0+ WQotKyNkZWZpbmUgUFBDX0FSUk9XX1ggJnBwYy0+WAotKyNkZWZpbmUgUFBDX0FSUk9XX1kgJnBw Yy0+WQotKyNlbmRpZgotIAotICNkZWZpbmUgTUFYX1NMT1QgMgotICNkZWZpbmUgTUFYX0FSRyA2 Ci1AQCAtMTMwNywxNCArMTMzNSwyMSBAQCB2Z19vY2xfa2VybmVsX3dhaXQodmdfb2NsX2NvbnRl eHRfdCAqdm9jcCwgaW50IHNsb3QpCi0gc3RhdGljIElOTElORSB2b2lkCi0gdmdfb2NsX2dldF9i aWdudW1fcmF3KEJJR05VTSAqYm4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZikKLSB7Ci0rI2lm IE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPj0gMHgwMDEwMTAwMDAwCi0rCUJOX2xlYmluMmJuKGJ1 ZiwgMzIsIGJuKTsKLSsjZWxzZQotIAlibl9leHBhbmQoYm4sIDI1Nik7Ci0gCW1lbWNweShibi0+ ZCwgYnVmLCAzMik7Ci0gCWJuLT50b3AgPSAoMzIgLyBzaXplb2YoQk5fVUxPTkcpKTsKLSsjZW5k aWYKLSB9Ci0gCi0gc3RhdGljIElOTElORSB2b2lkCi0gdmdfb2NsX3B1dF9iaWdudW1fcmF3KHVu c2lnbmVkIGNoYXIgKmJ1ZiwgY29uc3QgQklHTlVNICpibikKLSB7Ci0rI2lmIE9QRU5TU0xfVkVS U0lPTl9OVU1CRVIgPj0gMHgwMDEwMTAwMDAwCi0rCUJOX2JuMmxlYmlucGFkKGJuLCBidWYsIDMy KTsKLSsjZWxzZQotIAlpbnQgYm5sZW4gPSAoYm4tPnRvcCAqIHNpemVvZihCTl9VTE9ORykpOwot IAlpZiAoYm5sZW4gPj0gMzIpIHsKLSAJCW1lbWNweShidWYsIGJuLT5kLCAzMik7Ci1AQCAtMTMy Miw2ICsxMzU3LDcgQEAgdmdfb2NsX3B1dF9iaWdudW1fcmF3KHVuc2lnbmVkIGNoYXIgKmJ1Ziwg Y29uc3QgQklHTlVNICpibikKLSAJCW1lbWNweShidWYsIGJuLT5kLCBibmxlbik7Ci0gCQltZW1z ZXQoYnVmICsgYm5sZW4sIDAsIDMyIC0gYm5sZW4pOwotIAl9Ci0rI2VuZGlmCi0gfQotIAotICNk ZWZpbmUgQUNDRVNTX0JVTkRMRSAxMDI0Ci1AQCAtMTM1MSw5ICsxMzg3LDE1IEBAIHZnX29jbF9n ZXRfYmlnbnVtX3RwYShCSUdOVU0gKmJuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBj ZWxsKQotIAotIHN0cnVjdCBlY19wb2ludF9zdCB7Ci0gCWNvbnN0IEVDX01FVEhPRCAqbWV0aDsK LSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+PSAweDAwMTAxMDAwMDAKLSsJQklHTlVNICpY OwotKwlCSUdOVU0gKlk7Ci0rCUJJR05VTSAqWjsKLSsjZWxzZQotIAlCSUdOVU0gWDsKLSAJQklH TlVNIFk7Ci0gCUJJR05VTSBaOwotKyNlbmRpZgotIAlpbnQgWl9pc19vbmU7Ci0gfTsKLSAKLUBA IC0xMzYxLDExICsxNDAzLDExIEBAIHN0YXRpYyBJTkxJTkUgdm9pZAotIHZnX29jbF9nZXRfcG9p bnQoRUNfUE9JTlQgKnBwbnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZikKLSB7Ci0gCXN0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyIG1vbnRfb25lW10gPSB7IDB4MDEsMHgwMCwweDAwLDB4MDMs MHhkMSB9OwotLQl2Z19vY2xfZ2V0X2JpZ251bV9yYXcoJnBwbnQtPlgsIGJ1Zik7Ci0tCXZnX29j bF9nZXRfYmlnbnVtX3JhdygmcHBudC0+WSwgYnVmICsgMzIpOwotKwl2Z19vY2xfZ2V0X2JpZ251 bV9yYXcoUFBOVF9BUlJPV19YLCBidWYpOwotKwl2Z19vY2xfZ2V0X2JpZ251bV9yYXcoUFBOVF9B UlJPV19ZLCBidWYgKyAzMik7Ci0gCWlmICghcHBudC0+Wl9pc19vbmUpIHsKLSAJCXBwbnQtPlpf aXNfb25lID0gMTsKLS0JCUJOX2JpbjJibihtb250X29uZSwgc2l6ZW9mKG1vbnRfb25lKSwgJnBw bnQtPlopOwotKwkJQk5fYmluMmJuKG1vbnRfb25lLCBzaXplb2YobW9udF9vbmUpLCBQUE5UX0FS Uk9XX1opOwotIAl9Ci0gfQotIAotQEAgLTEzNzMsOCArMTQxNSw4IEBAIHN0YXRpYyBJTkxJTkUg dm9pZAotIHZnX29jbF9wdXRfcG9pbnQodW5zaWduZWQgY2hhciAqYnVmLCBjb25zdCBFQ19QT0lO VCAqcHBudCkKLSB7Ci0gCWFzc2VydChwcG50LT5aX2lzX29uZSk7Ci0tCXZnX29jbF9wdXRfYmln bnVtX3JhdyhidWYsICZwcG50LT5YKTsKLS0Jdmdfb2NsX3B1dF9iaWdudW1fcmF3KGJ1ZiArIDMy LCAmcHBudC0+WSk7Ci0rCXZnX29jbF9wdXRfYmlnbnVtX3JhdyhidWYsIFBQTlRfQVJST1dfWCk7 Ci0rCXZnX29jbF9wdXRfYmlnbnVtX3JhdyhidWYgKyAzMiwgUFBOVF9BUlJPV19ZKTsKLSB9Ci0g Ci0gc3RhdGljIHZvaWQKLUBAIC0xNjYyLDcgKzE3MDQsNyBAQCB2Z19vY2xfdmVyaWZ5X3RlbXBv cmFyeSh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgc2xvdCwgaW50IHpfaW52ZXJ0ZWQpCi0g CXVuc2lnbmVkIGNoYXIgKm9jbF9wb2ludHNfaW4gPSBOVUxMLCAqb2NsX3N0cmlkZXNfaW4gPSBO VUxMOwotIAljb25zdCBFQ19HUk9VUCAqcGdyb3VwOwotIAlFQ19QT0lOVCAqcHByID0gTlVMTCwg KnBwYyA9IE5VTEwsICpwcHMgPSBOVUxMLCAqcHB0ID0gTlVMTDsKLS0JQklHTlVNIGJueiwgYm5l eiwgYm5tLCAqYm56YzsKLSsJQklHTlVNICpibnosICpibmV6LCAqYm5tLCAqYm56YzsKLSAJQk5f Q1RYICpibmN0eCA9IE5VTEw7Ci0gCUJOX01PTlRfQ1RYICpibm1vbnQ7Ci0gCWludCByZXQgPSAw OwotQEAgLTE2NzUsOSArMTcxNyw5IEBAIHZnX29jbF92ZXJpZnlfdGVtcG9yYXJ5KHZnX29jbF9j b250ZXh0X3QgKnZvY3AsIGludCBzbG90LCBpbnQgel9pbnZlcnRlZCkKLSAJCTB4RkYsMHhGRiww eEZGLDB4RkUsMHhGRiwweEZGLDB4RkMsMHgyRgotIAl9OwotIAotLQlCTl9pbml0KCZibnopOwot LQlCTl9pbml0KCZibmV6KTsKLS0JQk5faW5pdCgmYm5tKTsKLSsJYm56ID0gQk5fbmV3KCk7Ci0r CWJuZXogPSBCTl9uZXcoKTsKLSsJYm5tID0gQk5fbmV3KCk7Ci0gCi0gCWJuY3R4ID0gQk5fQ1RY X25ldygpOwotIAlibm1vbnQgPSBCTl9NT05UX0NUWF9uZXcoKTsKLUBAIC0xNjkyLDEzICsxNzM0 LDEzIEBAIHZnX29jbF92ZXJpZnlfdGVtcG9yYXJ5KHZnX29jbF9jb250ZXh0X3QgKnZvY3AsIGlu dCBzbG90LCBpbnQgel9pbnZlcnRlZCkKLSAJCWdvdG8gb3V0OwotIAl9Ci0gCi0tCUJOX2JpbjJi bihyYXdfbW9kdWx1cywgc2l6ZW9mKHJhd19tb2R1bHVzKSwgJmJubSk7Ci0tCUJOX01PTlRfQ1RY X3NldChibm1vbnQsICZibm0sIGJuY3R4KTsKLSsJQk5fYmluMmJuKHJhd19tb2R1bHVzLCBzaXpl b2YocmF3X21vZHVsdXMpLCBibm0pOwotKwlCTl9NT05UX0NUWF9zZXQoYm5tb250LCBibm0sIGJu Y3R4KTsKLSAKLSAJaWYgKHpfaW52ZXJ0ZWQpIHsKLS0JCWJuemMgPSAmYm5lejsKLSsJCWJuemMg PSBibmV6OwotIAl9IGVsc2UgewotLQkJYm56YyA9ICZwcHMtPlo7Ci0rCQlibnpjID0gUFBTX0FS Uk9XX1o7Ci0gCX0KLSAKLSAJel9oZWFwID0gKHVuc2lnbmVkIGNoYXIgKikKLUBAIC0xNzI2LDE1 ICsxNzY4LDE1IEBAIHZnX29jbF92ZXJpZnlfdGVtcG9yYXJ5KHZnX29jbF9jb250ZXh0X3QgKnZv Y3AsIGludCBzbG90LCBpbnQgel9pbnZlcnRlZCkKLSAJCQlFQ19QT0lOVF9hZGQocGdyb3VwLCBw cHMsIHBwYywgcHByLCBibmN0eCk7Ci0gCQkJYXNzZXJ0KCFwcHMtPlpfaXNfb25lKTsKLSAJCQl2 Z19vY2xfZ2V0X3BvaW50X3RwYShwcHQsIHBvaW50X3RtcCwgYnggKyB4KTsKLS0JCQl2Z19vY2xf Z2V0X2JpZ251bV90cGEoJmJueiwgel9oZWFwLCBieCArIHgpOwotKwkJCXZnX29jbF9nZXRfYmln bnVtX3RwYShibnosIHpfaGVhcCwgYnggKyB4KTsKLSAJCQlpZiAoel9pbnZlcnRlZCkgewotLQkJ CQlCTl9tb2RfaW52ZXJzZSgmYm5leiwgJnBwcy0+WiwgJmJubSwgYm5jdHgpOwotLQkJCQlCTl90 b19tb250Z29tZXJ5KCZibmV6LCAmYm5leiwgYm5tb250LCBibmN0eCk7Ci0tCQkJCUJOX3RvX21v bnRnb21lcnkoJmJuZXosICZibmV6LCBibm1vbnQsIGJuY3R4KTsKLSsJCQkJQk5fbW9kX2ludmVy c2UoYm5leiwgUFBTX0FSUk9XX1osIGJubSwgYm5jdHgpOwotKwkJCQlCTl90b19tb250Z29tZXJ5 KGJuZXosIGJuZXosIGJubW9udCwgYm5jdHgpOwotKwkJCQlCTl90b19tb250Z29tZXJ5KGJuZXos IGJuZXosIGJubW9udCwgYm5jdHgpOwotIAkJCX0KLS0JCQlpZiAoQk5fY21wKCZwcHQtPlgsICZw cHMtPlgpIHx8Ci0tCQkJICAgIEJOX2NtcCgmcHB0LT5ZLCAmcHBzLT5ZKSB8fAotLQkJCSAgICBC Tl9jbXAoJmJueiwgYm56YykpIHsKLSsJCQlpZiAoQk5fY21wKFBQVF9BUlJPV19YLCBQUFNfQVJS T1dfWCkgfHwKLSsJCQkgICAgQk5fY21wKFBQVF9BUlJPV19ZLCBQUFNfQVJST1dfWSkgfHwKLSsJ CQkgICAgQk5fY21wKGJueiwgYm56YykpIHsKLSAJCQkJaWYgKCFtaXNtYXRjaGVzKSB7Ci0gCQkJ CQlmcHJpbnRmKHN0ZGVyciwgIkJhc2UgcHJpdmtleTogIik7Ci0gCQkJCQlmZHVtcGJuKHN0ZGVy ciwgRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkoCi1AQCAtMTc0NywzMyArMTc4OSwzMyBAQCB2Z19v Y2xfdmVyaWZ5X3RlbXBvcmFyeSh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBpbnQgc2xvdCwgaW50 IHpfaW52ZXJ0ZWQpCi0gCQkJCWlmICghbW1fcikgewotIAkJCQkJbW1fciA9IDE7Ci0gCQkJCQlm cHJpbnRmKHN0ZGVyciwgIlJvdyBYICAgOiAiKTsKLS0JCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHBy LT5YKTsKLSsJCQkJCWZkdW1wYm4oc3RkZXJyLCBQUFJfQVJST1dfWCk7Ci0gCQkJCQlmcHJpbnRm KHN0ZGVyciwgIlJvdyBZICAgOiAiKTsKLS0JCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHByLT5ZKTsK LSsJCQkJCWZkdW1wYm4oc3RkZXJyLCBQUFNfQVJST1dfWSk7Ci0gCQkJCX0KLSAKLSAJCQkJZnBy aW50ZihzdGRlcnIsICJDb2x1bW4gWDogIik7Ci0tCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHBjLT5Y KTsKLSsJCQkJZmR1bXBibihzdGRlcnIsIFBQQ19BUlJPV19YKTsKLSAJCQkJZnByaW50ZihzdGRl cnIsICJDb2x1bW4gWTogIik7Ci0tCQkJCWZkdW1wYm4oc3RkZXJyLCAmcHBjLT5ZKTsKLSsJCQkJ ZmR1bXBibihzdGRlcnIsIFBQQ19BUlJPV19ZKTsKLSAKLS0JCQkJaWYgKEJOX2NtcCgmcHB0LT5Y LCAmcHBzLT5YKSkgewotKwkJCQlpZiAoQk5fY21wKFBQVF9BUlJPV19YLCBQUFNfQVJST1dfWCkp IHsKLSAJCQkJCWZwcmludGYoc3RkZXJyLCAiRXhwZWN0IFg6ICIpOwotLQkJCQkJZmR1bXBibihz dGRlcnIsICZwcHMtPlgpOwotKwkJCQkJZmR1bXBibihzdGRlcnIsIFBQU19BUlJPV19YKTsKLSAJ CQkJCWZwcmludGYoc3RkZXJyLCAiRGV2aWNlIFg6ICIpOwotLQkJCQkJZmR1bXBibihzdGRlcnIs ICZwcHQtPlgpOwotKwkJCQkJZmR1bXBibihzdGRlcnIsIFBQVF9BUlJPV19YKTsKLSAJCQkJfQot LQkJCQlpZiAoQk5fY21wKCZwcHQtPlksICZwcHMtPlkpKSB7Ci0rCQkJCWlmIChCTl9jbXAoUFBU X0FSUk9XX1ksIFBQU19BUlJPV19ZKSkgewotIAkJCQkJZnByaW50ZihzdGRlcnIsICJFeHBlY3Qg WTogIik7Ci0tCQkJCQlmZHVtcGJuKHN0ZGVyciwgJnBwcy0+WSk7Ci0rCQkJCQlmZHVtcGJuKHN0 ZGVyciwgUFBTX0FSUk9XX1kpOwotIAkJCQkJZnByaW50ZihzdGRlcnIsICJEZXZpY2UgWTogIik7 Ci0tCQkJCQlmZHVtcGJuKHN0ZGVyciwgJnBwdC0+WSk7Ci0rCQkJCQlmZHVtcGJuKHN0ZGVyciwg UFBUX0FSUk9XX1kpOwotIAkJCQl9Ci0tCQkJCWlmIChCTl9jbXAoJmJueiwgYm56YykpIHsKLSsJ CQkJaWYgKEJOX2NtcChibnosIGJuemMpKSB7Ci0gCQkJCQlmcHJpbnRmKHN0ZGVyciwgIkV4cGVj dCBaOiAiKTsKLSAJCQkJCWZkdW1wYm4oc3RkZXJyLCBibnpjKTsKLSAJCQkJCWZwcmludGYoc3Rk ZXJyLCAiRGV2aWNlIFo6ICIpOwotLQkJCQkJZmR1bXBibihzdGRlcnIsICZibnopOwotKwkJCQkJ ZmR1bXBibihzdGRlcnIsIGJueik7Ci0gCQkJCX0KLSAJCQl9Ci0gCQl9Ci1AQCAtMTc5OCw5ICsx ODQwLDkgQEAgdmdfb2NsX3ZlcmlmeV90ZW1wb3Jhcnkodmdfb2NsX2NvbnRleHRfdCAqdm9jcCwg aW50IHNsb3QsIGludCB6X2ludmVydGVkKQotIAkJRUNfUE9JTlRfZnJlZShwcHMpOwotIAlpZiAo cHB0KQotIAkJRUNfUE9JTlRfZnJlZShwcHQpOwotLQlCTl9jbGVhcl9mcmVlKCZibnopOwotLQlC Tl9jbGVhcl9mcmVlKCZibmV6KTsKLS0JQk5fY2xlYXJfZnJlZSgmYm5tKTsKLSsJQk5fY2xlYXJf ZnJlZShibnopOwotKwlCTl9jbGVhcl9mcmVlKGJuZXopOwotKwlCTl9jbGVhcl9mcmVlKGJubSk7 Ci0gCWlmIChibm1vbnQpCi0gCQlCTl9NT05UX0NUWF9mcmVlKGJubW9udCk7Ci0gCWlmIChibmN0 eCkKLUBAIC0xOTcxLDEzICsyMDEzLDEzIEBAIHZnX29wZW5jbF9sb29wKHZnX2V4ZWNfY29udGV4 dF90ICphcmcpCi0gCWlmICghcGJhdGNoaW5jIHx8ICFwb2Zmc2V0IHx8ICFwc2VlaykKLSAJCWdv dG8gZW5vbWVtOwotIAotLQlCTl9zZXRfd29yZCgmdnhjcC0+dnhjX2JudG1wLCBuY29scyk7Ci0t CUVDX1BPSU5UX211bChwZ3JvdXAsIHBiYXRjaGluYywgJnZ4Y3AtPnZ4Y19ibnRtcCwgTlVMTCwg TlVMTCwKLSsJQk5fc2V0X3dvcmQodnhjcC0+dnhjX2JudG1wLCBuY29scyk7Ci0rCUVDX1BPSU5U X211bChwZ3JvdXAsIHBiYXRjaGluYywgdnhjcC0+dnhjX2JudG1wLCBOVUxMLCBOVUxMLAotIAkJ ICAgICB2eGNwLT52eGNfYm5jdHgpOwotIAlFQ19QT0lOVF9tYWtlX2FmZmluZShwZ3JvdXAsIHBi YXRjaGluYywgdnhjcC0+dnhjX2JuY3R4KTsKLSAKLS0JQk5fc2V0X3dvcmQoJnZ4Y3AtPnZ4Y19i bnRtcCwgcm91bmQpOwotLQlFQ19QT0lOVF9tdWwocGdyb3VwLCBwb2Zmc2V0LCAmdnhjcC0+dnhj X2JudG1wLCBOVUxMLCBOVUxMLAotKwlCTl9zZXRfd29yZCh2eGNwLT52eGNfYm50bXAsIHJvdW5k KTsKLSsJRUNfUE9JTlRfbXVsKHBncm91cCwgcG9mZnNldCwgdnhjcC0+dnhjX2JudG1wLCBOVUxM LCBOVUxMLAotIAkJICAgICB2eGNwLT52eGNfYm5jdHgpOwotIAlFQ19QT0lOVF9tYWtlX2FmZmlu ZShwZ3JvdXAsIHBvZmZzZXQsIHZ4Y3AtPnZ4Y19ibmN0eCk7Ci0gCi1AQCAtMjA0NiwxMiArMjA4 OCwxMiBAQCB2Z19vcGVuY2xfbG9vcCh2Z19leGVjX2NvbnRleHRfdCAqYXJnKQotIAl9Ci0gCi0g CS8qIERldGVybWluZSByZWtleSBpbnRlcnZhbCAqLwotLQlFQ19HUk9VUF9nZXRfb3JkZXIocGdy b3VwLCAmdnhjcC0+dnhjX2JudG1wLCB2eGNwLT52eGNfYm5jdHgpOwotLQlCTl9zdWIoJnZ4Y3At PnZ4Y19ibnRtcDIsCi0tCSAgICAgICAmdnhjcC0+dnhjX2JudG1wLAotKwlFQ19HUk9VUF9nZXRf b3JkZXIocGdyb3VwLCB2eGNwLT52eGNfYm50bXAsIHZ4Y3AtPnZ4Y19ibmN0eCk7Ci0rCUJOX3N1 Yih2eGNwLT52eGNfYm50bXAyLAotKwkgICAgICAgdnhjcC0+dnhjX2JudG1wLAotIAkgICAgICAg RUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkocGtleSkpOwotLQlyZWtleV9hdCA9IEJOX2dldF93b3Jk KCZ2eGNwLT52eGNfYm50bXAyKTsKLS0JaWYgKChyZWtleV9hdCA9PSBCTl9NQVNLMikgfHwgKHJl a2V5X2F0ID4gcmVrZXlfbWF4KSkKLSsJcmVrZXlfYXQgPSBCTl9nZXRfd29yZCh2eGNwLT52eGNf Ym50bXAyKTsKLSsJaWYgKChyZWtleV9hdCA9PSAweGZmZmZmZmZmTCkgfHwgKHJla2V5X2F0ID4g cmVrZXlfbWF4KSkKLSAJCXJla2V5X2F0ID0gcmVrZXlfbWF4OwotIAlhc3NlcnQocmVrZXlfYXQg PiAwKTsKLSAKLWRpZmYgLS1naXQgYS9wYXR0ZXJuLmMgYi9wYXR0ZXJuLmMKLWluZGV4IGI4NDMz NGUuLjU2NzNhN2UgMTAwNjQ0Ci0tLS0gYS9wYXR0ZXJuLmMKLSsrKyBiL3BhdHRlcm4uYwotQEAg LTE1MSwxMiArMTUxLDEyIEBAIHZnX2V4ZWNfY29udGV4dF9pbml0KHZnX2NvbnRleHRfdCAqdmNw LCB2Z19leGVjX2NvbnRleHRfdCAqdnhjcCkKLSAKLSAJdnhjcC0+dnhjX3ZjID0gdmNwOwotIAot LQlCTl9pbml0KCZ2eGNwLT52eGNfYm50YXJnKTsKLS0JQk5faW5pdCgmdnhjcC0+dnhjX2JuYmFz ZSk7Ci0tCUJOX2luaXQoJnZ4Y3AtPnZ4Y19ibnRtcCk7Ci0tCUJOX2luaXQoJnZ4Y3AtPnZ4Y19i bnRtcDIpOwotKwl2eGNwLT52eGNfYm50YXJnID0gQk5fbmV3KCk7Ci0rCXZ4Y3AtPnZ4Y19ibmJh c2UgPSBCTl9uZXcoKTsKLSsJdnhjcC0+dnhjX2JudG1wID0gQk5fbmV3KCk7Ci0rCXZ4Y3AtPnZ4 Y19ibnRtcDIgPSBCTl9uZXcoKTsKLSAKLS0JQk5fc2V0X3dvcmQoJnZ4Y3AtPnZ4Y19ibmJhc2Us IDU4KTsKLSsJQk5fc2V0X3dvcmQodnhjcC0+dnhjX2JuYmFzZSwgNTgpOwotIAotIAl2eGNwLT52 eGNfYm5jdHggPSBCTl9DVFhfbmV3KCk7Ci0gCWFzc2VydCh2eGNwLT52eGNfYm5jdHgpOwotQEAg LTE5NiwxMCArMTk2LDEwIEBAIHZnX2V4ZWNfY29udGV4dF9kZWwodmdfZXhlY19jb250ZXh0X3Qg KnZ4Y3ApCi0gCWlmICh0cC0+dnhjX3N0b3ApCi0gCQlwdGhyZWFkX2NvbmRfc2lnbmFsKCZ2Z190 aHJlYWRfdXBjb25kKTsKLSAKLS0JQk5fY2xlYXJfZnJlZSgmdnhjcC0+dnhjX2JudGFyZyk7Ci0t CUJOX2NsZWFyX2ZyZWUoJnZ4Y3AtPnZ4Y19ibmJhc2UpOwotLQlCTl9jbGVhcl9mcmVlKCZ2eGNw LT52eGNfYm50bXApOwotLQlCTl9jbGVhcl9mcmVlKCZ2eGNwLT52eGNfYm50bXAyKTsKLSsJQk5f Y2xlYXJfZnJlZSh2eGNwLT52eGNfYm50YXJnKTsKLSsJQk5fY2xlYXJfZnJlZSh2eGNwLT52eGNf Ym5iYXNlKTsKLSsJQk5fY2xlYXJfZnJlZSh2eGNwLT52eGNfYm50bXApOwotKwlCTl9jbGVhcl9m cmVlKHZ4Y3AtPnZ4Y19ibnRtcDIpOwotIAlCTl9DVFhfZnJlZSh2eGNwLT52eGNfYm5jdHgpOwot IAl2eGNwLT52eGNfYm5jdHggPSBOVUxMOwotIAlwdGhyZWFkX211dGV4X3VubG9jaygmdmdfdGhy ZWFkX2xvY2spOwotQEAgLTIyNSwxMiArMjI1LDEyIEBAIHZvaWQKLSB2Z19leGVjX2NvbnRleHRf Y29uc29saWRhdGVfa2V5KHZnX2V4ZWNfY29udGV4dF90ICp2eGNwKQotIHsKLSAJaWYgKHZ4Y3At PnZ4Y19kZWx0YSkgewotLQkJQk5fY2xlYXIoJnZ4Y3AtPnZ4Y19ibnRtcCk7Ci0tCQlCTl9zZXRf d29yZCgmdnhjcC0+dnhjX2JudG1wLCB2eGNwLT52eGNfZGVsdGEpOwotLQkJQk5fYWRkKCZ2eGNw LT52eGNfYm50bXAyLAotKwkJQk5fY2xlYXIodnhjcC0+dnhjX2JudG1wKTsKLSsJCUJOX3NldF93 b3JkKHZ4Y3AtPnZ4Y19ibnRtcCwgdnhjcC0+dnhjX2RlbHRhKTsKLSsJCUJOX2FkZCh2eGNwLT52 eGNfYm50bXAyLAotIAkJICAgICAgIEVDX0tFWV9nZXQwX3ByaXZhdGVfa2V5KHZ4Y3AtPnZ4Y19r ZXkpLAotLQkJICAgICAgICZ2eGNwLT52eGNfYm50bXApOwotLQkJdmdfc2V0X3ByaXZrZXkoJnZ4 Y3AtPnZ4Y19ibnRtcDIsIHZ4Y3AtPnZ4Y19rZXkpOwotKwkJICAgICAgIHZ4Y3AtPnZ4Y19ibnRt cCk7Ci0rCQl2Z19zZXRfcHJpdmtleSh2eGNwLT52eGNfYm50bXAyLCB2eGNwLT52eGNfa2V5KTsK LSAJCXZ4Y3AtPnZ4Y19kZWx0YSA9IDA7Ci0gCX0KLSB9Ci1AQCAtNzUxLDIwICs3NTEsMjAgQEAg Z2V0X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25zdCBjaGFyICpwZngsIEJJR05VTSAq KnJlc3VsdCwKLSAJaW50IGI1OHBvdywgYjU4Y2VpbCwgYjU4dG9wID0gMDsKLSAJaW50IHJldCA9 IC0xOwotIAotLQlCSUdOVU0gYm50YXJnLCBibmNlaWwsIGJuZmxvb3I7Ci0tCUJJR05VTSBibmJh c2U7Ci0rCUJJR05VTSAqYm50YXJnLCAqYm5jZWlsLCAqYm5mbG9vcjsKLSsJQklHTlVNICpibmJh c2U7Ci0gCUJJR05VTSAqYm5hcCwgKmJuYnAsICpibnRwOwotIAlCSUdOVU0gKmJuaGlnaCA9IE5V TEwsICpibmxvdyA9IE5VTEwsICpibmhpZ2gyID0gTlVMTCwgKmJubG93MiA9IE5VTEw7Ci0tCUJJ R05VTSBibnRtcCwgYm50bXAyOwotKwlCSUdOVU0gKmJudG1wLCAqYm50bXAyOwotIAotLQlCTl9p bml0KCZibnRhcmcpOwotLQlCTl9pbml0KCZibmNlaWwpOwotLQlCTl9pbml0KCZibmZsb29yKTsK LS0JQk5faW5pdCgmYm5iYXNlKTsKLS0JQk5faW5pdCgmYm50bXApOwotLQlCTl9pbml0KCZibnRt cDIpOwotKwlibnRhcmcgPSBCTl9uZXcoKTsKLSsJYm5jZWlsID0gQk5fbmV3KCk7Ci0rCWJuZmxv b3IgPSBCTl9uZXcoKTsKLSsJYm5iYXNlID0gQk5fbmV3KCk7Ci0rCWJudG1wID0gQk5fbmV3KCk7 Ci0rCWJudG1wMiA9IEJOX25ldygpOwotIAotLQlCTl9zZXRfd29yZCgmYm5iYXNlLCA1OCk7Ci0r CUJOX3NldF93b3JkKGJuYmFzZSwgNTgpOwotIAotIAlwID0gc3RybGVuKHBmeCk7Ci0gCi1AQCAt NzkxLDIwICs3OTEsMjAgQEAgZ2V0X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25zdCBj aGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwKLSAKLSAJCQkvKiBGaXJzdCBub24temVybyBjaGFy YWN0ZXIgKi8KLSAJCQliNTh0b3AgPSBjOwotLQkJCUJOX3NldF93b3JkKCZibnRhcmcsIGMpOwot KwkJCUJOX3NldF93b3JkKGJudGFyZywgYyk7Ci0gCi0gCQl9IGVsc2UgewotLQkJCUJOX3NldF93 b3JkKCZibnRtcDIsIGMpOwotLQkJCUJOX211bCgmYm50bXAsICZibnRhcmcsICZibmJhc2UsIGJu Y3R4KTsKLS0JCQlCTl9hZGQoJmJudGFyZywgJmJudG1wLCAmYm50bXAyKTsKLSsJCQlCTl9zZXRf d29yZChibnRtcDIsIGMpOwotKwkJCUJOX211bChibnRtcCwgYm50YXJnLCBibmJhc2UsIGJuY3R4 KTsKLSsJCQlCTl9hZGQoYm50YXJnLCBibnRtcCwgYm50bXAyKTsKLSAJCX0KLSAJfQotIAotIAkv KiBQb3dlci1vZi10d28gY2VpbGluZyBhbmQgZmxvb3IgdmFsdWVzIGJhc2VkIG9uIGxlYWRpbmcg MXMgKi8KLS0JQk5fY2xlYXIoJmJudG1wKTsKLS0JQk5fc2V0X2JpdCgmYm50bXAsIDIwMCAtICh6 ZXJvX3ByZWZpeCAqIDgpKTsKLS0JQk5fc3ViKCZibmNlaWwsICZibnRtcCwgQk5fdmFsdWVfb25l KCkpOwotLQlCTl9zZXRfYml0KCZibmZsb29yLCAxOTIgLSAoemVyb19wcmVmaXggKiA4KSk7Ci0r CUJOX2NsZWFyKGJudG1wKTsKLSsJQk5fc2V0X2JpdChibnRtcCwgMjAwIC0gKHplcm9fcHJlZml4 ICogOCkpOwotKwlCTl9zdWIoYm5jZWlsLCBibnRtcCwgQk5fdmFsdWVfb25lKCkpOwotKwlCTl9z ZXRfYml0KGJuZmxvb3IsIDE5MiAtICh6ZXJvX3ByZWZpeCAqIDgpKTsKLSAKLSAJYm5sb3cgPSBC Tl9uZXcoKTsKLSAJYm5oaWdoID0gQk5fbmV3KCk7Ci1AQCAtODE1LDEzICs4MTUsMTMgQEAgZ2V0 X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25zdCBjaGFyICpwZngsIEJJR05VTSAqKnJl c3VsdCwKLSAJCSAqIG51bWVyaWMgYm91bmRhcmllcyBvZiB0aGUgcHJlZml4LgotIAkJICovCi0g Ci0tCQlCTl9jb3B5KCZibnRtcCwgJmJuY2VpbCk7Ci0tCQlibmFwID0gJmJudG1wOwotLQkJYm5i cCA9ICZibnRtcDI7Ci0rCQlCTl9jb3B5KGJudG1wLCBibmNlaWwpOwotKwkJYm5hcCA9IGJudG1w OwotKwkJYm5icCA9IGJudG1wMjsKLSAJCWI1OHBvdyA9IDA7Ci0tCQl3aGlsZSAoQk5fY21wKGJu YXAsICZibmJhc2UpID4gMCkgewotKwkJd2hpbGUgKEJOX2NtcChibmFwLCBibmJhc2UpID4gMCkg ewotIAkJCWI1OHBvdysrOwotLQkJCUJOX2RpdihibmJwLCBOVUxMLCBibmFwLCAmYm5iYXNlLCBi bmN0eCk7Ci0rCQkJQk5fZGl2KGJuYnAsIE5VTEwsIGJuYXAsIGJuYmFzZSwgYm5jdHgpOwotIAkJ CWJudHAgPSBibmFwOwotIAkJCWJuYXAgPSBibmJwOwotIAkJCWJuYnAgPSBibnRwOwotQEAgLTgz NywxMSArODM3LDExIEBAIGdldF9wcmVmaXhfcmFuZ2VzKGludCBhZGRydHlwZSwgY29uc3QgY2hh ciAqcGZ4LCBCSUdOVU0gKipyZXN1bHQsCi0gCQkJLyogZ290byBvdXQ7ICovCi0gCQl9Ci0gCi0t CQlCTl9zZXRfd29yZCgmYm50bXAyLCBiNThwb3cgLSAocCAtIHplcm9fcHJlZml4KSk7Ci0tCQlC Tl9leHAoJmJudG1wLCAmYm5iYXNlLCAmYm50bXAyLCBibmN0eCk7Ci0tCQlCTl9tdWwoYm5sb3cs ICZibnRtcCwgJmJudGFyZywgYm5jdHgpOwotLQkJQk5fc3ViKCZibnRtcDIsICZibnRtcCwgQk5f dmFsdWVfb25lKCkpOwotLQkJQk5fYWRkKGJuaGlnaCwgYm5sb3csICZibnRtcDIpOwotKwkJQk5f c2V0X3dvcmQoYm50bXAyLCBiNThwb3cgLSAocCAtIHplcm9fcHJlZml4KSk7Ci0rCQlCTl9leHAo Ym50bXAsIGJuYmFzZSwgYm50bXAyLCBibmN0eCk7Ci0rCQlCTl9tdWwoYm5sb3csIGJudG1wLCBi bnRhcmcsIGJuY3R4KTsKLSsJCUJOX3N1YihibnRtcDIsIGJudG1wLCBCTl92YWx1ZV9vbmUoKSk7 Ci0rCQlCTl9hZGQoYm5oaWdoLCBibmxvdywgYm50bXAyKTsKLSAKLSAJCWlmIChiNTh0b3AgPD0g YjU4Y2VpbCkgewotIAkJCS8qIEZpbGwgb3V0IHRoZSB1cHBlciByYW5nZSB0b28gKi8KLUBAIC04 NDksMTYgKzg0OSwxNiBAQCBnZXRfcHJlZml4X3JhbmdlcyhpbnQgYWRkcnR5cGUsIGNvbnN0IGNo YXIgKnBmeCwgQklHTlVNICoqcmVzdWx0LAotIAkJCWJubG93MiA9IEJOX25ldygpOwotIAkJCWJu aGlnaDIgPSBCTl9uZXcoKTsKLSAKLS0JCQlCTl9tdWwoYm5sb3cyLCBibmxvdywgJmJuYmFzZSwg Ym5jdHgpOwotLQkJCUJOX211bCgmYm50bXAyLCBibmhpZ2gsICZibmJhc2UsIGJuY3R4KTsKLS0J CQlCTl9zZXRfd29yZCgmYm50bXAsIDU3KTsKLS0JCQlCTl9hZGQoYm5oaWdoMiwgJmJudG1wMiwg JmJudG1wKTsKLSsJCQlCTl9tdWwoYm5sb3cyLCBibmxvdywgYm5iYXNlLCBibmN0eCk7Ci0rCQkJ Qk5fbXVsKGJudG1wMiwgYm5oaWdoLCBibmJhc2UsIGJuY3R4KTsKLSsJCQlCTl9zZXRfd29yZChi bnRtcCwgNTcpOwotKwkJCUJOX2FkZChibmhpZ2gyLCBibnRtcDIsIGJudG1wKTsKLSAKLSAJCQkv KgotIAkJCSAqIEFkZHJlc3NlcyBhYm92ZSB0aGUgY2VpbGluZyB3aWxsIGhhdmUgb25lCi0gCQkJ ICogZmV3ZXIgIjEiIHByZWZpeCBpbiBmcm9udCB0aGFuIHdlIHJlcXVpcmUuCi0gCQkJICovCi0t CQkJaWYgKEJOX2NtcCgmYm5jZWlsLCBibmxvdzIpIDwgMCkgewotKwkJCWlmIChCTl9jbXAoYm5j ZWlsLCBibmxvdzIpIDwgMCkgewotIAkJCQkvKiBIaWdoIHByZWZpeCBpcyBhYm92ZSB0aGUgY2Vp bGluZyAqLwotIAkJCQljaGVja191cHBlciA9IDA7Ci0gCQkJCUJOX2ZyZWUoYm5oaWdoMik7Ci1A QCAtODY2LDE1ICs4NjYsMTUgQEAgZ2V0X3ByZWZpeF9yYW5nZXMoaW50IGFkZHJ0eXBlLCBjb25z dCBjaGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwKLSAJCQkJQk5fZnJlZShibmxvdzIpOwotIAkJ CQlibmxvdzIgPSBOVUxMOwotIAkJCX0KLS0JCQllbHNlIGlmIChCTl9jbXAoJmJuY2VpbCwgYm5o aWdoMikgPCAwKQotKwkJCWVsc2UgaWYgKEJOX2NtcChibmNlaWwsIGJuaGlnaDIpIDwgMCkKLSAJ CQkJLyogSGlnaCBwcmVmaXggaXMgcGFydGx5IGFib3ZlIHRoZSBjZWlsaW5nICovCi0tCQkJCUJO X2NvcHkoYm5oaWdoMiwgJmJuY2VpbCk7Ci0rCQkJCUJOX2NvcHkoYm5oaWdoMiwgYm5jZWlsKTsK LSAKLSAJCQkvKgotIAkJCSAqIEFkZHJlc3NlcyBiZWxvdyB0aGUgZmxvb3Igd2lsbCBoYXZlIGFu b3RoZXIKLSAJCQkgKiAiMSIgcHJlZml4IGluIGZyb250IGluc3RlYWQgb2Ygb3VyIHRhcmdldC4K LSAJCQkgKi8KLS0JCQlpZiAoQk5fY21wKCZibmZsb29yLCBibmhpZ2gpID49IDApIHsKLSsJCQlp ZiAoQk5fY21wKGJuZmxvb3IsIGJuaGlnaCkgPj0gMCkgewotIAkJCQkvKiBMb3cgcHJlZml4IGlz IGNvbXBsZXRlbHkgYmVsb3cgdGhlIGZsb29yICovCi0gCQkJCWFzc2VydChjaGVja191cHBlcik7 Ci0gCQkJCWNoZWNrX3VwcGVyID0gMDsKLUBAIC04ODUsMzUgKzg4NSwzNSBAQCBnZXRfcHJlZml4 X3JhbmdlcyhpbnQgYWRkcnR5cGUsIGNvbnN0IGNoYXIgKnBmeCwgQklHTlVNICoqcmVzdWx0LAot IAkJCQlibmxvdyA9IGJubG93MjsKLSAJCQkJYm5sb3cyID0gTlVMTDsKLSAJCQl9CQkJCi0tCQkJ ZWxzZSBpZiAoQk5fY21wKCZibmZsb29yLCBibmxvdykgPiAwKSB7Ci0rCQkJZWxzZSBpZiAoQk5f Y21wKGJuZmxvb3IsIGJubG93KSA+IDApIHsKLSAJCQkJLyogTG93IHByZWZpeCBpcyBwYXJ0bHkg YmVsb3cgdGhlIGZsb29yICovCi0tCQkJCUJOX2NvcHkoYm5sb3csICZibmZsb29yKTsKLSsJCQkJ Qk5fY29weShibmxvdywgYm5mbG9vcik7Ci0gCQkJfQotIAkJfQotIAotIAl9IGVsc2UgewotLQkJ Qk5fY29weShibmhpZ2gsICZibmNlaWwpOwotKwkJQk5fY29weShibmhpZ2gsIGJuY2VpbCk7Ci0g CQlCTl9jbGVhcihibmxvdyk7Ci0gCX0KLSAKLSAJLyogTGltaXQgdGhlIHByZWZpeCB0byB0aGUg YWRkcmVzcyB0eXBlICovCi0tCUJOX2NsZWFyKCZibnRtcCk7Ci0tCUJOX3NldF93b3JkKCZibnRt cCwgYWRkcnR5cGUpOwotLQlCTl9sc2hpZnQoJmJudG1wMiwgJmJudG1wLCAxOTIpOwotKwlCTl9j bGVhcihibnRtcCk7Ci0rCUJOX3NldF93b3JkKGJudG1wLCBhZGRydHlwZSk7Ci0rCUJOX2xzaGlm dChibnRtcDIsIGJudG1wLCAxOTIpOwotIAotIAlpZiAoY2hlY2tfdXBwZXIpIHsKLS0JCWlmIChC Tl9jbXAoJmJudG1wMiwgYm5oaWdoMikgPiAwKSB7Ci0rCQlpZiAoQk5fY21wKGJudG1wMiwgYm5o aWdoMikgPiAwKSB7Ci0gCQkJY2hlY2tfdXBwZXIgPSAwOwotIAkJCUJOX2ZyZWUoYm5oaWdoMik7 Ci0gCQkJYm5oaWdoMiA9IE5VTEw7Ci0gCQkJQk5fZnJlZShibmxvdzIpOwotIAkJCWJubG93MiA9 IE5VTEw7Ci0gCQl9Ci0tCQllbHNlIGlmIChCTl9jbXAoJmJudG1wMiwgYm5sb3cyKSA+IDApCi0t CQkJQk5fY29weShibmxvdzIsICZibnRtcDIpOwotKwkJZWxzZSBpZiAoQk5fY21wKGJudG1wMiwg Ym5sb3cyKSA+IDApCi0rCQkJQk5fY29weShibmxvdzIsIGJudG1wMik7Ci0gCX0KLSAKLS0JaWYg KEJOX2NtcCgmYm50bXAyLCBibmhpZ2gpID4gMCkgewotKwlpZiAoQk5fY21wKGJudG1wMiwgYm5o aWdoKSA+IDApIHsKLSAJCWlmICghY2hlY2tfdXBwZXIpCi0gCQkJZ290byBub3RfcG9zc2libGU7 Ci0gCQljaGVja191cHBlciA9IDA7Ci1AQCAtOTI0LDI2ICs5MjQsMjYgQEAgZ2V0X3ByZWZpeF9y YW5nZXMoaW50IGFkZHJ0eXBlLCBjb25zdCBjaGFyICpwZngsIEJJR05VTSAqKnJlc3VsdCwKLSAJ CWJubG93ID0gYm5sb3cyOwotIAkJYm5sb3cyID0gTlVMTDsKLSAJfQotLQllbHNlIGlmIChCTl9j bXAoJmJudG1wMiwgYm5sb3cpID4gMCkgewotLQkJQk5fY29weShibmxvdywgJmJudG1wMik7Ci0r CWVsc2UgaWYgKEJOX2NtcChibnRtcDIsIGJubG93KSA+IDApIHsKLSsJCUJOX2NvcHkoYm5sb3cs IGJudG1wMik7Ci0gCX0KLSAKLS0JQk5fc2V0X3dvcmQoJmJudG1wLCBhZGRydHlwZSArIDEpOwot LQlCTl9sc2hpZnQoJmJudG1wMiwgJmJudG1wLCAxOTIpOwotKwlCTl9zZXRfd29yZChibnRtcCwg YWRkcnR5cGUgKyAxKTsKLSsJQk5fbHNoaWZ0KGJudG1wMiwgYm50bXAsIDE5Mik7Ci0gCi0gCWlm IChjaGVja191cHBlcikgewotLQkJaWYgKEJOX2NtcCgmYm50bXAyLCBibmxvdzIpIDwgMCkgewot KwkJaWYgKEJOX2NtcChibnRtcDIsIGJubG93MikgPCAwKSB7Ci0gCQkJY2hlY2tfdXBwZXIgPSAw OwotIAkJCUJOX2ZyZWUoYm5oaWdoMik7Ci0gCQkJYm5oaWdoMiA9IE5VTEw7Ci0gCQkJQk5fZnJl ZShibmxvdzIpOwotIAkJCWJubG93MiA9IE5VTEw7Ci0gCQl9Ci0tCQllbHNlIGlmIChCTl9jbXAo JmJudG1wMiwgYm5oaWdoMikgPCAwKQotLQkJCUJOX2NvcHkoYm5sb3cyLCAmYm50bXAyKTsKLSsJ CWVsc2UgaWYgKEJOX2NtcChibnRtcDIsIGJuaGlnaDIpIDwgMCkKLSsJCQlCTl9jb3B5KGJubG93 MiwgYm50bXAyKTsKLSAJfQotIAotLQlpZiAoQk5fY21wKCZibnRtcDIsIGJubG93KSA8IDApIHsK LSsJaWYgKEJOX2NtcChibnRtcDIsIGJubG93KSA8IDApIHsKLSAJCWlmICghY2hlY2tfdXBwZXIp Ci0gCQkJZ290byBub3RfcG9zc2libGU7Ci0gCQljaGVja191cHBlciA9IDA7Ci1AQCAtOTU0LDgg Kzk1NCw4IEBAIGdldF9wcmVmaXhfcmFuZ2VzKGludCBhZGRydHlwZSwgY29uc3QgY2hhciAqcGZ4 LCBCSUdOVU0gKipyZXN1bHQsCi0gCQlibmxvdyA9IGJubG93MjsKLSAJCWJubG93MiA9IE5VTEw7 Ci0gCX0KLS0JZWxzZSBpZiAoQk5fY21wKCZibnRtcDIsIGJuaGlnaCkgPCAwKSB7Ci0tCQlCTl9j b3B5KGJuaGlnaCwgJmJudG1wMik7Ci0rCWVsc2UgaWYgKEJOX2NtcChibnRtcDIsIGJuaGlnaCkg PCAwKSB7Ci0rCQlCTl9jb3B5KGJuaGlnaCwgYm50bXAyKTsKLSAJfQotIAotIAkvKiBBZGRyZXNz IHJhbmdlcyBhcmUgY29tcGxldGUgKi8KLUBAIC05NzYsMTIgKzk3NiwxMiBAQCBnZXRfcHJlZml4 X3JhbmdlcyhpbnQgYWRkcnR5cGUsIGNvbnN0IGNoYXIgKnBmeCwgQklHTlVNICoqcmVzdWx0LAot IAl9Ci0gCi0gb3V0OgotLQlCTl9jbGVhcl9mcmVlKCZibnRhcmcpOwotLQlCTl9jbGVhcl9mcmVl KCZibmNlaWwpOwotLQlCTl9jbGVhcl9mcmVlKCZibmZsb29yKTsKLS0JQk5fY2xlYXJfZnJlZSgm Ym5iYXNlKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm50bXApOwotLQlCTl9jbGVhcl9mcmVlKCZibnRt cDIpOwotKwlCTl9jbGVhcl9mcmVlKGJudGFyZyk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm5jZWlsKTsK LSsJQk5fY2xlYXJfZnJlZShibmZsb29yKTsKLSsJQk5fY2xlYXJfZnJlZShibmJhc2UpOwotKwlC Tl9jbGVhcl9mcmVlKGJudG1wKTsKLSsJQk5fY2xlYXJfZnJlZShibnRtcDIpOwotIAlpZiAoYm5o aWdoKQotIAkJQk5fZnJlZShibmhpZ2gpOwotIAlpZiAoYm5sb3cpCi1AQCAtMTI2Niw3ICsxMjY2 LDcgQEAgcHJlZml4X2Nhc2VfaXRlcl9uZXh0KHByZWZpeF9jYXNlX2l0ZXJfdCAqY2lwKQotIHR5 cGVkZWYgc3RydWN0IF92Z19wcmVmaXhfY29udGV4dF9zIHsKLSAJdmdfY29udGV4dF90CQliYXNl OwotIAlhdmxfcm9vdF90CQl2Y3BfYXZscm9vdDsKLS0JQklHTlVNCQkJdmNwX2RpZmZpY3VsdHk7 Ci0rCUJJR05VTQkJCSp2Y3BfZGlmZmljdWx0eTsKLSAJaW50CQkJdmNwX2Nhc2VpbnNlbnNpdGl2 ZTsKLSB9IHZnX3ByZWZpeF9jb250ZXh0X3Q7Ci0gCi1AQCAtMTI5NCw3ICsxMjk0LDcgQEAgdmdf cHJlZml4X2NvbnRleHRfY2xlYXJfYWxsX3BhdHRlcm5zKHZnX2NvbnRleHRfdCAqdmNwKQotIAl2 Y3BwLT5iYXNlLnZjX25wYXR0ZXJucyA9IDA7Ci0gCXZjcHAtPmJhc2UudmNfbnBhdHRlcm5zX3N0 YXJ0ID0gMDsKLSAJdmNwcC0+YmFzZS52Y19mb3VuZCA9IDA7Ci0tCUJOX2NsZWFyKCZ2Y3BwLT52 Y3BfZGlmZmljdWx0eSk7Ci0rCUJOX2NsZWFyKHZjcHAtPnZjcF9kaWZmaWN1bHR5KTsKLSB9Ci0g Ci0gc3RhdGljIHZvaWQKLUBAIC0xMzAyLDcgKzEzMDIsNyBAQCB2Z19wcmVmaXhfY29udGV4dF9m cmVlKHZnX2NvbnRleHRfdCAqdmNwKQotIHsKLSAJdmdfcHJlZml4X2NvbnRleHRfdCAqdmNwcCA9 ICh2Z19wcmVmaXhfY29udGV4dF90ICopIHZjcDsKLSAJdmdfcHJlZml4X2NvbnRleHRfY2xlYXJf YWxsX3BhdHRlcm5zKHZjcCk7Ci0tCUJOX2NsZWFyX2ZyZWUoJnZjcHAtPnZjcF9kaWZmaWN1bHR5 KTsKLSsJQk5fY2xlYXJfZnJlZSh2Y3BwLT52Y3BfZGlmZmljdWx0eSk7Ci0gCWZyZWUodmNwcCk7 Ci0gfQotIAotQEAgLTEzMTQsNyArMTMxNCw3IEBAIHZnX3ByZWZpeF9jb250ZXh0X25leHRfZGlm ZmljdWx0eSh2Z19wcmVmaXhfY29udGV4dF90ICp2Y3BwLAotIAotIAlCTl9jbGVhcihibnRtcCk7 Ci0gCUJOX3NldF9iaXQoYm50bXAsIDE5Mik7Ci0tCUJOX2RpdihibnRtcDIsIE5VTEwsIGJudG1w LCAmdmNwcC0+dmNwX2RpZmZpY3VsdHksIGJuY3R4KTsKLSsJQk5fZGl2KGJudG1wMiwgTlVMTCwg Ym50bXAsIHZjcHAtPnZjcF9kaWZmaWN1bHR5LCBibmN0eCk7Ci0gCi0gCWRidWYgPSBCTl9ibjJk ZWMoYm50bXAyKTsKLSAJaWYgKHZjcHAtPmJhc2UudmNfdmVyYm9zZSA+IDApIHsKLUBAIC0xMzM3 LDcgKzEzMzcsNyBAQCB2Z19wcmVmaXhfY29udGV4dF9hZGRfcGF0dGVybnModmdfY29udGV4dF90 ICp2Y3AsCi0gCXByZWZpeF9jYXNlX2l0ZXJfdCBjYXNlaXRlcjsKLSAJdmdfcHJlZml4X3QgKnZw LCAqdnAyOwotIAlCTl9DVFggKmJuY3R4OwotLQlCSUdOVU0gYm50bXAsIGJudG1wMiwgYm50bXAz OwotKwlCSUdOVU0gKmJudG1wLCAqYm50bXAyLCAqYm50bXAzOwotIAlCSUdOVU0gKnJhbmdlc1s0 XTsKLSAJaW50IHJldCA9IDA7Ci0gCWludCBpLCBpbXBvc3NpYmxlID0gMDsKLUBAIC0xMzQ2LDkg KzEzNDYsOSBAQCB2Z19wcmVmaXhfY29udGV4dF9hZGRfcGF0dGVybnModmdfY29udGV4dF90ICp2 Y3AsCi0gCWNoYXIgKmRidWY7Ci0gCi0gCWJuY3R4ID0gQk5fQ1RYX25ldygpOwotLQlCTl9pbml0 KCZibnRtcCk7Ci0tCUJOX2luaXQoJmJudG1wMik7Ci0tCUJOX2luaXQoJmJudG1wMyk7Ci0rCWJu dG1wID0gQk5fbmV3KCk7Ci0rCWJudG1wMiA9IEJOX25ldygpOwotKwlibnRtcDMgPSBCTl9uZXco KTsKLSAKLSAJbnBmeCA9IDA7Ci0gCWZvciAoaSA9IDA7IGkgPCBucGF0dGVybnM7IGkrKykgewot QEAgLTE0MjYsMTYgKzE0MjYsMTYgQEAgdmdfcHJlZml4X2NvbnRleHRfYWRkX3BhdHRlcm5zKHZn X2NvbnRleHRfdCAqdmNwLAotIAkJbnBmeCsrOwotIAotIAkJLyogRGV0ZXJtaW5lIHRoZSBwcm9i YWJpbGl0eSBvZiBmaW5kaW5nIGEgbWF0Y2ggKi8KLS0JCXZnX3ByZWZpeF9yYW5nZV9zdW0odnAs ICZibnRtcCwgJmJudG1wMik7Ci0tCQlCTl9hZGQoJmJudG1wMiwgJnZjcHAtPnZjcF9kaWZmaWN1 bHR5LCAmYm50bXApOwotLQkJQk5fY29weSgmdmNwcC0+dmNwX2RpZmZpY3VsdHksICZibnRtcDIp OwotKwkJdmdfcHJlZml4X3JhbmdlX3N1bSh2cCwgYm50bXAsIGJudG1wMik7Ci0rCQlCTl9hZGQo Ym50bXAyLCB2Y3BwLT52Y3BfZGlmZmljdWx0eSwgYm50bXApOwotKwkJQk5fY29weSh2Y3BwLT52 Y3BfZGlmZmljdWx0eSwgYm50bXAyKTsKLSAKLSAJCWlmICh2Y3AtPnZjX3ZlcmJvc2UgPiAxKSB7 Ci0tCQkJQk5fY2xlYXIoJmJudG1wMik7Ci0tCQkJQk5fc2V0X2JpdCgmYm50bXAyLCAxOTIpOwot LQkJCUJOX2RpdigmYm50bXAzLCBOVUxMLCAmYm50bXAyLCAmYm50bXAsIGJuY3R4KTsKLSsJCQlC Tl9jbGVhcihibnRtcDIpOwotKwkJCUJOX3NldF9iaXQoYm50bXAyLCAxOTIpOwotKwkJCUJOX2Rp dihibnRtcDMsIE5VTEwsIGJudG1wMiwgYm50bXAsIGJuY3R4KTsKLSAKLS0JCQlkYnVmID0gQk5f Ym4yZGVjKCZibnRtcDMpOwotKwkJCWRidWYgPSBCTl9ibjJkZWMoYm50bXAzKTsKLSAJCQlmcHJp bnRmKHN0ZGVyciwKLSAJCQkJIlByZWZpeCBkaWZmaWN1bHR5OiAlMjBzICVzXG4iLAotIAkJCQlk YnVmLCBwYXR0ZXJuc1tpXSk7Ci1AQCAtMTQ2OSwxMyArMTQ2OSwxMyBAQCB2Z19wcmVmaXhfY29u dGV4dF9hZGRfcGF0dGVybnModmdfY29udGV4dF90ICp2Y3AsCi0gCX0KLSAKLSAJaWYgKG5wZngp Ci0tCQl2Z19wcmVmaXhfY29udGV4dF9uZXh0X2RpZmZpY3VsdHkodmNwcCwgJmJudG1wLCAmYm50 bXAyLCBibmN0eCk7Ci0rCQl2Z19wcmVmaXhfY29udGV4dF9uZXh0X2RpZmZpY3VsdHkodmNwcCwg Ym50bXAsIGJudG1wMiwgYm5jdHgpOwotIAotIAlyZXQgPSAobnBmeCAhPSAwKTsKLSAKLS0JQk5f Y2xlYXJfZnJlZSgmYm50bXApOwotLQlCTl9jbGVhcl9mcmVlKCZibnRtcDIpOwotLQlCTl9jbGVh cl9mcmVlKCZibnRtcDMpOwotKwlCTl9jbGVhcl9mcmVlKGJudG1wKTsKLSsJQk5fY2xlYXJfZnJl ZShibnRtcDIpOwotKwlCTl9jbGVhcl9mcmVlKGJudG1wMyk7Ci0gCUJOX0NUWF9mcmVlKGJuY3R4 KTsKLSAJcmV0dXJuIHJldDsKLSB9Ci1AQCAtMTQ4NCwzOSArMTQ4NCwzOSBAQCBkb3VibGUKLSB2 Z19wcmVmaXhfZ2V0X2RpZmZpY3VsdHkoaW50IGFkZHJ0eXBlLCBjb25zdCBjaGFyICpwYXR0ZXJu KQotIHsKLSAJQk5fQ1RYICpibmN0eDsKLS0JQklHTlVNIHJlc3VsdCwgYm50bXA7Ci0rCUJJR05V TSAqcmVzdWx0LCAqYm50bXA7Ci0gCUJJR05VTSAqcmFuZ2VzWzRdOwotIAljaGFyICpkYnVmOwot IAlpbnQgcmV0OwotIAlkb3VibGUgZGlmZnJldCA9IDAuMDsKLSAKLSAJYm5jdHggPSBCTl9DVFhf bmV3KCk7Ci0tCUJOX2luaXQoJnJlc3VsdCk7Ci0tCUJOX2luaXQoJmJudG1wKTsKLSsJcmVzdWx0 ID0gQk5fbmV3KCk7Ci0rCWJudG1wID0gQk5fbmV3KCk7Ci0gCi0gCXJldCA9IGdldF9wcmVmaXhf cmFuZ2VzKGFkZHJ0eXBlLAotIAkJCQlwYXR0ZXJuLCByYW5nZXMsIGJuY3R4KTsKLSAKLSAJaWYg KHJldCA9PSAwKSB7Ci0tCQlCTl9zdWIoJmJudG1wLCByYW5nZXNbMV0sIHJhbmdlc1swXSk7Ci0t CQlCTl9hZGQoJnJlc3VsdCwgJnJlc3VsdCwgJmJudG1wKTsKLSsJCUJOX3N1YihibnRtcCwgcmFu Z2VzWzFdLCByYW5nZXNbMF0pOwotKwkJQk5fYWRkKHJlc3VsdCwgcmVzdWx0LCBibnRtcCk7Ci0g CQlpZiAocmFuZ2VzWzJdKSB7Ci0tCQkJQk5fc3ViKCZibnRtcCwgcmFuZ2VzWzNdLCByYW5nZXNb Ml0pOwotLQkJCUJOX2FkZCgmcmVzdWx0LCAmcmVzdWx0LCAmYm50bXApOwotKwkJCUJOX3N1Yihi bnRtcCwgcmFuZ2VzWzNdLCByYW5nZXNbMl0pOwotKwkJCUJOX2FkZChyZXN1bHQsIHJlc3VsdCwg Ym50bXApOwotIAkJfQotIAkJZnJlZV9yYW5nZXMocmFuZ2VzKTsKLSAKLS0JCUJOX2NsZWFyKCZi bnRtcCk7Ci0tCQlCTl9zZXRfYml0KCZibnRtcCwgMTkyKTsKLS0JCUJOX2RpdigmcmVzdWx0LCBO VUxMLCAmYm50bXAsICZyZXN1bHQsIGJuY3R4KTsKLSsJCUJOX2NsZWFyKGJudG1wKTsKLSsJCUJO X3NldF9iaXQoYm50bXAsIDE5Mik7Ci0rCQlCTl9kaXYocmVzdWx0LCBOVUxMLCBibnRtcCwgcmVz dWx0LCBibmN0eCk7Ci0gCi0tCQlkYnVmID0gQk5fYm4yZGVjKCZyZXN1bHQpOwotKwkJZGJ1ZiA9 IEJOX2JuMmRlYyhyZXN1bHQpOwotIAkJZGlmZnJldCA9IHN0cnRvZChkYnVmLCBOVUxMKTsKLSAJ CU9QRU5TU0xfZnJlZShkYnVmKTsKLSAJfQotIAotLQlCTl9jbGVhcl9mcmVlKCZyZXN1bHQpOwot LQlCTl9jbGVhcl9mcmVlKCZibnRtcCk7Ci0rCUJOX2NsZWFyX2ZyZWUocmVzdWx0KTsKLSsJQk5f Y2xlYXJfZnJlZShibnRtcCk7Ci0gCUJOX0NUWF9mcmVlKGJuY3R4KTsKLSAJcmV0dXJuIGRpZmZy ZXQ7Ci0gfQotQEAgLTE1MzUsMTAgKzE1MzUsMTAgQEAgdmdfcHJlZml4X3Rlc3QodmdfZXhlY19j b250ZXh0X3QgKnZ4Y3ApCi0gCSAqIGNoZWNrIGNvZGUuCi0gCSAqLwotIAotLQlCTl9iaW4yYm4o dnhjcC0+dnhjX2JpbnJlcywgMjUsICZ2eGNwLT52eGNfYm50YXJnKTsKLSsJQk5fYmluMmJuKHZ4 Y3AtPnZ4Y19iaW5yZXMsIDI1LCB2eGNwLT52eGNfYm50YXJnKTsKLSAKLSByZXNlYXJjaDoKLS0J dnAgPSB2Z19wcmVmaXhfYXZsX3NlYXJjaCgmdmNwcC0+dmNwX2F2bHJvb3QsICZ2eGNwLT52eGNf Ym50YXJnKTsKLSsJdnAgPSB2Z19wcmVmaXhfYXZsX3NlYXJjaCgmdmNwcC0+dmNwX2F2bHJvb3Qs IHZ4Y3AtPnZ4Y19ibnRhcmcpOwotIAlpZiAodnApIHsKLSAJCWlmICh2Z19leGVjX2NvbnRleHRf dXBncmFkZV9sb2NrKHZ4Y3ApKQotIAkJCWdvdG8gcmVzZWFyY2g7Ci1AQCAtMTU1OCwyMCArMTU1 OCwyMCBAQCB2Z19wcmVmaXhfdGVzdCh2Z19leGVjX2NvbnRleHRfdCAqdnhjcCkKLSAJCWlmICh2 Y3BwLT5iYXNlLnZjX3JlbW92ZV9vbl9tYXRjaCkgewotIAkJCS8qIFN1YnRyYWN0IHRoZSByYW5n ZSBmcm9tIHRoZSBkaWZmaWN1bHR5ICovCi0gCQkJdmdfcHJlZml4X3JhbmdlX3N1bSh2cCwKLS0J CQkJCSAgICAmdnhjcC0+dnhjX2JudGFyZywKLS0JCQkJCSAgICAmdnhjcC0+dnhjX2JudG1wKTsK LS0JCQlCTl9zdWIoJnZ4Y3AtPnZ4Y19ibnRtcCwKLS0JCQkgICAgICAgJnZjcHAtPnZjcF9kaWZm aWN1bHR5LAotLQkJCSAgICAgICAmdnhjcC0+dnhjX2JudGFyZyk7Ci0tCQkJQk5fY29weSgmdmNw cC0+dmNwX2RpZmZpY3VsdHksICZ2eGNwLT52eGNfYm50bXApOwotKwkJCQkJICAgIHZ4Y3AtPnZ4 Y19ibnRhcmcsCi0rCQkJCQkgICAgdnhjcC0+dnhjX2JudG1wKTsKLSsJCQlCTl9zdWIodnhjcC0+ dnhjX2JudG1wLAotKwkJCSAgICAgICB2Y3BwLT52Y3BfZGlmZmljdWx0eSwKLSsJCQkgICAgICAg dnhjcC0+dnhjX2JudGFyZyk7Ci0rCQkJQk5fY29weSh2Y3BwLT52Y3BfZGlmZmljdWx0eSwgdnhj cC0+dnhjX2JudG1wKTsKLSAKLSAJCQl2Z19wcmVmaXhfZGVsZXRlKCZ2Y3BwLT52Y3BfYXZscm9v dCx2cCk7Ci0gCQkJdmNwcC0+YmFzZS52Y19ucGF0dGVybnMtLTsKLSAKLSAJCQlpZiAoIWF2bF9y b290X2VtcHR5KCZ2Y3BwLT52Y3BfYXZscm9vdCkpCi0gCQkJCXZnX3ByZWZpeF9jb250ZXh0X25l eHRfZGlmZmljdWx0eSgKLS0JCQkJCXZjcHAsICZ2eGNwLT52eGNfYm50bXAsCi0tCQkJCQkmdnhj cC0+dnhjX2JudG1wMiwKLSsJCQkJCXZjcHAsIHZ4Y3AtPnZ4Y19ibnRtcCwKLSsJCQkJCXZ4Y3At PnZ4Y19ibnRtcDIsCi0gCQkJCQl2eGNwLT52eGNfYm5jdHgpOwotIAkJCXZjcHAtPmJhc2UudmNf cGF0dGVybl9nZW5lcmF0aW9uKys7Ci0gCQl9Ci1AQCAtMTY1Miw3ICsxNjUyLDcgQEAgdmdfcHJl Zml4X2NvbnRleHRfbmV3KGludCBhZGRydHlwZSwgaW50IHByaXZ0eXBlLCBpbnQgY2FzZWluc2Vu c2l0aXZlKQotIAkJdmNwcC0+YmFzZS52Y190ZXN0ID0gdmdfcHJlZml4X3Rlc3Q7Ci0gCQl2Y3Bw LT5iYXNlLnZjX2hhc2gxNjBfc29ydCA9IHZnX3ByZWZpeF9oYXNoMTYwX3NvcnQ7Ci0gCQlhdmxf cm9vdF9pbml0KCZ2Y3BwLT52Y3BfYXZscm9vdCk7Ci0tCQlCTl9pbml0KCZ2Y3BwLT52Y3BfZGlm ZmljdWx0eSk7Ci0rCQl2Y3BwLT52Y3BfZGlmZmljdWx0eSA9IEJOX25ldygpOwotIAkJdmNwcC0+ dmNwX2Nhc2VpbnNlbnNpdGl2ZSA9IGNhc2VpbnNlbnNpdGl2ZTsKLSAJfQotIAlyZXR1cm4gJnZj cHAtPmJhc2U7Ci1AQCAtMTc3OCwyMSArMTc3OCwyMSBAQCB2Z19yZWdleF90ZXN0KHZnX2V4ZWNf Y29udGV4dF90ICp2eGNwKQotIAl1bnNpZ25lZCBjaGFyIGhhc2gxWzMyXSwgaGFzaDJbMzJdOwot IAlpbnQgaSwgenBmeCwgcCwgZCwgbnJlcywgcmVfdmVjWzldOwotIAljaGFyIGI1OFs0MF07Ci0t CUJJR05VTSBibnJlbTsKLSsJQklHTlVNICpibnJlbTsKLSAJQklHTlVNICpibiwgKmJuZGl2LCAq Ym5wdG1wOwotIAlpbnQgcmVzID0gMDsKLSAKLSAJcGNyZSAqcmU7Ci0gCi0tCUJOX2luaXQoJmJu cmVtKTsKLSsJYm5yZW0gPSBCTl9uZXcoKTsKLSAKLSAJLyogSGFzaCB0aGUgaGFzaCBhbmQgd3Jp dGUgdGhlIGZvdXIgYnl0ZSBjaGVjayBjb2RlICovCi0gCVNIQTI1Nih2eGNwLT52eGNfYmlucmVz LCAyMSwgaGFzaDEpOwotIAlTSEEyNTYoaGFzaDEsIHNpemVvZihoYXNoMSksIGhhc2gyKTsKLSAJ bWVtY3B5KCZ2eGNwLT52eGNfYmlucmVzWzIxXSwgaGFzaDIsIDQpOwotIAotLQlibiA9ICZ2eGNw LT52eGNfYm50bXA7Ci0tCWJuZGl2ID0gJnZ4Y3AtPnZ4Y19ibnRtcDI7Ci0rCWJuID0gdnhjcC0+ dnhjX2JudG1wOwotKwlibmRpdiA9IHZ4Y3AtPnZ4Y19ibnRtcDI7Ci0gCi0gCUJOX2JpbjJibih2 eGNwLT52eGNfYmlucmVzLCAyNSwgYm4pOwotIAotQEAgLTE4MDEsMTEgKzE4MDEsMTEgQEAgdmdf cmVnZXhfdGVzdCh2Z19leGVjX2NvbnRleHRfdCAqdnhjcCkKLSAJcCA9IHNpemVvZihiNTgpIC0g MTsKLSAJYjU4W3BdID0gJ1wwJzsKLSAJd2hpbGUgKCFCTl9pc196ZXJvKGJuKSkgewotLQkJQk5f ZGl2KGJuZGl2LCAmYm5yZW0sIGJuLCAmdnhjcC0+dnhjX2JuYmFzZSwgdnhjcC0+dnhjX2JuY3R4 KTsKLSsJCUJOX2RpdihibmRpdiwgYm5yZW0sIGJuLCB2eGNwLT52eGNfYm5iYXNlLCB2eGNwLT52 eGNfYm5jdHgpOwotIAkJYm5wdG1wID0gYm47Ci0gCQlibiA9IGJuZGl2OwotIAkJYm5kaXYgPSBi bnB0bXA7Ci0tCQlkID0gQk5fZ2V0X3dvcmQoJmJucmVtKTsKLSsJCWQgPSBCTl9nZXRfd29yZChi bnJlbSk7Ci0gCQliNThbLS1wXSA9IHZnX2I1OF9hbHBoYWJldFtkXTsKLSAJfQotIAl3aGlsZSAo enBmeC0tKSB7Ci1AQCAtMTg3OCw3ICsxODc4LDcgQEAgdmdfcmVnZXhfdGVzdCh2Z19leGVjX2Nv bnRleHRfdCAqdnhjcCkKLSAJCXJlcyA9IDE7Ci0gCX0KLSBvdXQ6Ci0tCUJOX2NsZWFyX2ZyZWUo JmJucmVtKTsKLSsJQk5fY2xlYXJfZnJlZShibnJlbSk7Ci0gCXJldHVybiByZXM7Ci0gfQotIAot ZGlmZiAtLWdpdCBhL3BhdHRlcm4uaCBiL3BhdHRlcm4uaAotaW5kZXggM2NlMmQxZi4uMGI2MDRl YSAxMDA2NDQKLS0tLSBhL3BhdHRlcm4uaAotKysrIGIvcGF0dGVybi5oCi1AQCAtNTEsMTAgKzUx LDEwIEBAIHN0cnVjdCBfdmdfZXhlY19jb250ZXh0X3MgewotIAlFQ19LRVkJCQkJKnZ4Y19rZXk7 Ci0gCWludAkJCQl2eGNfZGVsdGE7Ci0gCXVuc2lnbmVkIGNoYXIJCQl2eGNfYmlucmVzWzI4XTsK LS0JQklHTlVNCQkJCXZ4Y19ibnRhcmc7Ci0tCUJJR05VTQkJCQl2eGNfYm5iYXNlOwotLQlCSUdO VU0JCQkJdnhjX2JudG1wOwotLQlCSUdOVU0JCQkJdnhjX2JudG1wMjsKLSsJQklHTlVNCQkJCSp2 eGNfYm50YXJnOwotKwlCSUdOVU0JCQkJKnZ4Y19ibmJhc2U7Ci0rCUJJR05VTQkJCQkqdnhjX2Ju dG1wOwotKwlCSUdOVU0JCQkJKnZ4Y19ibnRtcDI7Ci0gCi0gCXZnX2V4ZWNfY29udGV4dF90aHJl YWRmdW5jX3QJdnhjX3RocmVhZGZ1bmM7Ci0gCXB0aHJlYWRfdAkJCXZ4Y19wdGhyZWFkOwotZGlm ZiAtLWdpdCBhL3V0aWwuYyBiL3V0aWwuYwotaW5kZXggNGYzY2JiOC4uMzVjZDU5MiAxMDA2NDQK LS0tLSBhL3V0aWwuYwotKysrIGIvdXRpbC5jCi1AQCAtMTEwLDE5ICsxMTAsMTkgQEAgdmdfYjU4 X2VuY29kZV9jaGVjayh2b2lkICpidWYsIHNpemVfdCBsZW4sIGNoYXIgKnJlc3VsdCkKLSAKLSAJ Qk5fQ1RYICpibmN0eDsKLSAJQklHTlVNICpibiwgKmJuZGl2LCAqYm50bXA7Ci0tCUJJR05VTSBi bmEsIGJuYiwgYm5iYXNlLCBibnJlbTsKLSsJQklHTlVNICpibmEsICpibmIsICpibmJhc2UsICpi bnJlbTsKLSAJdW5zaWduZWQgY2hhciAqYmlucmVzOwotIAlpbnQgYnJsZW4sIHpwZng7Ci0gCi0g CWJuY3R4ID0gQk5fQ1RYX25ldygpOwotLQlCTl9pbml0KCZibmEpOwotLQlCTl9pbml0KCZibmIp OwotLQlCTl9pbml0KCZibmJhc2UpOwotLQlCTl9pbml0KCZibnJlbSk7Ci0tCUJOX3NldF93b3Jk KCZibmJhc2UsIDU4KTsKLSsJYm5hID0gQk5fbmV3KCk7Ci0rCWJuYiA9IEJOX25ldygpOwotKwli bmJhc2UgPSBCTl9uZXcoKTsKLSsJYm5yZW0gPSBCTl9uZXcoKTsKLSsJQk5fc2V0X3dvcmQoYm5i YXNlLCA1OCk7Ci0gCi0tCWJuID0gJmJuYTsKLS0JYm5kaXYgPSAmYm5iOwotKwlibiA9IGJuYTsK LSsJYm5kaXYgPSBibmI7Ci0gCi0gCWJybGVuID0gKDIgKiBsZW4pICsgNDsKLSAJYmlucmVzID0g KHVuc2lnbmVkIGNoYXIqKSBtYWxsb2MoYnJsZW4pOwotQEAgLTE1NCwxMSArMTU0LDExIEBAIHZn X2I1OF9lbmNvZGVfY2hlY2sodm9pZCAqYnVmLCBzaXplX3QgbGVuLCBjaGFyICpyZXN1bHQpCi0g Ci0gCXAgPSBicmxlbjsKLSAJd2hpbGUgKCFCTl9pc196ZXJvKGJuKSkgewotLQkJQk5fZGl2KGJu ZGl2LCAmYm5yZW0sIGJuLCAmYm5iYXNlLCBibmN0eCk7Ci0rCQlCTl9kaXYoYm5kaXYsIGJucmVt LCBibiwgYm5iYXNlLCBibmN0eCk7Ci0gCQlibnRtcCA9IGJuOwotIAkJYm4gPSBibmRpdjsKLSAJ CWJuZGl2ID0gYm50bXA7Ci0tCQlkID0gQk5fZ2V0X3dvcmQoJmJucmVtKTsKLSsJCWQgPSBCTl9n ZXRfd29yZChibnJlbSk7Ci0gCQliaW5yZXNbLS1wXSA9IHZnX2I1OF9hbHBoYWJldFtkXTsKLSAJ fQotIAotQEAgLTE3MCwxMCArMTcwLDEwIEBAIHZnX2I1OF9lbmNvZGVfY2hlY2sodm9pZCAqYnVm LCBzaXplX3QgbGVuLCBjaGFyICpyZXN1bHQpCi0gCXJlc3VsdFticmxlbiAtIHBdID0gJ1wwJzsK LSAKLSAJZnJlZShiaW5yZXMpOwotLQlCTl9jbGVhcl9mcmVlKCZibmEpOwotLQlCTl9jbGVhcl9m cmVlKCZibmIpOwotLQlCTl9jbGVhcl9mcmVlKCZibmJhc2UpOwotLQlCTl9jbGVhcl9mcmVlKCZi bnJlbSk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm5hKTsKLSsJQk5fY2xlYXJfZnJlZShibmIpOwotKwlC Tl9jbGVhcl9mcmVlKGJuYmFzZSk7Ci0rCUJOX2NsZWFyX2ZyZWUoYm5yZW0pOwotIAlCTl9DVFhf ZnJlZShibmN0eCk7Ci0gfQotIAotQEAgLTE4NSw3ICsxODUsNyBAQCB2Z19iNThfZGVjb2RlX2No ZWNrKGNvbnN0IGNoYXIgKmlucHV0LCB2b2lkICpidWYsIHNpemVfdCBsZW4pCi0gewotIAlpbnQg aSwgbCwgYzsKLSAJdW5zaWduZWQgY2hhciAqeGJ1ZiA9IE5VTEw7Ci0tCUJJR05VTSBibiwgYm53 LCBibmJhc2U7Ci0rCUJJR05VTSAqYm4sICpibncsICpibmJhc2U7Ci0gCUJOX0NUWCAqYm5jdHg7 Ci0gCXVuc2lnbmVkIGNoYXIgaGFzaDFbMzJdLCBoYXNoMlszMl07Ci0gCXVuc2lnbmVkIGNoYXIg Z3JvZXN0bGhhc2gxWzY0XTsKLUBAIC0xOTMsMTAgKzE5MywxMCBAQCB2Z19iNThfZGVjb2RlX2No ZWNrKGNvbnN0IGNoYXIgKmlucHV0LCB2b2lkICpidWYsIHNpemVfdCBsZW4pCi0gCWludCB6cGZ4 OwotIAlpbnQgcmVzID0gMDsKLSAKLS0JQk5faW5pdCgmYm4pOwotLQlCTl9pbml0KCZibncpOwot LQlCTl9pbml0KCZibmJhc2UpOwotLQlCTl9zZXRfd29yZCgmYm5iYXNlLCA1OCk7Ci0rCWJuID0g Qk5fbmV3KCk7Ci0rCWJudyA9IEJOX25ldygpOwotKwlibmJhc2UgPSBCTl9uZXcoKTsKLSsJQk5f c2V0X3dvcmQoYm5iYXNlLCA1OCk7Ci0gCWJuY3R4ID0gQk5fQ1RYX25ldygpOwotIAotIAkvKiBC dWlsZCBhIGJpZ251bSBmcm9tIHRoZSBlbmNvZGVkIHZhbHVlICovCi1AQCAtMjA3LDEwICsyMDcs MTAgQEAgdmdfYjU4X2RlY29kZV9jaGVjayhjb25zdCBjaGFyICppbnB1dCwgdm9pZCAqYnVmLCBz aXplX3QgbGVuKQotIAkJYyA9IHZnX2I1OF9yZXZlcnNlX21hcFsoaW50KWlucHV0W2ldXTsKLSAJ CWlmIChjIDwgMCkKLSAJCQlnb3RvIG91dDsKLS0JCUJOX2NsZWFyKCZibncpOwotLQkJQk5fc2V0 X3dvcmQoJmJudywgYyk7Ci0tCQlCTl9tdWwoJmJuLCAmYm4sICZibmJhc2UsIGJuY3R4KTsKLS0J CUJOX2FkZCgmYm4sICZibiwgJmJudyk7Ci0rCQlCTl9jbGVhcihibncpOwotKwkJQk5fc2V0X3dv cmQoYm53LCBjKTsKLSsJCUJOX211bChibiwgYm4sIGJuYmFzZSwgYm5jdHgpOwotKwkJQk5fYWRk KGJuLCBibiwgYm53KTsKLSAJfQotIAotIAkvKiBDb3B5IHRoZSBiaWdudW0gdG8gYSBieXRlIGJ1 ZmZlciAqLwotQEAgLTIyMSw3ICsyMjEsNyBAQCB2Z19iNThfZGVjb2RlX2NoZWNrKGNvbnN0IGNo YXIgKmlucHV0LCB2b2lkICpidWYsIHNpemVfdCBsZW4pCi0gCQkJYnJlYWs7Ci0gCQl6cGZ4Kys7 Ci0gCX0KLS0JYyA9IEJOX251bV9ieXRlcygmYm4pOwotKwljID0gQk5fbnVtX2J5dGVzKGJuKTsK LSAJbCA9IHpwZnggKyBjOwotIAlpZiAobCA8IDUpCi0gCQlnb3RvIG91dDsKLUBAIC0yMzEsNyAr MjMxLDcgQEAgdmdfYjU4X2RlY29kZV9jaGVjayhjb25zdCBjaGFyICppbnB1dCwgdm9pZCAqYnVm LCBzaXplX3QgbGVuKQotIAlpZiAoenBmeCkKLSAJCW1lbXNldCh4YnVmLCAwLCB6cGZ4KTsKLSAJ aWYgKGMpCi0tCQlCTl9ibjJiaW4oJmJuLCB4YnVmICsgenBmeCk7Ci0rCQlCTl9ibjJiaW4oYm4s IHhidWYgKyB6cGZ4KTsKLSAKLSAJLyogQ2hlY2sgdGhlIGhhc2ggY29kZSAqLwotIAlsIC09IDQ7 Ci1AQCAtMjcwLDkgKzI3MCw5IEBAIHZnX2I1OF9kZWNvZGVfY2hlY2soY29uc3QgY2hhciAqaW5w dXQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKLSBvdXQ6Ci0gCWlmICh4YnVmKQotIAkJZnJlZSh4 YnVmKTsKLS0JQk5fY2xlYXJfZnJlZSgmYm4pOwotLQlCTl9jbGVhcl9mcmVlKCZibncpOwotLQlC Tl9jbGVhcl9mcmVlKCZibmJhc2UpOwotKwlCTl9jbGVhcl9mcmVlKGJuKTsKLSsJQk5fY2xlYXJf ZnJlZShibncpOwotKwlCTl9jbGVhcl9mcmVlKGJuYmFzZSk7Ci0gCUJOX0NUWF9mcmVlKGJuY3R4 KTsKLSAJcmV0dXJuIHJlczsKLSB9Ci1AQCAtNDIwLDcgKzQyMCw3IEBAIHZnX3NldF9wcml2a2V5 KGNvbnN0IEJJR05VTSAqYm5wcml2LCBFQ19LRVkgKnBrZXkpCi0gaW50Ci0gdmdfZGVjb2RlX3By aXZrZXkoY29uc3QgY2hhciAqYjU4ZW5jb2RlZCwgRUNfS0VZICpwa2V5LCBpbnQgKmFkZHJ0eXBl KQotIHsKLS0JQklHTlVNIGJucHJpdjsKLSsJQklHTlVNICpibnByaXY7Ci0gCXVuc2lnbmVkIGNo YXIgZWNwcml2WzQ4XTsKLSAJaW50IHJlcywgcmV0OwotIAotQEAgLTQzMCwxMCArNDMwLDEwIEBA IHZnX2RlY29kZV9wcml2a2V5KGNvbnN0IGNoYXIgKmI1OGVuY29kZWQsIEVDX0tFWSAqcGtleSwg aW50ICphZGRydHlwZSkKLSAKLSAJcmV0ID0gcmVzIC0gMzI7Ci0gCi0tCUJOX2luaXQoJmJucHJp dik7Ci0tCUJOX2JpbjJibihlY3ByaXYgKyAxLCAzMiwgJmJucHJpdik7Ci0tCXJlcyA9IHZnX3Nl dF9wcml2a2V5KCZibnByaXYsIHBrZXkpOwotLQlCTl9jbGVhcl9mcmVlKCZibnByaXYpOwotKwli bnByaXYgPSBCTl9uZXcoKTsKLSsJQk5fYmluMmJuKGVjcHJpdiArIDEsIDMyLCBibnByaXYpOwot KwlyZXMgPSB2Z19zZXRfcHJpdmtleShibnByaXYsIHBrZXkpOwotKwlCTl9jbGVhcl9mcmVlKGJu cHJpdik7Ci0gCSphZGRydHlwZSA9IGVjcHJpdlswXTsKLSAJcmV0dXJuIHJldDsKLSB9Ci1AQCAt NjMyLDE1ICs2MzIsMTUgQEAgdmdfcHJvdGVjdF9jcnlwdChpbnQgcGFyYW1ldGVyX2dyb3VwLAot IAkJc2FsdF9sZW4gPSA0OwotIAkJaG1hY19sZW4gPSA4OwotIAkJaG1hY19rZXlsZW4gPSAxNjsK LS0JCWNpcGhlcnRleHRfbGVuID0gKChwbGFpbnRleHRfbGVuICsgY2lwaGVyLT5ibG9ja19zaXpl IC0gMSkgLwotLQkJCQkgIGNpcGhlci0+YmxvY2tfc2l6ZSkgKiBjaXBoZXItPmJsb2NrX3NpemU7 Ci0rCQljaXBoZXJ0ZXh0X2xlbiA9ICgocGxhaW50ZXh0X2xlbiArIEVWUF9DSVBIRVJfYmxvY2tf c2l6ZShjaXBoZXIpIC0gMSkgLwotKwkJCQkgIEVWUF9DSVBIRVJfYmxvY2tfc2l6ZShjaXBoZXIp KSAqIEVWUF9DSVBIRVJfYmxvY2tfc2l6ZShjaXBoZXIpOwotIAkJcGtjczdfcGFkZGluZyA9IDA7 Ci0gCQlobWFjX2RpZ2VzdCA9IEVWUF9zaGEyNTYoKTsKLSAJfSBlbHNlIHsKLSAJCS8qIFBLQ1Mt Y29tcGxpYW50IGVuY29kaW5nICovCi0gCQlzYWx0X2xlbiA9IDg7Ci0tCQljaXBoZXJ0ZXh0X2xl biA9ICgocGxhaW50ZXh0X2xlbiArIGNpcGhlci0+YmxvY2tfc2l6ZSkgLwotLQkJCQkgIGNpcGhl ci0+YmxvY2tfc2l6ZSkgKiBjaXBoZXItPmJsb2NrX3NpemU7Ci0rCQljaXBoZXJ0ZXh0X2xlbiA9 ICgocGxhaW50ZXh0X2xlbiArIEVWUF9DSVBIRVJfYmxvY2tfc2l6ZShjaXBoZXIpKSAvCi0rCQkJ CSAgRVZQX0NJUEhFUl9ibG9ja19zaXplKGNpcGhlcikpICogRVZQX0NJUEhFUl9ibG9ja19zaXpl KGNpcGhlcik7Ci0gCQlobWFjX2RpZ2VzdCA9IE5VTEw7Ci0gCX0KLSAKLUBAIC02NjYsMTIgKzY2 NiwxMiBAQCB2Z19wcm90ZWN0X2NyeXB0KGludCBwYXJhbWV0ZXJfZ3JvdXAsCi0gCQkJICBzYWx0 LCBzYWx0X2xlbiwKLSAJCQkgIHBhcmFtcy0+aXRlcmF0aW9ucywKLSAJCQkgIHBia2RmX2RpZ2Vz dCwKLS0JCQkgIGNpcGhlci0+a2V5X2xlbiArIGNpcGhlci0+aXZfbGVuICsgaG1hY19rZXlsZW4s Ci0rCQkJICBFVlBfQ0lQSEVSX2tleV9sZW5ndGgoY2lwaGVyKSArIEVWUF9DSVBIRVJfaXZfbGVu Z3RoKGNpcGhlcikgKyBobWFjX2tleWxlbiwKLSAJCQkgIGtleW1hdGVyaWFsKTsKLSAKLSAJaWYg KCFFVlBfQ2lwaGVySW5pdChjdHgsIGNpcGhlciwKLSAJCQkgICAga2V5bWF0ZXJpYWwsCi0tCQkJ ICAgIGtleW1hdGVyaWFsICsgY2lwaGVyLT5rZXlfbGVuLAotKwkJCSAgICBrZXltYXRlcmlhbCAr IEVWUF9DSVBIRVJfa2V5X2xlbmd0aChjaXBoZXIpLAotIAkJCSAgICBlbmMpKSB7Ci0gCQlmcHJp bnRmKHN0ZGVyciwgIkVSUk9SOiBjb3VsZCBub3QgY29uZmlndXJlIGNpcGhlclxuIik7Ci0gCQln b3RvIG91dDsKLUBAIC03MDcsNyArNzA3LDcgQEAgdmdfcHJvdGVjdF9jcnlwdChpbnQgcGFyYW1l dGVyX2dyb3VwLAotIAlpZiAoaG1hY19sZW4pIHsKLSAJCWhsZW4gPSBzaXplb2YoaG1hYyk7Ci0g CQlITUFDKGhtYWNfZGlnZXN0LAotLQkJICAgICBrZXltYXRlcmlhbCArIGNpcGhlci0+a2V5X2xl biArIGNpcGhlci0+aXZfbGVuLAotKwkJICAgICBrZXltYXRlcmlhbCArIEVWUF9DSVBIRVJfa2V5 X2xlbmd0aChjaXBoZXIpICsgRVZQX0NJUEhFUl9pdl9sZW5ndGgoY2lwaGVyKSwKLSAJCSAgICAg aG1hY19rZXlsZW4sCi0gCQkgICAgIGVuYyA/IGRhdGFfaW4gOiBkYXRhX291dCwgcGxhaW50ZXh0 X2xlbiwKLSAJCSAgICAgaG1hYywgJmhsZW4pOwotQEAgLTc4Niw3ICs3ODYsNyBAQCB2Z19wcm90 ZWN0X2RlY29kZV9wcml2a2V5KEVDX0tFWSAqcGtleSwgaW50ICprZXl0eXBlLAotIHsKLSAJdW5z aWduZWQgY2hhciBlY3ByaXZbNjRdOwotIAl1bnNpZ25lZCBjaGFyIGVjZW5jWzEyOF07Ci0tCUJJ R05VTSBibjsKLSsJQklHTlVNICpibjsKLSAJaW50IHJlc3R5cGU7Ci0gCWludCByZXM7Ci0gCi1A QCAtODEwLDEwICs4MTAsMTAgQEAgdmdfcHJvdGVjdF9kZWNvZGVfcHJpdmtleShFQ19LRVkgKnBr ZXksIGludCAqa2V5dHlwZSwKLSAKLSAJcmVzID0gMTsKLSAJaWYgKHBrZXkpIHsKLS0JCUJOX2lu aXQoJmJuKTsKLS0JCUJOX2JpbjJibihlY3ByaXYsIDMyLCAmYm4pOwotLQkJcmVzID0gdmdfc2V0 X3ByaXZrZXkoJmJuLCBwa2V5KTsKLS0JCUJOX2NsZWFyX2ZyZWUoJmJuKTsKLSsJCWJuID0gQk5f bmV3KCk7Ci0rCQlCTl9iaW4yYm4oZWNwcml2LCAzMiwgYm4pOwotKwkJcmVzID0gdmdfc2V0X3By aXZrZXkoYm4sIHBrZXkpOwotKwkJQk5fY2xlYXJfZnJlZShibik7Ci0gCQlPUEVOU1NMX2NsZWFu c2UoZWNwcml2LCBzaXplb2YoZWNwcml2KSk7Ci0gCX0KLSAKLWRpZmYgLS1naXQgYS92YW5pdHln ZW4uYyBiL3Zhbml0eWdlbi5jCi1pbmRleCBmYjc5MjVhLi45OTJlNWQ3IDEwMDY0NAotLS0tIGEv dmFuaXR5Z2VuLmMKLSsrKyBiL3Zhbml0eWdlbi5jCi1AQCAtOTQsOCArOTQsOCBAQCB2Z190aHJl YWRfbG9vcCh2b2lkICphcmcpCi0gCQlleGl0KDEpOwotIAl9Ci0gCi0tCUJOX3NldF93b3JkKCZ2 eGNwLT52eGNfYm50bXAsIHB0YXJyYXlzaXplKTsKLS0JRUNfUE9JTlRfbXVsKHBncm91cCwgcGJh dGNoaW5jLCAmdnhjcC0+dnhjX2JudG1wLCBOVUxMLCBOVUxMLAotKwlCTl9zZXRfd29yZCh2eGNw LT52eGNfYm50bXAsIHB0YXJyYXlzaXplKTsKLSsJRUNfUE9JTlRfbXVsKHBncm91cCwgcGJhdGNo aW5jLCB2eGNwLT52eGNfYm50bXAsIE5VTEwsIE5VTEwsCi0gCQkgICAgIHZ4Y3AtPnZ4Y19ibmN0 eCk7Ci0gCUVDX1BPSU5UX21ha2VfYWZmaW5lKHBncm91cCwgcGJhdGNoaW5jLCB2eGNwLT52eGNf Ym5jdHgpOwotIAotQEAgLTEzOSwxMyArMTM5LDEzIEBAIHZnX3RocmVhZF9sb29wKHZvaWQgKmFy ZykKLSAJCQlucG9pbnRzID0gMDsKLSAKLSAJCQkvKiBEZXRlcm1pbmUgcmVrZXkgaW50ZXJ2YWwg Ki8KLS0JCQlFQ19HUk9VUF9nZXRfb3JkZXIocGdyb3VwLCAmdnhjcC0+dnhjX2JudG1wLAotKwkJ CUVDX0dST1VQX2dldF9vcmRlcihwZ3JvdXAsIHZ4Y3AtPnZ4Y19ibnRtcCwKLSAJCQkJCSAgIHZ4 Y3AtPnZ4Y19ibmN0eCk7Ci0tCQkJQk5fc3ViKCZ2eGNwLT52eGNfYm50bXAyLAotLQkJCSAgICAg ICAmdnhjcC0+dnhjX2JudG1wLAotKwkJCUJOX3N1Yih2eGNwLT52eGNfYm50bXAyLAotKwkJCSAg ICAgICB2eGNwLT52eGNfYm50bXAsCi0gCQkJICAgICAgIEVDX0tFWV9nZXQwX3ByaXZhdGVfa2V5 KHBrZXkpKTsKLS0JCQlyZWtleV9hdCA9IEJOX2dldF93b3JkKCZ2eGNwLT52eGNfYm50bXAyKTsK LS0JCQlpZiAoKHJla2V5X2F0ID09IEJOX01BU0syKSB8fCAocmVrZXlfYXQgPiByZWtleV9tYXgp KQotKwkJCXJla2V5X2F0ID0gQk5fZ2V0X3dvcmQodnhjcC0+dnhjX2JudG1wMik7Ci0rCQkJaWYg KChyZWtleV9hdCA9PSAweGZmZmZmZmZmTCkgfHwgKHJla2V5X2F0ID4gcmVrZXlfbWF4KSkKLSAJ CQkJcmVrZXlfYXQgPSByZWtleV9tYXg7Ci0gCQkJYXNzZXJ0KHJla2V5X2F0ID4gMCk7Ci0gCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzVmMTYzZTZmZmY3ZGE1MmM0YWVj YmQ4OThkOWRmMmU2MGE1NmYxMzQucGF0Y2ggYi9zcmNwa2dzL3Zhbml0eWdlbi9wYXRjaGVzLzVm MTYzZTZmZmY3ZGE1MmM0YWVjYmQ4OThkOWRmMmU2MGE1NmYxMzQucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDVlZTMwYWUwOGNkZi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvdmFuaXR5Z2VuL3BhdGNoZXMvNWYxNjNlNmZmZjdkYTUyYzRhZWNiZDg5OGQ5ZGYyZTYwYTU2 ZjEzNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLUZyb20gNWYxNjNlNmZm ZjdkYTUyYzRhZWNiZDg5OGQ5ZGYyZTYwYTU2ZjEzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IERlc1d1cnN0ZXMgPERlc1d1cnN0ZXNAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgot RGF0ZTogU3VuLCAzIEp1biAyMDE4IDE3OjQ2OjE2ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFBy aXZrZXkgcHJlZml4IE9wZW5TU0wgMS4xIGNvbXBhdGliaWxpdHkgKCMxMTYpCi0KLUZpeGVzICMx MTQKLS0tLQotIG9jbGVuZ2luZS5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCi0gdmFuaXR5Z2Vu LmMgfCAxMiArKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyks IDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9vY2xlbmdpbmUuYyBiL29jbGVuZ2luZS5j Ci1pbmRleCA2NTg1ZmM2Li5jNjliZDRiIDEwMDY0NAotLS0tIGEvb2NsZW5naW5lLmMKLSsrKyBi L29jbGVuZ2luZS5jCi1AQCAtNSw3ICs1LDcgQEAKLSAgKiBWYW5pdHlnZW4gaXMgZnJlZSBzb2Z0 d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICAqIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQotICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0tICogYW55IGxhdGVyIHZlcnNpb24uIAotKyAqIGFu eSBsYXRlciB2ZXJzaW9uLgotICAqCi0gICogVmFuaXR5Z2VuIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLUBAIC0xMDU4LDcgKzEw NTgsNyBAQCB2Z19vY2xfa2VybmVsX2FyZ19hbGxvYyh2Z19vY2xfY29udGV4dF90ICp2b2NwLCBp bnQgc2xvdCwKLSAJCQkJCSAgICAga2FyZywKLSAJCQkJCSAgICAgc2l6ZW9mKGNsYnVmKSwKLSAJ CQkJCSAgICAgJmNsYnVmKTsKLS0JCQkKLSsKLSAJCQlpZiAocmV0KSB7Ci0gCQkJCWZwcmludGYo c3RkZXJyLAotIAkJCQkJImNsU2V0S2VybmVsQXJnKCVkLCVkKTogIiwga251bSwga2FyZyk7Ci1A QCAtMTA5MCw3ICsxMDkwLDcgQEAgdmdfb2NsX2NvcHlvdXRfYXJnKHZnX29jbF9jb250ZXh0X3Qg KnZvY3AsIGludCB3c2xvdCwgaW50IGFyZywKLSAJCQkJICAgYnVmZmVyLAotIAkJCQkgICAwLCBO VUxMLAotIAkJCQkgICBOVUxMKTsKLS0JCQkKLSsKLSAJaWYgKHJldCkgewotIAkJZnByaW50Zihz dGRlcnIsICJjbEVucXVldWVXcml0ZUJ1ZmZlciglZCk6ICIsIGFyZyk7Ci0gCQl2Z19vY2xfZXJy b3Iodm9jcCwgcmV0LCBOVUxMKTsKLUBAIC0yMDc5LDcgKzIwNzksMTUgQEAgdmdfb3BlbmNsX2xv b3AodmdfZXhlY19jb250ZXh0X3QgKmFyZykKLSAJbnBvaW50cyA9IDA7Ci0gCWlmICh2Y3AtPnZj X3ByaXZrZXlfcHJlZml4X2xlbmd0aCA+IDApIHsKLSAJCUJJR05VTSAqcGtibiA9IEJOX2R1cChF Q19LRVlfZ2V0MF9wcml2YXRlX2tleShwa2V5KSk7Ci0tCQltZW1jcHkoKGNoYXIgKilwa2JuLT5k ICsgMzIgLSB2Y3AtPnZjX3ByaXZrZXlfcHJlZml4X2xlbmd0aCwgdmNwLT52Y19wcml2a2V5X3By ZWZpeCwgdmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgpOwotKwkJdW5zaWduZWQgY2hhciBw a2V5X2FyclszMl07Ci0rCQlhc3NlcnQoQk5fYm4yYmluKHBrYm4sIHBrZXlfYXJyKSA8IDMzKTsK LSsJCW1lbWNweSgoY2hhciAqKSBwa2V5X2FyciwgdmNwLT52Y19wcml2a2V5X3ByZWZpeCwgdmNw LT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgpOwotKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB2Y3At PnZjX3ByaXZrZXlfcHJlZml4X2xlbmd0aCAvIDI7IGkrKykgewotKwkJCWludCBrID0gcGtleV9h cnJbaV07Ci0rCQkJcGtleV9hcnJbaV0gPSBwa2V5X2Fyclt2Y3AtPnZjX3ByaXZrZXlfcHJlZml4 X2xlbmd0aCAtIDEgLSBpXTsKLSsJCQlwa2V5X2Fyclt2Y3AtPnZjX3ByaXZrZXlfcHJlZml4X2xl bmd0aCAtIDEgLSBpXSA9IGs7Ci0rCQl9Ci0rCQlCTl9iaW4yYm4ocGtleV9hcnIsIDMyLCBwa2Ju KTsKLSAJCUVDX0tFWV9zZXRfcHJpdmF0ZV9rZXkocGtleSwgcGtibik7Ci0gCi0gCQlFQ19QT0lO VCAqb3JpZ2luID0gRUNfUE9JTlRfbmV3KHBncm91cCk7Ci1AQCAtMjI0MCw3ICsyMjQ4LDcgQEAg dmdfb3BlbmNsX2xvb3AodmdfZXhlY19jb250ZXh0X3QgKmFyZykKLSAJCQlzbG90X2J1c3kgPSAx OwotIAkJCXNsb3QgPSAoc2xvdCArIDEpICUgbnNsb3RzOwotIAotLQkJfSBlbHNlIHsgCi0rCQl9 IGVsc2UgewotIAkJCWlmIChzbG90X2J1c3kpIHsKLSAJCQkJcHRocmVhZF9tdXRleF9sb2NrKCZ2 b2NwLT52b2NfbG9jayk7Ci0gCQkJCXdoaWxlICh2b2NwLT52b2Nfb2NsX3Nsb3QgIT0gLTEpIHsK LWRpZmYgLS1naXQgYS92YW5pdHlnZW4uYyBiL3Zhbml0eWdlbi5jCi1pbmRleCA5OTJlNWQ3Li41 ZTQ5ZGY3IDEwMDY0NAotLS0tIGEvdmFuaXR5Z2VuLmMKLSsrKyBiL3Zhbml0eWdlbi5jCi1AQCAt MTI5LDcgKzEyOSwxNSBAQCB2Z190aHJlYWRfbG9vcCh2b2lkICphcmcpCi0gCQkJRUNfS0VZX2dl bmVyYXRlX2tleShwa2V5KTsKLSAJCQlpZiAodmNwLT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGgg PiAwKSB7Ci0gCQkJCUJJR05VTSAqcGtibiA9IEJOX2R1cChFQ19LRVlfZ2V0MF9wcml2YXRlX2tl eShwa2V5KSk7Ci0tCQkJCW1lbWNweSgoY2hhciAqKXBrYm4tPmQgKyAzMiAtIHZjcC0+dmNfcHJp dmtleV9wcmVmaXhfbGVuZ3RoLCB2Y3AtPnZjX3ByaXZrZXlfcHJlZml4LCB2Y3AtPnZjX3ByaXZr ZXlfcHJlZml4X2xlbmd0aCk7Ci0rICAgICAgICB1bnNpZ25lZCBjaGFyIHBrZXlfYXJyWzMyXTsK LSsgICAgICAgIGFzc2VydChCTl9ibjJiaW4ocGtibiwgcGtleV9hcnIpIDwgMzMpOwotKyAgICAg ICAgbWVtY3B5KChjaGFyICopIHBrZXlfYXJyLCB2Y3AtPnZjX3ByaXZrZXlfcHJlZml4LCB2Y3At PnZjX3ByaXZrZXlfcHJlZml4X2xlbmd0aCk7Ci0rCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgdmNw LT52Y19wcml2a2V5X3ByZWZpeF9sZW5ndGggLyAyOyBpKyspIHsKLSsJCQkJCWludCBrID0gcGtl eV9hcnJbaV07Ci0rCQkJCQlwa2V5X2FycltpXSA9IHBrZXlfYXJyW3ZjcC0+dmNfcHJpdmtleV9w cmVmaXhfbGVuZ3RoIC0gMSAtIGldOwotKwkJCQkJcGtleV9hcnJbdmNwLT52Y19wcml2a2V5X3By ZWZpeF9sZW5ndGggLSAxIC0gaV0gPSBrOwotKwkJCQl9Ci0rICAgICAgICBCTl9iaW4yYm4ocGtl eV9hcnIsIDMyLCBwa2JuKTsKLSAJCQkJRUNfS0VZX3NldF9wcml2YXRlX2tleShwa2V5LCBwa2Ju KTsKLSAKLSAJCQkJRUNfUE9JTlQgKm9yaWdpbiA9IEVDX1BPSU5UX25ldyhwZ3JvdXApOwotQEAg LTEzOTUsNyArMTQwMyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkJCQkJYWRk cnR5cGUgPSA2MDsKLSAJCQkJCXByaXZ0eXBlID0gMTI4OwotIAkJCQkJYnJlYWs7Ci0tCQkJfQkJ CQotKwkJCX0KLSAJCQlicmVhazsKLSAKLSAvKkVORCBBTFRDT0lOIEdFTkVSQVRPUiovCmRpZmYg LS1naXQgYS9zcmNwa2dzL3Zhbml0eWdlbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFuaXR5Z2VuL3Rl bXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjRhYzg1OWQ1ZDIuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL3Zhbml0eWdlbi90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBA IC0xLDIxICswLDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Zhbml0eWdlbicKLXBrZ25hbWU9 dmFuaXR5Z2VuCi12ZXJzaW9uPTEuNTMKLXJldmlzaW9uPTIKLW1ha2VkZXBlbmRzPSJwY3JlLWRl dmVsIG9wZW5zc2wtZGV2ZWwiCi1zaG9ydF9kZXNjPSJCaXRjb2luIHZhbml0eSBhZGRyZXNzIGdl bmVyYXRvciIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1s aWNlbnNlPSJBR1BMLTMuMC1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20v ZXhwbG9pdGFnZW5jeS92YW5pdHlnZW4tcGx1cyIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL2V4cGxvaXRhZ2VuY3kvdmFuaXR5Z2VuLXBsdXMvbWFzdGVyL0NI QU5HRUxPRyIKLWRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2V4cGxvaXRhZ2VuY3kvdmFu aXR5Z2VuLXBsdXMvYXJjaGl2ZS9QTFVTJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT05NzZh OWFmZTJhNDQ3MDU1MWE4YjZiMGRhOTcxMDFhM2EyZTZjNTRjNWEyNmRjODcwYWU3NTViYjJkOGM3 MDQxCi0KLWRvX2J1aWxkKCkgewotCW1ha2UgQ0M9JENDIENGTEFHUz0iJENGTEFHUyAkTERGTEFH UyIgJHttYWtlam9ic30KLX0KLWRvX2luc3RhbGwoKSB7Ci0JdmJpbiB2YW5pdHlnZW4KLQl2Ymlu IGtleWNvbnYKLQl2bGljZW5zZSBMSUNFTlNFCi19Cg== --===============9137265052989197938==--