From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jt2N8-00043u-Tt for qemu-devel@nongnu.org; Mon, 05 May 2008 11:12:59 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jt2N7-00043i-Cy for qemu-devel@nongnu.org; Mon, 05 May 2008 11:12:58 -0400 Received: from [199.232.76.173] (port=37336 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jt2N7-00043e-7B for qemu-devel@nongnu.org; Mon, 05 May 2008 11:12:57 -0400 Received: from rv-out-0708.google.com ([209.85.198.246]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Jt2N6-0005Pf-Gl for qemu-devel@nongnu.org; Mon, 05 May 2008 11:12:57 -0400 Received: by rv-out-0708.google.com with SMTP id f25so949364rvb.22 for ; Mon, 05 May 2008 08:12:53 -0700 (PDT) Message-ID: <94a0d4530805050812j3b412858l56e7c87b0638eb08@mail.gmail.com> Date: Mon, 5 May 2008 18:12:53 +0300 From: "Felipe Contreras" Subject: Re: [Qemu-devel] [PATCH] arm eabi TLS In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_17372_18287599.1210000373156" References: <1197420297.2947.94.camel@phantasm.home.enterpriseandprosperity.com> <476068AA.80001@bellard.org> <200712130121.04204.paul@codesourcery.com> <1197508540.3640.2.camel@phantasm.home.enterpriseandprosperity.com> <94a0d4530801281027u4db7bd2eib4e7d5f9c6caeb8b@mail.gmail.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= , Paul Brook , thayne@c2.net ------=_Part_17372_18287599.1210000373156 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline SGksCgpPbiBGcmksIEFwciA0LCAyMDA4IGF0IDY6MDMgUE0sIE1hcmMtQW5kcsOpIEx1cmVhdQo8 bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+IHdyb3RlOgo+IEhpLAo+Cj4KPiAgT24gTW9uLCBK YW4gMjgsIDIwMDggYXQgOToyNyBQTSwgRmVsaXBlIENvbnRyZXJhcwo+ICA8ZmVsaXBlLmNvbnRy ZXJhc0BnbWFpbC5jb20+IHdyb3RlOgo+ICA+Cj4gID4gIEhvdyBpcyB0aGlzIGdvaW5nPwo+ICA+ Cj4gID4gIFRoZSBwYXRjaCB3b3JrcyBwcmV0dHkgd2VsbCBmb3IgbWUuCj4gID4KPgo+ICBVbmZv cnR1bmF0ZWx5LCB0aGUgcGF0Y2ggZG9lcyBub3QgYXBwbHkgY2xlYW5seSBhbnltb3JlLgo+Cj4g IElzIHRoZXJlIGFuIHVwZGF0ZWQgdmVyc2lvbiBzb21ld2hlcmU/Cj4KPiAgcmVnYXJkcywKCkkg anVzdCB1cGRhdGVkIHRoZSBwYXRjaCB0byBjdXJyZW50IENWUyAoYWN0dWFsbHkgZ2l0IDspCgpB bHNvLCBJIGZvdW5kIG90aGVyIHNpbWlsYXIgcGF0Y2hlczoKaHR0cDovL2Rldi5vcGVuYm9zc2Eu b3JnL3RyYWMvbWFtb25hL2Jyb3dzZXIvcGFja2FnZXMvcWVtdS9xZW11LTAuOS4xL3FlbXUtMC45 LjAtbnB0bC11cGRhdGUucGF0Y2gKaHR0cDovL2Rldi5vcGVuYm9zc2Eub3JnL3RyYWMvbWFtb25h L2Jyb3dzZXIvcGFja2FnZXMvcWVtdS9xZW11LTAuOS4xL3FlbXUtMC45LjAtbnB0bC5wYXRjaAoK QW5kLCBQYXVsIEJyb29rIGlzIHN1cHBvc2VkIHRvIGJlIHdvcmtpbmcgb24gdGhpcy4KaHR0cDov L2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL3FlbXUtZGV2ZWwvMjAwOC0wNC9tc2cwMDY4NS5o dG1sCgpXb3VsZCBiZSBuaWNlIHRvIGtub3cgd2hhdCBpcyB0aGUgYWN0dWFsIHN0YXR1cyBvZiB0 aGlzLCBJJ3ZlIHVwZGF0ZWQKdGhlIHBhdGNoIG11bHRpcGxlIHRpbWVzIGFscmVhZHkuCgpCZXN0 IHJlZ2FyZHMuCgotLSAKRmVsaXBlIENvbnRyZXJhcwo= ------=_Part_17372_18287599.1210000373156 Content-Type: text/x-patch; name=09_arm_eabitls_felipec.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_ffv6vebp0 Content-Disposition: attachment; filename=09_arm_eabitls_felipec.patch Y29tbWl0IDg0MTM1ODcyZjU3ZWQwYmJhZTUyOGM1ODliY2E1MWRkZjE2MTY2M2YKQXV0aG9yOiBG ZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KRGF0ZTogICBNb24g TWF5IDUgMTc6MzU6NTIgMjAwOCArMDMwMAoKICAgIEFkZCBOUFRMIHN1cHBvcnQuCiAgICAKICAg IE9yaWdpbmFsIHBhdGNoIGJ5IFRoYXluZSBIYXJiYXVnaCBhbmQgUGF1bCBCcm9vay4KCmRpZmYg LS1naXQgYS9hcm0ubGQgYi9hcm0ubGQKaW5kZXggZTIxNmNiZi4uMDhjODdhMSAxMDA2NDQKLS0t IGEvYXJtLmxkCisrKyBiL2FybS5sZApAQCAtMjYsNiArMjYsMTAgQEAgU0VDVElPTlMKICAgICB7 ICooLnJlbC5yb2RhdGEpICooLnJlbC5nbnUubGlua29uY2UuciopIH0KICAgLnJlbGEucm9kYXRh ICAgOgogICAgIHsgKigucmVsYS5yb2RhdGEpICooLnJlbGEuZ251LmxpbmtvbmNlLnIqKSB9Cisg IC5yZWwudGRhdGEgICAgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251Lmxp bmtvbmNlLnRkLiopIH0KKyAgLnJlbGEudGRhdGEgICAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEu dGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQorICAucmVsLnRic3MgICAgICA6IHsg KigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQorICAucmVs YS50YnNzICAgICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29u Y2UudGIuKikgfQogICAucmVsLmdvdCAgICAgICA6IHsgKigucmVsLmdvdCkJCX0KICAgLnJlbGEu Z290ICAgICAgOiB7ICooLnJlbGEuZ290KQkJfQogICAucmVsLmN0b3JzICAgICA6IHsgKigucmVs LmN0b3JzKQl9CmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggYTJmNTRi OC4uOTEyY2Y1ZSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTEy LDYgKzExMiw3IEBAIGRhcndpbl91c2VyPSJubyIKIGJ1aWxkX2RvY3M9Im5vIgogdW5hbWVfcmVs ZWFzZT0iIgogY3Vyc2VzPSJ5ZXMiCitucHRsPSJ5ZXMiCiAKICMgT1Mgc3BlY2lmaWMKIHRhcmdl dG9zPWB1bmFtZSAtc2AKQEAgLTMzMyw2ICszMzQsOCBAQCBmb3Igb3B0IGRvCiAgIDs7CiAgICop IGVjaG8gIkVSUk9SOiB1bmtub3duIG9wdGlvbiAkb3B0Ijsgc2hvd19oZWxwPSJ5ZXMiCiAgIDs7 CisgIC0tZGlzYWJsZS1ucHRsKSBucHRsPSJubyIKKyAgOzsKICAgZXNhYwogZG9uZQogCkBAIC00 MzAsNiArNDMzLDcgQEAgZWNobyAiICAtLWVuYWJsZS1saW51eC11c2VyICAgICAgZW5hYmxlIGFs bCBsaW51eCB1c2VybW9kZSBlbXVsYXRpb24gdGFyZ2V0cyIKIGVjaG8gIiAgLS1kaXNhYmxlLWxp bnV4LXVzZXIgICAgIGRpc2FibGUgYWxsIGxpbnV4IHVzZXJtb2RlIGVtdWxhdGlvbiB0YXJnZXRz IgogZWNobyAiICAtLWVuYWJsZS1kYXJ3aW4tdXNlciAgICAgZW5hYmxlIGFsbCBkYXJ3aW4gdXNl cm1vZGUgZW11bGF0aW9uIHRhcmdldHMiCiBlY2hvICIgIC0tZGlzYWJsZS1kYXJ3aW4tdXNlciAg ICBkaXNhYmxlIGFsbCBkYXJ3aW4gdXNlcm1vZGUgZW11bGF0aW9uIHRhcmdldHMiCitlY2hvICIg IC0tZGlzYWJsZS1ucHRsICAgICAgICAgICBkaXNhYmxlIHVzZXJtb2RlIE5QVEwgZ3Vlc3Qgc3Vw cG9ydCIKIGVjaG8gIiAgLS1mbW9kLWxpYiAgICAgICAgICAgICAgIHBhdGggdG8gRk1PRCBsaWJy YXJ5IgogZWNobyAiICAtLWZtb2QtaW5jICAgICAgICAgICAgICAgcGF0aCB0byBGTU9EIGluY2x1 ZGVzIgogZWNobyAiICAtLWVuYWJsZS11bmFtZS1yZWxlYXNlPVIgUmV0dXJuIFIgZm9yIHVuYW1l IC1yIGluIHVzZXJtb2RlIGVtdWxhdGlvbiIKQEAgLTYwNyw2ICs2MTEsMjMgQEAgaW50IG1haW4o dm9pZCkgewogfQogRU9GCiAKKyMgY2hlY2sgTlBUTCBzdXBwb3J0CitjYXQgPiAkVE1QQyA8PEVP RgorI2luY2x1ZGUgPHNjaGVkLmg+Cit2b2lkIGZvbygpCit7CisjaWZuZGVmIENMT05FX1NFVFRM UworI2Vycm9yIGJvcmsKKyNlbmRpZgorfQorRU9GCisKK2lmICRjYyAtYyAtbyAkVE1QTyAkVE1Q QyAyPiAvZGV2L251bGwgOyB0aGVuCisgIDoKK2Vsc2UKKyAgIG5wdGw9Im5vIgorZmkKKwogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFNETCBwcm9iZQogCkBA IC04MDUsNiArODI2LDcgQEAgZWNobyAiYnJsYXBpIHN1cHBvcnQgICAgJGJybGFwaSIKIGVjaG8g IkRvY3VtZW50YXRpb24gICAgICRidWlsZF9kb2NzIgogWyAhIC16ICIkdW5hbWVfcmVsZWFzZSIg XSAmJiBcCiBlY2hvICJ1bmFtZSAtciAgICAgICAgICAkdW5hbWVfcmVsZWFzZSIKK2VjaG8gIk5Q VEwgc3VwcG9ydCAgICAgICRucHRsIgogCiBpZiB0ZXN0ICRzZGxfdG9vX29sZCA9ICJ5ZXMiOyB0 aGVuCiBlY2hvICItPiBZb3VyIFNETCB2ZXJzaW9uIGlzIHRvbyBvbGQgLSBwbGVhc2UgdXBncmFk ZSB0byBoYXZlIFNETCBzdXBwb3J0IgpAQCAtMTAyNyw2ICsxMDQ5LDcgQEAgaWYgdGVzdCAiJHNk bDEiID0gInllcyIgOyB0aGVuCiAgICAgZWNobyAiU0RMX0NGTEFHUz1gJHNkbF9jb25maWcgLS1j ZmxhZ3NgIiA+PiAkY29uZmlnX21hawogICBmaQogZmkKKwogaWYgdGVzdCAiJGNvY29hIiA9ICJ5 ZXMiIDsgdGhlbgogICBlY2hvICIjZGVmaW5lIENPTkZJR19DT0NPQSAxIiA+PiAkY29uZmlnX2gK ICAgZWNobyAiQ09ORklHX0NPQ09BPXllcyIgPj4gJGNvbmZpZ19tYWsKQEAgLTEyODksNiArMTMx MiwxNSBAQCBpZiB0ZXN0ICIkdGFyZ2V0X3VzZXJfb25seSIgPSAieWVzIiAtYSAiJGVsZmxvYWQz MiIgPSAieWVzIjsgdGhlbgogICBlY2hvICIjZGVmaW5lIFRBUkdFVF9IQVNfRUxGTE9BRDMyIDEi ID4+ICRjb25maWdfaAogZmkKIAoraWYgdGVzdCAiJG5wdGwiID0gInllcyIgOyB0aGVuCisgICAg Y2FzZSAiJHRhcmdldF9jcHUiIGluCisgICAgICBhcm0gfCBhcm1lYiB8IHBwYyB8IHBwYzY0KQor ICAgICAgICBlY2hvICJVU0VfTlBUTD15ZXMiID4+ICRjb25maWdfbWFrCisgICAgICAgIGVjaG8g IiNkZWZpbmUgVVNFX05QVEwgMSIgPj4gJGNvbmZpZ19oCisgICAgICA7OworICAgIGVzYWMKK2Zp CisKIHRlc3QgLWYgJHtjb25maWdfaH1+ICYmIGNtcCAtcyAkY29uZmlnX2ggJHtjb25maWdfaH1+ ICYmIG12ICR7Y29uZmlnX2h9fiAkY29uZmlnX2gKIAogZG9uZSAjIGZvciB0YXJnZXQgaW4gJHRh cmdldHMKZGlmZiAtLWdpdCBhL2V4ZWMtYWxsLmggYi9leGVjLWFsbC5oCmluZGV4IDg5OGNmNjgu LjIyMTEwZTkgMTAwNjQ0Ci0tLSBhL2V4ZWMtYWxsLmgKKysrIGIvZXhlYy1hbGwuaApAQCAtMzAz LDIxOCArMzAzLDggQEAgZXh0ZXJuIENQVVdyaXRlTWVtb3J5RnVuYyAqaW9fbWVtX3dyaXRlW0lP X01FTV9OQl9FTlRSSUVTXVs0XTsKIGV4dGVybiBDUFVSZWFkTWVtb3J5RnVuYyAqaW9fbWVtX3Jl YWRbSU9fTUVNX05CX0VOVFJJRVNdWzRdOwogZXh0ZXJuIHZvaWQgKmlvX21lbV9vcGFxdWVbSU9f TUVNX05CX0VOVFJJRVNdOwogCi0jaWYgZGVmaW5lZChfX2hwcGFfXykKLQotdHlwZWRlZiBpbnQg c3BpbmxvY2tfdFs0XTsKLQotI2RlZmluZSBTUElOX0xPQ0tfVU5MT0NLRUQgeyAxLCAxLCAxLCAx IH0KLQotc3RhdGljIGlubGluZSB2b2lkIHJlc2V0bG9jayAoc3BpbmxvY2tfdCAqcCkKLXsKLSAg ICAoKnApWzBdID0gKCpwKVsxXSA9ICgqcClbMl0gPSAoKnApWzNdID0gMTsKLX0KLQotI2Vsc2UK LQotdHlwZWRlZiBpbnQgc3BpbmxvY2tfdDsKLQotI2RlZmluZSBTUElOX0xPQ0tfVU5MT0NLRUQg MAotCi1zdGF0aWMgaW5saW5lIHZvaWQgcmVzZXRsb2NrIChzcGlubG9ja190ICpwKQotewotICAg ICpwID0gU1BJTl9MT0NLX1VOTE9DS0VEOwotfQotCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoX19w b3dlcnBjX18pCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnApCi17Ci0gICAg aW50IHJldDsKLSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICIwOiAgICBsd2FyeCAlMCwwLCUxXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICIgICAgICB4b3IuICUwLCUzLCUwXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIgICAg ICBibmUgMWZcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIHN0d2N4LiAlMiww LCUxXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICBibmUtIDBiXG4iCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICIxOiAgICAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg IDogIj0mciIgKHJldCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKHApLCAiciIg KDEpLCAiciIgKDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDogImNyMCIsICJtZW1vcnki KTsKLSAgICByZXR1cm4gcmV0OwotfQotI2VsaWYgZGVmaW5lZChfX2kzODZfXykKLXN0YXRpYyBp bmxpbmUgaW50IHRlc3RhbmRzZXQgKGludCAqcCkKLXsKLSAgICBsb25nIGludCByZWFkdmFsID0g MDsKLQotICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9jazsgY21weGNoZ2wgJTIsICUwIgot ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIrbSIgKCpwKSwgIithIiAocmVhZHZhbCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKDEpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIDogImNjIik7Ci0gICAgcmV0dXJuIHJlYWR2YWw7Ci19Ci0jZWxpZiBkZWZpbmVkKF9feDg2 XzY0X18pCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnApCi17Ci0gICAgbG9u ZyBpbnQgcmVhZHZhbCA9IDA7Ci0KLSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxvY2s7IGNt cHhjaGdsICUyLCAlMCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiK20iICgqcCksICIr YSIgKHJlYWR2YWwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDogInIiICgxKQotICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICJjYyIpOwotICAgIHJldHVybiByZWFkdmFsOwotfQotI2Vs aWYgZGVmaW5lZChfX3MzOTBfXykKLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RhbmRzZXQgKGludCAq cCkKLXsKLSAgICBpbnQgcmV0OwotCi0gICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIwOiBjcyAg ICAlMCwlMSwwKCUyKVxuIgotCQkJICAiICAgamwgICAgMGIiCi0JCQkgIDogIj0mZCIgKHJldCkK LQkJCSAgOiAiciIgKDEpLCAiYSIgKHApLCAiMCIgKCpwKQotCQkJICA6ICJjYyIsICJtZW1vcnki ICk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbGlmIGRlZmluZWQoX19hbHBoYV9fKQotc3RhdGlj IGlubGluZSBpbnQgdGVzdGFuZHNldCAoaW50ICpwKQotewotICAgIGludCByZXQ7Ci0gICAgdW5z aWduZWQgbG9uZyBvbmU7Ci0KLSAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjA6CW1vdiAxLCUy XG4iCi0JCQkgICIJbGRsX2wgJTAsJTFcbiIKLQkJCSAgIglzdGxfYyAlMiwlMVxuIgotCQkJICAi CWJlcSAlMiwxZlxuIgotCQkJICAiLnN1YnNlY3Rpb24gMlxuIgotCQkJICAiMToJYnIgMGJcbiIK LQkJCSAgIi5wcmV2aW91cyIKLQkJCSAgOiAiPXIiIChyZXQpLCAiPW0iICgqcCksICI9ciIgKG9u ZSkKLQkJCSAgOiAibSIgKCpwKSk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbGlmIGRlZmluZWQo X19zcGFyY19fKQotc3RhdGljIGlubGluZSBpbnQgdGVzdGFuZHNldCAoaW50ICpwKQotewotCWlu dCByZXQ7Ci0KLQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibGRzdHViCVslMV0sICUwIgotCQkJICAg ICA6ICI9ciIgKHJldCkKLQkJCSAgICAgOiAiciIgKHApCi0JCQkgICAgIDogIm1lbW9yeSIpOwot Ci0JcmV0dXJuIChyZXQgPyAxIDogMCk7Ci19Ci0jZWxpZiBkZWZpbmVkKF9fYXJtX18pCi1zdGF0 aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnNwaW5sb2NrKQotewotICAgIHJlZ2lzdGVy IHVuc2lnbmVkIGludCByZXQ7Ci0gICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInN3cCAlMCwgJTEs IFslMl0iCi0gICAgICAgICAgICAgICAgICAgICAgICAgOiAiPXIiKHJldCkKLSAgICAgICAgICAg ICAgICAgICAgICAgICA6ICIwIigxKSwgInIiKHNwaW5sb2NrKSk7Ci0KLSAgICByZXR1cm4gcmV0 OwotfQotI2VsaWYgZGVmaW5lZChfX21jNjgwMDApCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0YW5k c2V0IChpbnQgKnApCi17Ci0gICAgY2hhciByZXQ7Ci0gICAgX19hc21fXyBfX3ZvbGF0aWxlX18o InRhcyAlMTsgc25lICUwIgotICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1yIiAocmV0KQot ICAgICAgICAgICAgICAgICAgICAgICAgIDogIm0iIChwKQotICAgICAgICAgICAgICAgICAgICAg ICAgIDogImNjIiwibWVtb3J5Iik7Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbGlmIGRlZmluZWQo X19ocHBhX18pCi0KLS8qIEJlY2F1c2UgbWFsbG9jIG9ubHkgZ3VhcmFudGVlcyA4LWJ5dGUgYWxp Z25tZW50IGZvciBtYWxsb2MnZCBkYXRhLAotICAgYW5kIEdDQyBvbmx5IGd1YXJhbnRlZXMgOC1i eXRlIGFsaWdubWVudCBmb3Igc3RhY2sgbG9jYWxzLCB3ZSBjYW4ndAotICAgYmUgYXNzdXJlZCBv ZiAxNi1ieXRlIGFsaWdubWVudCBmb3IgYXRvbWljIGxvY2sgZGF0YSBldmVuIGlmIHdlCi0gICBz cGVjaWZ5ICJfX2F0dHJpYnV0ZSAoKGFsaWduZWQoMTYpKSkiIGluIHRoZSB0eXBlIGRlY2xhcmF0 aW9uLiAgU28sCi0gICB3ZSB1c2UgYSBzdHJ1Y3QgY29udGFpbmluZyBhbiBhcnJheSBvZiBmb3Vy IGludHMgZm9yIHRoZSBhdG9taWMgbG9jawotICAgdHlwZSBhbmQgZHluYW1pY2FsbHkgc2VsZWN0 IHRoZSAxNi1ieXRlIGFsaWduZWQgaW50IGZyb20gdGhlIGFycmF5Ci0gICBmb3IgdGhlIHNlbWFw aG9yZS4gICovCi0jZGVmaW5lIF9fUEFfTERDV19BTElHTk1FTlQgMTYKLXN0YXRpYyBpbmxpbmUg dm9pZCAqbGRjd19hbGlnbiAodm9pZCAqcCkgewotICAgIHVuc2lnbmVkIGxvbmcgYSA9ICh1bnNp Z25lZCBsb25nKXA7Ci0gICAgYSA9IChhICsgX19QQV9MRENXX0FMSUdOTUVOVCAtIDEpICYgfihf X1BBX0xEQ1dfQUxJR05NRU5UIC0gMSk7Ci0gICAgcmV0dXJuICh2b2lkICopYTsKLX0KLQotc3Rh dGljIGlubGluZSBpbnQgdGVzdGFuZHNldCAoc3BpbmxvY2tfdCAqcCkKLXsKLSAgICB1bnNpZ25l ZCBpbnQgcmV0OwotICAgIHAgPSBsZGN3X2FsaWduKHApOwotICAgIF9fYXNtX18gX192b2xhdGls ZV9fKCJsZGN3IDAoJTEpLCUwIgotICAgICAgICAgICAgICAgICAgICAgICAgIDogIj1yIiAocmV0 KQotICAgICAgICAgICAgICAgICAgICAgICAgIDogInIiIChwKQotICAgICAgICAgICAgICAgICAg ICAgICAgIDogIm1lbW9yeSIgKTsKLSAgICByZXR1cm4gIXJldDsKLX0KLQotI2VsaWYgZGVmaW5l ZChfX2lhNjQpCi0KLSNpbmNsdWRlIDxpYTY0aW50cmluLmg+Ci0KLXN0YXRpYyBpbmxpbmUgaW50 IHRlc3RhbmRzZXQgKGludCAqcCkKLXsKLSAgICByZXR1cm4gX19zeW5jX2xvY2tfdGVzdF9hbmRf c2V0IChwLCAxKTsKLX0KLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi1zdGF0aWMgaW5saW5lIGlu dCB0ZXN0YW5kc2V0IChpbnQgKnApCi17Ci0gICAgaW50IHJldDsKLQotICAgIF9fYXNtX18gX192 b2xhdGlsZV9fICgKLQkiCS5zZXQgcHVzaAkJXG4iCi0JIgkuc2V0IG5vYXQJCVxuIgotCSIJLnNl dCBtaXBzMgkJXG4iCi0JIjE6CWxpCSQxLCAxCQlcbiIKLQkiCWxsCSUwLCAlMQkJXG4iCi0JIglz YwkkMSwgJTEJCVxuIgotCSIJYmVxegkkMSwgMWIJCVxuIgotCSIJLnNldCBwb3AJCSIKLQk6ICI9 ciIgKHJldCksICIrUiIgKCpwKQotCToKLQk6ICJtZW1vcnkiKTsKLQotICAgIHJldHVybiByZXQ7 Ci19Ci0jZWxzZQotI2Vycm9yIHVuaW1wbGVtZW50ZWQgQ1BVIHN1cHBvcnQKLSNlbmRpZgotCi0j aWYgZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQotc3RhdGljIGlubGluZSB2b2lkIHNwaW5fbG9j ayhzcGlubG9ja190ICpsb2NrKQotewotICAgIHdoaWxlICh0ZXN0YW5kc2V0KGxvY2spKTsKLX0K LQotc3RhdGljIGlubGluZSB2b2lkIHNwaW5fdW5sb2NrKHNwaW5sb2NrX3QgKmxvY2spCi17Ci0g ICAgcmVzZXRsb2NrKGxvY2spOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBzcGluX3RyeWxvY2so c3BpbmxvY2tfdCAqbG9jaykKLXsKLSAgICByZXR1cm4gIXRlc3RhbmRzZXQobG9jayk7Ci19Ci0j ZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHNwaW5fbG9jayhzcGlubG9ja190ICpsb2NrKQotewot fQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc3Bpbl91bmxvY2soc3BpbmxvY2tfdCAqbG9jaykKLXsK LX0KLQotc3RhdGljIGlubGluZSBpbnQgc3Bpbl90cnlsb2NrKHNwaW5sb2NrX3QgKmxvY2spCi17 Ci0gICAgcmV0dXJuIDE7Ci19Ci0jZW5kaWYKLQorI2luY2x1ZGUgInFzcGlubG9jay5oIgorICAK IGV4dGVybiBzcGlubG9ja190IHRiX2xvY2s7CiAKIGV4dGVybiBpbnQgdGJfaW52YWxpZGF0ZWRf ZmxhZzsKZGlmZiAtLWdpdCBhL2xpbnV4LXVzZXIvYXJtL3N5c2NhbGwuaCBiL2xpbnV4LXVzZXIv YXJtL3N5c2NhbGwuaAppbmRleCBlN2YyZThkLi5iZTIxY2JlIDEwMDY0NAotLS0gYS9saW51eC11 c2VyL2FybS9zeXNjYWxsLmgKKysrIGIvbGludXgtdXNlci9hcm0vc3lzY2FsbC5oCkBAIC0yOCw3 ICsyOCw5IEBAIHN0cnVjdCB0YXJnZXRfcHRfcmVncyB7CiAjZGVmaW5lIEFSTV9TWVNDQUxMX0JB U0UJMHg5MDAwMDAKICNkZWZpbmUgQVJNX1RIVU1CX1NZU0NBTEwJMAogCi0jZGVmaW5lIEFSTV9O Ul9jYWNoZWZsdXNoIChBUk1fU1lTQ0FMTF9CQVNFICsgMHhmMDAwMCArIDIpCisjZGVmaW5lIEFS TV9OUl9CQVNFICAgICAgIDB4ZjAwMDAKKyNkZWZpbmUgQVJNX05SX2NhY2hlZmx1c2ggKEFSTV9O Ul9CQVNFICsgMikKKyNkZWZpbmUgQVJNX05SX3NldF90bHMgICAgKEFSTV9OUl9CQVNFICsgNSkK IAogI2RlZmluZSBBUk1fTlJfc2VtaWhvc3RpbmcJICAweDEyMzQ1NgogI2RlZmluZSBBUk1fTlJf dGh1bWJfc2VtaWhvc3RpbmcgIDB4QUIKZGlmZiAtLWdpdCBhL2xpbnV4LXVzZXIvbWFpbi5jIGIv bGludXgtdXNlci9tYWluLmMKaW5kZXggMjEyNWFhNS4uYzg1ZTQ4NCAxMDA2NDQKLS0tIGEvbGlu dXgtdXNlci9tYWluLmMKKysrIGIvbGludXgtdXNlci9tYWluLmMKQEAgLTM2NSw2ICszNjUsNTAg QEAgc3RhdGljIHZvaWQgYXJtX2NhY2hlX2ZsdXNoKGFiaV91bG9uZyBzdGFydCwgYWJpX3Vsb25n IGxhc3QpCiAgICAgfQogfQogCisvKiBIYW5kbGUgYSBqdW1wIHRvIHRoZSBrZXJuZWwgY29kZSBw YWdlLiAgKi8KK3N0YXRpYyBpbnQKK2RvX2tlcm5lbF90cmFwKENQVUFSTVN0YXRlICplbnYpCit7 CisgICAgdWludDMyX3QgYWRkcjsKKyAgICB1aW50MzJfdCAqcHRyOworICAgIHVpbnQzMl90IGNw c3I7CisKKyAgICBzd2l0Y2ggKGVudi0+cmVnc1sxNV0pIHsKKyAgICBjYXNlIDB4ZmZmZjBmYzA6 IC8qIF9fa2VybmVsX2NtcHhjaGcgKi8KKyAgICAgICAgLyogWFhYOiBUaGlzIG9ubHkgd29ya3Mg YmV0d2VlbiB0aHJlYWRzLCBub3QgYmV0d2VlbiBwcm9jZXNzZXMuCisgICAgICAgICAgIFVzZSBu YXRpdmUgYXRvbWljIG9wZXJhdGlvbnMuICAqLworICAgICAgICAvKiA/Pz8gVGhpcyBwcm9iYWJs eSBicmVha3MgaG9ycmlibHkgaWYgdGhlIGFjY2VzcyBzZWdmYXVsdHMuICAqLworICAgICAgICBj cHVfbG9jaygpOworICAgICAgICBwdHIgPSAodWludDMyX3QgKillbnYtPnJlZ3NbMl07CisgICAg ICAgIGNwc3IgPSBjcHNyX3JlYWQoZW52KTsKKyAgICAgICAgaWYgKCpwdHIgPT0gZW52LT5yZWdz WzBdKSB7CisgICAgICAgICAgICAqcHRyID0gZW52LT5yZWdzWzFdOworICAgICAgICAgICAgZW52 LT5yZWdzWzBdID0gMDsKKyAgICAgICAgICAgIGNwc3IgfD0gQ1BTUl9DOworICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgZW52LT5yZWdzWzBdID0gLTE7CisgICAgICAgICAgICBjcHNyICY9 IH5DUFNSX0M7CisgICAgICAgIH0KKyAgICAgICAgY3Bzcl93cml0ZShlbnYsIGNwc3IsIENQU1Jf Qyk7CisgICAgICAgIGNwdV91bmxvY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAweGZm ZmYwZmUwOiAvKiBfX2tlcm5lbF9nZXRfdGxzICovCisgICAgICAgIGVudi0+cmVnc1swXSA9IGVu di0+Y3AxNS5jMTNfdGxzMzsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg cmV0dXJuIDE7CisgICAgfQorICAgIC8qIEp1bXAgYmFjayB0byB0aGUgY2FsbGVyLiAgKi8KKyAg ICBhZGRyID0gZW52LT5yZWdzWzE0XTsKKyAgICBpZiAoYWRkciAmIDEpIHsKKyAgICAgICAgZW52 LT50aHVtYiA9IDE7CisgICAgICAgIGFkZHIgJj0gfjE7CisgICAgfQorICAgIGVudi0+cmVnc1sx NV0gPSBhZGRyOworCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgY3B1X2xvb3AoQ1BVQVJNU3Rh dGUgKmVudikKIHsKICAgICBpbnQgdHJhcG5yOwpAQCAtNDc1LDEwICs1MTksOCBAQCB2b2lkIGNw dV9sb29wKENQVUFSTVN0YXRlICplbnYpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAobiA9PSBBUk1fTlJfY2FjaGVmbHVzaCkg ewotICAgICAgICAgICAgICAgICAgICBhcm1fY2FjaGVfZmx1c2goZW52LT5yZWdzWzBdLCBlbnYt PnJlZ3NbMV0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobiA9PSBBUk1fTlJfc2VtaWhv c3RpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG4gPT0gQVJNX05SX3RodW1iX3Nl bWlob3N0aW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKG4gPT0gQVJNX05SX3NlbWlob3N0aW5n CisgICAgICAgICAgICAgICAgICAgIHx8IG4gPT0gQVJNX05SX3RodW1iX3NlbWlob3N0aW5nKSB7 CiAgICAgICAgICAgICAgICAgICAgIGVudi0+cmVnc1swXSA9IGRvX2FybV9zZW1paG9zdGluZyAo ZW52KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG4gPT0gMCB8fCBuID49IEFSTV9TWVND QUxMX0JBU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChlbnYtPnRodW1iICYmIG4g PT0gQVJNX1RIVU1CX1NZU0NBTEwpKSB7CkBAIC00ODksNiArNTMxLDI2IEBAIHZvaWQgY3B1X2xv b3AoQ1BVQVJNU3RhdGUgKmVudikKICAgICAgICAgICAgICAgICAgICAgICAgIG4gLT0gQVJNX1NZ U0NBTExfQkFTRTsKICAgICAgICAgICAgICAgICAgICAgICAgIGVudi0+ZWFiaSA9IDA7CiAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG4gPiBBUk1fTlJfQkFT RSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuKQorICAgICAgICAgICAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQVJNX05SX2NhY2hl Zmx1c2g6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcm1fY2FjaGVfZmx1c2goZW52 LT5yZWdzWzBdLCBlbnYtPnJlZ3NbMV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisjaWZkZWYgVVNFX05QVEwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBB Uk1fTlJfc2V0X3RsczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdV9zZXRfdGxz KGVudiwgZW52LT5yZWdzWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi0+ cmVnc1swXSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRp ZgorICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJpbnRmICgiRXJyb3I6IEJhZCBzeXNjYWxsOiAleFxuIiwgbik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPnJlZ3NbMF0gPSAtVEFSR0VUX0VOT1NZUzsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGVu di0+cmVnc1swXSA9IGRvX3N5c2NhbGwoZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW52LT5yZWdzWzBdLApAQCAtNDk3LDcgKzU1OSw5IEBAIHZvaWQgY3B1X2xv b3AoQ1BVQVJNU3RhdGUgKmVudikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbnYtPnJlZ3NbM10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW52LT5yZWdzWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVudi0+cmVnc1s1XSk7CisgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ZiAo IkVycm9yOiBCYWQgc3lzY2FsbDogJXhcbiIsIG4pOwogICAgICAgICAgICAgICAgICAgICBnb3Rv IGVycm9yOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTUzNSw2ICs1OTks MTAgQEAgdm9pZCBjcHVfbG9vcChDUFVBUk1TdGF0ZSAqZW52KQogICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVhDUF9L RVJORUxfVFJBUDoKKyAgICAgICAgICAgIGlmIChkb19rZXJuZWxfdHJhcChlbnYpKQorICAgICAg ICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6 CiAgICAgICAgIGVycm9yOgogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiB1bmhh bmRsZWQgQ1BVIGV4Y2VwdGlvbiAweCV4IC0gYWJvcnRpbmdcbiIsCkBAIC0yNDAzLDYgKzI0NzEs MTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIHRzLT5oZWFwX2Jhc2Ug PSBpbmZvLT5icms7CiAgICAgLyogVGhpcyB3aWxsIGJlIGZpbGxlZCBpbiBvbiB0aGUgZmlyc3Qg U1lTX0hFQVBJTkZPIGNhbGwuICAqLwogICAgIHRzLT5oZWFwX2xpbWl0ID0gMDsKKyAgICAvKiBS ZWdpc3RlciB0aGUgbWFnaWMga2VybmVsIGNvZGUgcGFnZS4gIFRoZSBjcHUgd2lsbCBnZW5lcmF0 ZSBhCisgICAgICAgc3BlY2lhbCBleGNlcHRpb24gd2hlbiBpdCB0cmllcyB0byBleGVjdXRlIGNv ZGUgaGVyZS4gIFdlIGNhbid0CisgICAgICAgcHV0IHJlYWwgY29kZSBoZXJlIGJlY2F1c2UgaXQg bWF5IGJlIGluIHVzZSBieSB0aGUgaG9zdCBrZXJuZWwuICAqLworICAgIHBhZ2Vfc2V0X2ZsYWdz KDB4ZmZmZjAwMDAsIDB4ZmZmZjBmZmYsIDApOwogI2VuZGlmCiAKICAgICBpZiAoZ2Ric3R1Yl9w b3J0KSB7CmRpZmYgLS1naXQgYS9saW51eC11c2VyL3FlbXUuaCBiL2xpbnV4LXVzZXIvcWVtdS5o CmluZGV4IGIzM2FkODkuLjViNTRjMjkgMTAwNjQ0Ci0tLSBhL2xpbnV4LXVzZXIvcWVtdS5oCisr KyBiL2xpbnV4LXVzZXIvcWVtdS5oCkBAIC0xMDksNiArMTA5LDkgQEAgdHlwZWRlZiBzdHJ1Y3Qg VGFza1N0YXRlIHsKICNlbmRpZgogICAgIGludCB1c2VkOyAvKiBub24gemVybyBpZiB1c2VkICov CiAgICAgc3RydWN0IGltYWdlX2luZm8gKmluZm87CisjaWZkZWYgVVNFX05QVEwKKyAgICBhYmlf dWxvbmcgY2hpbGRfdGlkX2FkZHI7CisjZW5kaWYKICAgICB1aW50OF90IHN0YWNrWzBdOwogfSBf X2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkpIFRhc2tTdGF0ZTsKIApkaWZmIC0tZ2l0IGEvbGlu dXgtdXNlci9zeXNjYWxsLmMgYi9saW51eC11c2VyL3N5c2NhbGwuYwppbmRleCBiMWRjMzY1Li4z NGEwNjQ3IDEwMDY0NAotLS0gYS9saW51eC11c2VyL3N5c2NhbGwuYworKysgYi9saW51eC11c2Vy L3N5c2NhbGwuYwpAQCAtNzAsOSArNzAsMTggQEAKICNpbmNsdWRlIDxsaW51eC9rZC5oPgogCiAj aW5jbHVkZSAicWVtdS5oIgorI2luY2x1ZGUgInFzcGlubG9jay5oIgogCiAvLyNkZWZpbmUgREVC VUcKIAorI2lmZGVmIFVTRV9OUFRMCisjZGVmaW5lIENMT05FX05QVExfRkxBR1MyIChDTE9ORV9T RVRUTFMgfCBcCisgICAgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX1NFVFRJRCB8 IENMT05FX0NISUxEX0NMRUFSVElEKQorI2Vsc2UKKy8qIFhYWDogSGFyZGNvZGUgdGhlIGFib3Zl IHZhbHVlcy4gICovCisjZGVmaW5lIENMT05FX05QVExfRkxBR1MyIDAKKyNlbmRpZgorCiAjaWYg ZGVmaW5lZChUQVJHRVRfSTM4NikgfHwgZGVmaW5lZChUQVJHRVRfQVJNKSB8fCBkZWZpbmVkKFRB UkdFVF9TUEFSQykgXAogICAgIHx8IGRlZmluZWQoVEFSR0VUX002OEspIHx8IGRlZmluZWQoVEFS R0VUX1NINCkgfHwgZGVmaW5lZChUQVJHRVRfQ1JJUykKIC8qIDE2IGJpdCB1aWQgd3JhcHBlcnMg ZW11bGF0aW9uICovCkBAIC0yNzAwLDkgKzI3MDksMTkgQEAgYWJpX2xvbmcgZG9fYXJjaF9wcmN0 bChDUFVYODZTdGF0ZSAqZW52LCBpbnQgY29kZSwgYWJpX3Vsb25nIGFkZHIpCiAgICB0aHJlYWQv cHJvY2VzcyAqLwogI2RlZmluZSBORVdfU1RBQ0tfU0laRSA4MTkyCiAKKyNpZmRlZiBVU0VfTlBU TAorc3RhdGljIHNwaW5sb2NrX3QgbnB0bF9sb2NrID0gU1BJTl9MT0NLX1VOTE9DS0VEOworI2Vu ZGlmCisKIHN0YXRpYyBpbnQgY2xvbmVfZnVuYyh2b2lkICphcmcpCiB7CiAgICAgQ1BVU3RhdGUg KmVudiA9IGFyZzsKKyNpZmRlZiBVU0VfTlBUTAorICAgIC8qIFdhaXQgdW50aWwgdGhlIHBhcmVu dCBoYXMgZmluc2hlZCBpbml0aWFsaXppbmcgdGhlIHRscyBzdGF0ZS4gICovCisgICAgd2hpbGUg KCFzcGluX3RyeWxvY2soJm5wdGxfbG9jaykpCisgICAgICAgIHVzbGVlcCgxKTsKKyAgICBzcGlu X3VubG9jaygmbnB0bF9sb2NrKTsKKyNlbmRpZgogICAgIGNwdV9sb29wKGVudik7CiAgICAgLyog bmV2ZXIgZXhpdHMgKi8KICAgICByZXR1cm4gMDsKQEAgLTI3MTAsMTIgKzI3MjksMjQgQEAgc3Rh dGljIGludCBjbG9uZV9mdW5jKHZvaWQgKmFyZykKIAogLyogZG9fZm9yaygpIE11c3QgcmV0dXJu IGhvc3QgdmFsdWVzIGFuZCB0YXJnZXQgZXJybm9zICh1bmxpa2UgbW9zdAogICAgZG9fKigpIGZ1 bmN0aW9ucykuICovCi1pbnQgZG9fZm9yayhDUFVTdGF0ZSAqZW52LCB1bnNpZ25lZCBpbnQgZmxh Z3MsIGFiaV91bG9uZyBuZXdzcCkKK2ludCBkb19mb3JrKENQVVN0YXRlICplbnYsCisgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICBhYmlfdWxvbmcgbmV3X3N0a19h ZGRyLAorICAgICAgICAgICAgYWJpX3Vsb25nIHBhcmVudF90aWRfYWRkciwKKyAgICAgICAgICAg IGFiaV91bG9uZyBuZXd0bHNfYWRkciwKKyAgICAgICAgICAgIGFiaV91bG9uZyBjaGlsZF90aWRf YWRkcikKIHsKICAgICBpbnQgcmV0OwogICAgIFRhc2tTdGF0ZSAqdHM7CiAgICAgdWludDhfdCAq bmV3X3N0YWNrOwogICAgIENQVVN0YXRlICpuZXdfZW52OworI2lmZGVmIFVTRV9OUFRMCisgICAg dW5zaWduZWQgaW50IG5wdGxfZmxhZ3M7CisKKyAgICBpZiAoZmxhZ3MgJiBDTE9ORV9QQVJFTlRf U0VUVElEKQorICAgICAgICBpZiAocHV0X3VzZXJfczMyKGdldHRpZCgpLCBwYXJlbnRfdGlkX2Fk ZHIpKQorICAgICAgICAgICAgcmV0dXJuIC1UQVJHRVRfRUZBVUxUOworI2VuZGlmCiAKICAgICBp ZiAoZmxhZ3MgJiBDTE9ORV9WTSkgewogICAgICAgICB0cyA9IG1hbGxvYyhzaXplb2YoVGFza1N0 YXRlKSArIE5FV19TVEFDS19TSVpFKTsKQEAgLTI3MjcsMzQgKzI3NTgsMjcgQEAgaW50IGRvX2Zv cmsoQ1BVU3RhdGUgKmVudiwgdW5zaWduZWQgaW50IGZsYWdzLCBhYmlfdWxvbmcgbmV3c3ApCiAg ICAgICAgIGZpcnN0X3Rhc2tfc3RhdGUgPSB0czsKICAgICAgICAgLyogd2UgY3JlYXRlIGEgbmV3 IENQVSBpbnN0YW5jZS4gKi8KICAgICAgICAgbmV3X2VudiA9IGNwdV9jb3B5KGVudik7CisgICAg ICAgIGlmICghbmV3X3N0a19hZGRyKQorICAgICAgICAgICAgbmV3X3N0a19hZGRyID0gZ2V0X3Nw X2Zyb21fY3B1c3RhdGUoZW52KTsKICNpZiBkZWZpbmVkKFRBUkdFVF9JMzg2KQotICAgICAgICBp ZiAoIW5ld3NwKQotICAgICAgICAgICAgbmV3c3AgPSBlbnYtPnJlZ3NbUl9FU1BdOwotICAgICAg ICBuZXdfZW52LT5yZWdzW1JfRVNQXSA9IG5ld3NwOworICAgICAgICBuZXdfZW52LT5yZWdzW1Jf RVNQXSA9IG5ld19zdGtfYWRkcjsKICAgICAgICAgbmV3X2Vudi0+cmVnc1tSX0VBWF0gPSAwOwog I2VsaWYgZGVmaW5lZChUQVJHRVRfQVJNKQotICAgICAgICBpZiAoIW5ld3NwKQotICAgICAgICAg ICAgbmV3c3AgPSBlbnYtPnJlZ3NbMTNdOwotICAgICAgICBuZXdfZW52LT5yZWdzWzEzXSA9IG5l d3NwOworICAgICAgICBuZXdfZW52LT5yZWdzWzEzXSA9IG5ld19zdGtfYWRkcjsKICAgICAgICAg bmV3X2Vudi0+cmVnc1swXSA9IDA7CiAjZWxpZiBkZWZpbmVkKFRBUkdFVF9TUEFSQykKLSAgICAg ICAgaWYgKCFuZXdzcCkKLSAgICAgICAgICAgIG5ld3NwID0gZW52LT5yZWd3cHRyWzIyXTsKLSAg ICAgICAgbmV3X2Vudi0+cmVnd3B0clsyMl0gPSBuZXdzcDsKKyAgICAgICAgbmV3X2Vudi0+cmVn d3B0clsyMl0gPSBuZXdfc3RrX2FkZHI7CiAgICAgICAgIG5ld19lbnYtPnJlZ3dwdHJbMF0gPSAw OwogCS8qIFhYWFhYICovCiAgICAgICAgIHByaW50ZiAoIkhFTFBNRTogJXM6JWRcbiIsIF9fRklM RV9fLCBfX0xJTkVfXyk7CiAjZWxpZiBkZWZpbmVkKFRBUkdFVF9NNjhLKQotICAgICAgICBpZiAo IW5ld3NwKQotICAgICAgICAgICAgbmV3c3AgPSBlbnYtPmFyZWdzWzddOwotICAgICAgICBuZXdf ZW52LT5hcmVnc1s3XSA9IG5ld3NwOworICAgICAgICBuZXdfZW52LT5hcmVnc1s3XSA9IG5ld19z dGtfYWRkcjsKICAgICAgICAgbmV3X2Vudi0+ZHJlZ3NbMF0gPSAwOwogICAgICAgICAvKiA/Pz8g aXMgdGhpcyBzdWZmaWNpZW50PyAgKi8KICNlbGlmIGRlZmluZWQoVEFSR0VUX01JUFMpCi0gICAg ICAgIGlmICghbmV3c3ApCi0gICAgICAgICAgICBuZXdzcCA9IGVudi0+Z3ByW2Vudi0+Y3VycmVu dF90Y11bMjldOwotICAgICAgICBuZXdfZW52LT5ncHJbZW52LT5jdXJyZW50X3RjXVsyOV0gPSBu ZXdzcDsKKyAgICAgICAgbmV3X2Vudi0+Z3ByWzI5XVtlbnYtPmN1cnJlbnRfdGNdID0gbmV3X3N0 a19hZGRyOwogI2VsaWYgZGVmaW5lZChUQVJHRVRfUFBDKQorICAgICAgICBuZXdfZW52LT5ncHJb MV0gPSBuZXdfc3RrX2FkZHI7CiAgICAgICAgIGlmICghbmV3c3ApCiAgICAgICAgICAgICBuZXdz cCA9IGVudi0+Z3ByWzFdOwogICAgICAgICBuZXdfZW52LT5ncHJbMV0gPSBuZXdzcDsKQEAgLTI3 NjQsMTQgKzI3ODgsMTAgQEAgaW50IGRvX2ZvcmsoQ1BVU3RhdGUgKmVudiwgdW5zaWduZWQgaW50 IGZsYWdzLCBhYmlfdWxvbmcgbmV3c3ApCiAgICAgICAgICAgICAgICAgbmV3X2Vudi0+Z3ByW2ld ID0gMDsKICAgICAgICAgfQogI2VsaWYgZGVmaW5lZChUQVJHRVRfU0g0KQotCWlmICghbmV3c3Ap Ci0JICBuZXdzcCA9IGVudi0+Z3JlZ3NbMTVdOwotCW5ld19lbnYtPmdyZWdzWzE1XSA9IG5ld3Nw OworIAluZXdfZW52LT5ncmVnc1sxNV0gPSBuZXdfc3RrX2FkZHI7CiAJLyogWFhYWFggKi8KICNl bGlmIGRlZmluZWQoVEFSR0VUX0FMUEhBKQotICAgICAgIGlmICghbmV3c3ApCi0gICAgICAgICBu ZXdzcCA9IGVudi0+aXJbMzBdOwotICAgICAgIG5ld19lbnYtPmlyWzMwXSA9IG5ld3NwOworICAg ICAgICBuZXdfZW52LT5pclszMF0gPSBuZXdfc3RrX2FkZHI7CiAgICAgICAgIC8qID8gKi8KICAg ICAgICAgewogICAgICAgICAgICAgaW50IGk7CkBAIC0yNzc5LDIzICsyNzk5LDcxIEBAIGludCBk b19mb3JrKENQVVN0YXRlICplbnYsIHVuc2lnbmVkIGludCBmbGFncywgYWJpX3Vsb25nIG5ld3Nw KQogICAgICAgICAgICAgICAgIG5ld19lbnYtPmlyW2ldID0gMDsKICAgICAgICAgfQogI2VsaWYg ZGVmaW5lZChUQVJHRVRfQ1JJUykKLQlpZiAoIW5ld3NwKQotCSAgbmV3c3AgPSBlbnYtPnJlZ3Nb MTRdOwotCW5ld19lbnYtPnJlZ3NbMTRdID0gbmV3c3A7CisJbmV3X2Vudi0+cmVnc1sxNF0gPSBu ZXdfc3RrX2FkZHI7CiAjZWxzZQogI2Vycm9yIHVuc3VwcG9ydGVkIHRhcmdldCBDUFUKICNlbmRp ZgogICAgICAgICBuZXdfZW52LT5vcGFxdWUgPSB0czsKKyNpZmRlZiBVU0VfTlBUTAorICAgICAg ICBucHRsX2ZsYWdzID0gZmxhZ3M7CisgICAgICAgIGZsYWdzICY9IH5DTE9ORV9OUFRMX0ZMQUdT MjsKKworICAgICAgICBpZiAobnB0bF9mbGFncyAmIENMT05FX0NISUxEX0NMRUFSVElEKSB7Cisg ICAgICAgICAgICB0cy0+Y2hpbGRfdGlkX2FkZHIgPSBjaGlsZF90aWRfYWRkcjsKKyAgICAgICAg fQorCisgICAgICAgIGlmIChucHRsX2ZsYWdzICYgQ0xPTkVfU0VUVExTKQorICAgICAgICAgICAg Y3B1X3NldF90bHMobmV3X2VudiwgbmV3dGxzX2FkZHIpOworCisgICAgICAgIC8qIEdyYWIgdGhl IGdsb2JhbCBjcHUgbG9jayBzbyB0aGF0IHRoZSB0aHJlYWQgc2V0dXAgYXBwZWFycworICAgICAg ICAgICBhdG9taWMuICAqLworICAgICAgICBpZiAobnB0bF9mbGFncyAmIENMT05FX0NISUxEX1NF VFRJRCkKKyAgICAgICAgICAgIHNwaW5fbG9jaygmbnB0bF9sb2NrKTsKKworI2Vsc2UKKyAgICAg ICAgaWYgKGZsYWdzICYgQ0xPTkVfTlBUTF9GTEFHUzIpCisgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKyNlbmRpZgogI2lmZGVmIF9faWE2NF9fCiAgICAgICAgIHJldCA9IF9fY2xvbmUyKGNs b25lX2Z1bmMsIG5ld19zdGFjayArIE5FV19TVEFDS19TSVpFLCBmbGFncywgbmV3X2Vudik7CiAj ZWxzZQogCXJldCA9IGNsb25lKGNsb25lX2Z1bmMsIG5ld19zdGFjayArIE5FV19TVEFDS19TSVpF LCBmbGFncywgbmV3X2Vudik7CiAjZW5kaWYKKyNpZmRlZiBVU0VfTlBUTAorICAgICAgICBpZiAo cmV0ICE9IC0xKSB7CisgICAgICAgICAgICBpZiAobnB0bF9mbGFncyAmIENMT05FX0NISUxEX1NF VFRJRCkKKyAgICAgICAgICAgICAgICBpZiAocHV0X3VzZXJfczMyKHJldCwgY2hpbGRfdGlkX2Fk ZHIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLVRBUkdFVF9FRkFVTFQ7CisgICAgICAg IH0KKworICAgICAgICAvKiBBbGxvdyB0aGUgY2hpbGQgdG8gY29udGludWUuICAqLworICAgICAg ICBpZiAobnB0bF9mbGFncyAmIENMT05FX0NISUxEX1NFVFRJRCkKKyAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZucHRsX2xvY2spOworI2VuZGlmCiAgICAgfSBlbHNlIHsKICAgICAgICAgLyogaWYg bm8gQ0xPTkVfVk0sIHdlIGNvbnNpZGVyIGl0IGlzIGEgZm9yayAqLwotICAgICAgICBpZiAoKGZs YWdzICYgfkNTSUdOQUwpICE9IDApCisgICAgICAgIGlmICgoZmxhZ3MgJiB+KENTSUdOQUwgfCBD TE9ORV9OUFRMX0ZMQUdTMikpICE9IDApCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAg ICAgICAgcmV0ID0gZm9yaygpOworI2lmZGVmIFVTRV9OUFRMCisgICAgICAgIC8qIFRoZXJlIGlz IGEgcmFjZSBjb25kaXRpb24gaGVyZS4gIFRoZSBwYXJlbnQgcHJvY2VzcyBjb3VsZAorICAgICAg ICAgICB0aGVvcmV0aWNhbGx5IHJlYWQgdGhlIFRJRCBpbiB0aGUgY2hpbGQgcHJvY2VzcyBiZWZv cmUgdGhlIGNoaWxkCisgICAgICAgICAgIHRpZCBpcyBzZXQuICBUaGlzIHdvdWxkIHJlcXVpcmUg dXNpbmcgZWl0aGVyIHB0cmFjZQorICAgICAgICAgICAobm90IGltcGxlbWVudGVkKSBvciBoYXZp bmcgKl90aWRwdHIgdG8gcG9pbnQgYXQgYSBzaGFyZWQgbWVtb3J5CisgICAgICAgICAgIG1hcHBp bmcuICBXZSBjYW4ndCByZXBlYXQgdGhlIHNwaW5sb2NrIGhhY2sgdXNlZCBhYm92ZSBiZWNhdXNl CisgICAgICAgICAgIHRoZSBjaGlsZCBwcm9jZXNzIGdldHMgaXRzIG93biBjb3B5IG9mIHRoZSBs b2NrLiAgKi8KKyAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAvKiBDaGlsZCBQ cm9jZXNzLiAgKi8KKyAgICAgICAgICAgIGlmIChmbGFncyAmIENMT05FX0NISUxEX1NFVFRJRCkK KyAgICAgICAgICAgICAgICBpZiAocHV0X3VzZXJfczMyKGdldHRpZCgpLCBjaGlsZF90aWRfYWRk cikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtVEFSR0VUX0VGQVVMVDsKKyAgICAgICAg ICAgIHRzID0gKFRhc2tTdGF0ZSAqKWVudi0+b3BhcXVlOworICAgICAgICAgICAgaWYgKGZsYWdz ICYgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQpCisgICAgICAgICAgICAgICAgdHMtPmNoaWxkX3RpZF9h ZGRyID0gY2hpbGRfdGlkX2FkZHI7CisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBDTE9ORV9TRVRU TFMpCisgICAgICAgICAgICAgICAgY3B1X3NldF90bHMoZW52LCBuZXd0bHNfYWRkcik7CisgICAg ICAgIH0KKyNlbmRpZgogICAgIH0KICAgICByZXR1cm4gcmV0OwogfQpAQCAtMzEyMCw3ICszMTg4 LDcgQEAgYWJpX2xvbmcgZG9fc3lzY2FsbCh2b2lkICpjcHVfZW52LCBpbnQgbnVtLCBhYmlfbG9u ZyBhcmcxLAogICAgICAgICByZXQgPSBkb19icmsoYXJnMSk7CiAgICAgICAgIGJyZWFrOwogICAg IGNhc2UgVEFSR0VUX05SX2Zvcms6Ci0gICAgICAgIHJldCA9IGdldF9lcnJubyhkb19mb3JrKGNw dV9lbnYsIFNJR0NITEQsIDApKTsKKyAgICAgICAgcmV0ID0gZ2V0X2Vycm5vKGRvX2ZvcmsoY3B1 X2VudiwgU0lHQ0hMRCwgMCwgMCwgMCwgMCkpOwogICAgICAgICBicmVhazsKICNpZmRlZiBUQVJH RVRfTlJfd2FpdHBpZAogICAgIGNhc2UgVEFSR0VUX05SX3dhaXRwaWQ6CkBAIC00NDgzLDcgKzQ1 NTEsNyBAQCBhYmlfbG9uZyBkb19zeXNjYWxsKHZvaWQgKmNwdV9lbnYsIGludCBudW0sIGFiaV9s b25nIGFyZzEsCiAgICAgICAgIHJldCA9IGdldF9lcnJubyhmc3luYyhhcmcxKSk7CiAgICAgICAg IGJyZWFrOwogICAgIGNhc2UgVEFSR0VUX05SX2Nsb25lOgotICAgICAgICByZXQgPSBnZXRfZXJy bm8oZG9fZm9yayhjcHVfZW52LCBhcmcxLCBhcmcyKSk7CisgICAgICAgIHJldCA9IGdldF9lcnJu byhkb19mb3JrKGNwdV9lbnYsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpKTsKICAgICAg ICAgYnJlYWs7CiAjaWZkZWYgX19OUl9leGl0X2dyb3VwCiAgICAgICAgIC8qIG5ldyB0aHJlYWQg Y2FsbHMgKi8KQEAgLTQ5MTksNyArNDk4Nyw5IEBAIGFiaV9sb25nIGRvX3N5c2NhbGwodm9pZCAq Y3B1X2VudiwgaW50IG51bSwgYWJpX2xvbmcgYXJnMSwKICNlbmRpZgogI2lmZGVmIFRBUkdFVF9O Ul92Zm9yawogICAgIGNhc2UgVEFSR0VUX05SX3Zmb3JrOgotICAgICAgICByZXQgPSBnZXRfZXJy bm8oZG9fZm9yayhjcHVfZW52LCBDTE9ORV9WRk9SSyB8IENMT05FX1ZNIHwgU0lHQ0hMRCwgMCkp OworICAgICAgICByZXQgPSBnZXRfZXJybm8oZG9fZm9yayhjcHVfZW52LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDTE9ORV9WRk9SSyB8IENMT05FX1ZNIHwgU0lHQ0hMRCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCkpOwogICAgICAgICBicmVh azsKICNlbmRpZgogI2lmZGVmIFRBUkdFVF9OUl91Z2V0cmxpbWl0CmRpZmYgLS1naXQgYS9xc3Bp bmxvY2suaCBiL3FzcGlubG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjIzMzJlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9xc3BpbmxvY2suaApAQCAtMCwwICsxLDIzNSBA QAorLyoKKyAqIEF0b21pYyBvcGVyYXRpb24gaGVscGVyIGluY2x1ZGUKKyAqCisgKiAgQ29weXJp Z2h0IChjKSAyMDA1IEZhYnJpY2UgQmVsbGFyZAorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwg U3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworI2lmbmRlZiBRU1BJ TkxPQ0tfSAorI2RlZmluZSBRU1BJTkxPQ0tfSAorCisjaWYgZGVmaW5lZChfX2hwcGFfXykKKwor dHlwZWRlZiBpbnQgc3BpbmxvY2tfdFs0XTsKKworI2RlZmluZSBTUElOX0xPQ0tfVU5MT0NLRUQg eyAxLCAxLCAxLCAxIH0KKworc3RhdGljIGlubGluZSB2b2lkIHJlc2V0bG9jayAoc3BpbmxvY2tf dCAqcCkKK3sKKyAgICAoKnApWzBdID0gKCpwKVsxXSA9ICgqcClbMl0gPSAoKnApWzNdID0gMTsK K30KKworI2Vsc2UKKwordHlwZWRlZiBpbnQgc3BpbmxvY2tfdDsKKworI2RlZmluZSBTUElOX0xP Q0tfVU5MT0NLRUQgMAorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVzZXRsb2NrIChzcGlubG9ja190 ICpwKQoreworICAgICpwID0gU1BJTl9MT0NLX1VOTE9DS0VEOworfQorCisjZW5kaWYKKworI2lm IGRlZmluZWQoX19wb3dlcnBjX18pCitzdGF0aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQg KnApCit7CisgICAgaW50IHJldDsKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAg ICAgICAgICAgICAgICAgICAgICIwOiAgICBsd2FyeCAlMCwwLCUxXG4iCisgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICAgICB4b3IuICUwLCUzLCUwXG4iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICIgICAgICBibmUgMWZcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAg IHN0d2N4LiAlMiwwLCUxXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICBibmUt IDBiXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICIxOiAgICAiCisgICAgICAgICAgICAg ICAgICAgICAgICAgIDogIj0mciIgKHJldCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiAi ciIgKHApLCAiciIgKDEpLCAiciIgKDApCisgICAgICAgICAgICAgICAgICAgICAgICAgIDogImNy MCIsICJtZW1vcnkiKTsKKyAgICByZXR1cm4gcmV0OworfQorI2VsaWYgZGVmaW5lZChfX2kzODZf XykKK3N0YXRpYyBpbmxpbmUgaW50IHRlc3RhbmRzZXQgKGludCAqcCkKK3sKKyAgICBsb25nIGlu dCByZWFkdmFsID0gMDsKKworICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9jazsgY21weGNo Z2wgJTIsICUwIgorICAgICAgICAgICAgICAgICAgICAgICAgICA6ICIrbSIgKCpwKSwgIithIiAo cmVhZHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKDEpCisgICAgICAgICAg ICAgICAgICAgICAgICAgIDogImNjIik7CisgICAgcmV0dXJuIHJlYWR2YWw7Cit9CisjZWxpZiBk ZWZpbmVkKF9feDg2XzY0X18pCitzdGF0aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnAp Cit7CisgICAgbG9uZyBpbnQgcmVhZHZhbCA9IDA7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVf XyAoImxvY2s7IGNtcHhjaGdsICUyLCAlMCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiAi K20iICgqcCksICIrYSIgKHJlYWR2YWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDogInIi ICgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJjYyIpOworICAgIHJldHVybiByZWFk dmFsOworfQorI2VsaWYgZGVmaW5lZChfX3MzOTBfXykKK3N0YXRpYyBpbmxpbmUgaW50IHRlc3Rh bmRzZXQgKGludCAqcCkKK3sKKyAgICBpbnQgcmV0OworCisgICAgX19hc21fXyBfX3ZvbGF0aWxl X18gKCIwOiBjcyAgICAlMCwlMSwwKCUyKVxuIgorCQkJICAiICAgamwgICAgMGIiCisJCQkgIDog Ij0mZCIgKHJldCkKKwkJCSAgOiAiciIgKDEpLCAiYSIgKHApLCAiMCIgKCpwKQorCQkJICA6ICJj YyIsICJtZW1vcnkiICk7CisgICAgcmV0dXJuIHJldDsKK30KKyNlbGlmIGRlZmluZWQoX19hbHBo YV9fKQorc3RhdGljIGlubGluZSBpbnQgdGVzdGFuZHNldCAoaW50ICpwKQoreworICAgIGludCBy ZXQ7CisgICAgdW5zaWduZWQgbG9uZyBvbmU7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo IjA6CW1vdiAxLCUyXG4iCisJCQkgICIJbGRsX2wgJTAsJTFcbiIKKwkJCSAgIglzdGxfYyAlMiwl MVxuIgorCQkJICAiCWJlcSAlMiwxZlxuIgorCQkJICAiLnN1YnNlY3Rpb24gMlxuIgorCQkJICAi MToJYnIgMGJcbiIKKwkJCSAgIi5wcmV2aW91cyIKKwkJCSAgOiAiPXIiIChyZXQpLCAiPW0iICgq cCksICI9ciIgKG9uZSkKKwkJCSAgOiAibSIgKCpwKSk7CisgICAgcmV0dXJuIHJldDsKK30KKyNl bGlmIGRlZmluZWQoX19zcGFyY19fKQorc3RhdGljIGlubGluZSBpbnQgdGVzdGFuZHNldCAoaW50 ICpwKQoreworCWludCByZXQ7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygibGRzdHViCVslMV0s ICUwIgorCQkJICAgICA6ICI9ciIgKHJldCkKKwkJCSAgICAgOiAiciIgKHApCisJCQkgICAgIDog Im1lbW9yeSIpOworCisJcmV0dXJuIChyZXQgPyAxIDogMCk7Cit9CisjZWxpZiBkZWZpbmVkKF9f YXJtX18pCitzdGF0aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnNwaW5sb2NrKQorewor ICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGludCByZXQ7CisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18o InN3cCAlMCwgJTEsIFslMl0iCisgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPXIiKHJldCkK KyAgICAgICAgICAgICAgICAgICAgICAgICA6ICIwIigxKSwgInIiKHNwaW5sb2NrKSk7CisKKyAg ICByZXR1cm4gcmV0OworfQorI2VsaWYgZGVmaW5lZChfX21jNjgwMDApCitzdGF0aWMgaW5saW5l IGludCB0ZXN0YW5kc2V0IChpbnQgKnApCit7CisgICAgY2hhciByZXQ7CisgICAgX19hc21fXyBf X3ZvbGF0aWxlX18oInRhcyAlMTsgc25lICUwIgorICAgICAgICAgICAgICAgICAgICAgICAgIDog Ij1yIiAocmV0KQorICAgICAgICAgICAgICAgICAgICAgICAgIDogIm0iIChwKQorICAgICAgICAg ICAgICAgICAgICAgICAgIDogImNjIiwibWVtb3J5Iik7CisgICAgcmV0dXJuIHJldDsKK30KKyNl bGlmIGRlZmluZWQoX19ocHBhX18pCisKKy8qIEJlY2F1c2UgbWFsbG9jIG9ubHkgZ3VhcmFudGVl cyA4LWJ5dGUgYWxpZ25tZW50IGZvciBtYWxsb2MnZCBkYXRhLAorICAgYW5kIEdDQyBvbmx5IGd1 YXJhbnRlZXMgOC1ieXRlIGFsaWdubWVudCBmb3Igc3RhY2sgbG9jYWxzLCB3ZSBjYW4ndAorICAg YmUgYXNzdXJlZCBvZiAxNi1ieXRlIGFsaWdubWVudCBmb3IgYXRvbWljIGxvY2sgZGF0YSBldmVu IGlmIHdlCisgICBzcGVjaWZ5ICJfX2F0dHJpYnV0ZSAoKGFsaWduZWQoMTYpKSkiIGluIHRoZSB0 eXBlIGRlY2xhcmF0aW9uLiAgU28sCisgICB3ZSB1c2UgYSBzdHJ1Y3QgY29udGFpbmluZyBhbiBh cnJheSBvZiBmb3VyIGludHMgZm9yIHRoZSBhdG9taWMgbG9jaworICAgdHlwZSBhbmQgZHluYW1p Y2FsbHkgc2VsZWN0IHRoZSAxNi1ieXRlIGFsaWduZWQgaW50IGZyb20gdGhlIGFycmF5CisgICBm b3IgdGhlIHNlbWFwaG9yZS4gICovCisjZGVmaW5lIF9fUEFfTERDV19BTElHTk1FTlQgMTYKK3N0 YXRpYyBpbmxpbmUgdm9pZCAqbGRjd19hbGlnbiAodm9pZCAqcCkgeworICAgIHVuc2lnbmVkIGxv bmcgYSA9ICh1bnNpZ25lZCBsb25nKXA7CisgICAgYSA9IChhICsgX19QQV9MRENXX0FMSUdOTUVO VCAtIDEpICYgfihfX1BBX0xEQ1dfQUxJR05NRU5UIC0gMSk7CisgICAgcmV0dXJuICh2b2lkICop YTsKK30KKworc3RhdGljIGlubGluZSBpbnQgdGVzdGFuZHNldCAoc3BpbmxvY2tfdCAqcCkKK3sK KyAgICB1bnNpZ25lZCBpbnQgcmV0OworICAgIHAgPSBsZGN3X2FsaWduKHApOworICAgIF9fYXNt X18gX192b2xhdGlsZV9fKCJsZGN3IDAoJTEpLCUwIgorICAgICAgICAgICAgICAgICAgICAgICAg IDogIj1yIiAocmV0KQorICAgICAgICAgICAgICAgICAgICAgICAgIDogInIiIChwKQorICAgICAg ICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIgKTsKKyAgICByZXR1cm4gIXJldDsKK30KKwor I2VsaWYgZGVmaW5lZChfX2lhNjQpCisKKyNpbmNsdWRlIDxpYTY0aW50cmluLmg+CisKK3N0YXRp YyBpbmxpbmUgaW50IHRlc3RhbmRzZXQgKGludCAqcCkKK3sKKyAgICByZXR1cm4gX19zeW5jX2xv Y2tfdGVzdF9hbmRfc2V0IChwLCAxKTsKK30KKyNlbGlmIGRlZmluZWQoX19taXBzX18pCitzdGF0 aWMgaW5saW5lIGludCB0ZXN0YW5kc2V0IChpbnQgKnApCit7CisgICAgaW50IHJldDsKKworICAg IF9fYXNtX18gX192b2xhdGlsZV9fICgKKwkiCS5zZXQgcHVzaAkJXG4iCisJIgkuc2V0IG5vYXQJ CVxuIgorCSIJLnNldCBtaXBzMgkJXG4iCisJIjE6CWxpCSQxLCAxCQlcbiIKKwkiCWxsCSUwLCAl MQkJXG4iCisJIglzYwkkMSwgJTEJCVxuIgorCSIJYmVxegkkMSwgMWIJCVxuIgorCSIJLnNldCBw b3AJCSIKKwk6ICI9ciIgKHJldCksICIrUiIgKCpwKQorCToKKwk6ICJtZW1vcnkiKTsKKworICAg IHJldHVybiByZXQ7Cit9CisjZWxzZQorI2Vycm9yIHVuaW1wbGVtZW50ZWQgQ1BVIHN1cHBvcnQK KyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQorc3RhdGljIGlubGluZSB2 b2lkIHNwaW5fbG9jayhzcGlubG9ja190ICpsb2NrKQoreworICAgIHdoaWxlICh0ZXN0YW5kc2V0 KGxvY2spKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNwaW5fdW5sb2NrKHNwaW5sb2NrX3Qg KmxvY2spCit7CisgICAgcmVzZXRsb2NrKGxvY2spOworfQorCitzdGF0aWMgaW5saW5lIGludCBz cGluX3RyeWxvY2soc3BpbmxvY2tfdCAqbG9jaykKK3sKKyAgICByZXR1cm4gIXRlc3RhbmRzZXQo bG9jayk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHNwaW5fbG9jayhzcGlubG9ja190 ICpsb2NrKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3Bpbl91bmxvY2soc3BpbmxvY2tf dCAqbG9jaykKK3sKK30KKworc3RhdGljIGlubGluZSBpbnQgc3Bpbl90cnlsb2NrKHNwaW5sb2Nr X3QgKmxvY2spCit7CisgICAgcmV0dXJuIDE7Cit9CisjZW5kaWYKKworI2VuZGlmIC8qIFFTUElO TE9DS19IICovCmRpZmYgLS1naXQgYS90YXJnZXQtYXJtL2NwdS5oIGIvdGFyZ2V0LWFybS9jcHUu aAppbmRleCAyZmYyNWE1Li5kZGFlNzUwIDEwMDY0NAotLS0gYS90YXJnZXQtYXJtL2NwdS5oCisr KyBiL3RhcmdldC1hcm0vY3B1LmgKQEAgLTM3LDcgKzM3LDExIEBACiAjZGVmaW5lIEVYQ1BfSVJR ICAgICAgICAgICAgIDUKICNkZWZpbmUgRVhDUF9GSVEgICAgICAgICAgICAgNgogI2RlZmluZSBF WENQX0JLUFQgICAgICAgICAgICA3CisjaWYgZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQorI2Rl ZmluZSBFWENQX0tFUk5FTF9UUkFQICAgICA4ICAgLyogSnVtcGVkIHRvIGtlcm5lbCBjb2RlIHBh Z2UuICAqLworI2Vsc2UKICNkZWZpbmUgRVhDUF9FWENFUFRJT05fRVhJVCAgOCAgIC8qIFJldHVy biBmcm9tIHY3TSBleGNlcHRpb24uICAqLworI2VuZGlmCiAKICNkZWZpbmUgQVJNVjdNX0VYQ1Bf UkVTRVQgICAxCiAjZGVmaW5lIEFSTVY3TV9FWENQX05NSSAgICAgMgpAQCAtMjE3LDYgKzIyMSwx MiBAQCBpbnQgY3B1X2FybV9zaWduYWxfaGFuZGxlcihpbnQgaG9zdF9zaWdudW0sIHZvaWQgKnBp bmZvLAogCiB2b2lkIGNwdV9sb2NrKHZvaWQpOwogdm9pZCBjcHVfdW5sb2NrKHZvaWQpOworI2lm IGRlZmluZWQoVVNFX05QVEwpCitzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3NldF90bHMoQ1BVQVJN U3RhdGUgKmVudiwgdWludDMyX3QgbmV3dGxzX2FkZHIpCit7CisgICAgZW52LT5jcDE1LmMxM190 bHMzID0gbmV3dGxzX2FkZHI7Cit9CisjZW5kaWYKIAogI2RlZmluZSBDUFNSX00gKDB4MWYpCiAj ZGVmaW5lIENQU1JfVCAoMSA8PCA1KQpkaWZmIC0tZ2l0IGEvdGFyZ2V0LWFybS90cmFuc2xhdGUu YyBiL3RhcmdldC1hcm0vdHJhbnNsYXRlLmMKaW5kZXggNDY3ODU4Ni4uNmNlY2U2ZSAxMDA2NDQK LS0tIGEvdGFyZ2V0LWFybS90cmFuc2xhdGUuYworKysgYi90YXJnZXQtYXJtL3RyYW5zbGF0ZS5j CkBAIC04NTk5LDEzICs4NTk5LDIwIEBAIHN0YXRpYyBpbmxpbmUgaW50IGdlbl9pbnRlcm1lZGlh dGVfY29kZV9pbnRlcm5hbChDUFVTdGF0ZSAqZW52LAogICAgICAgICBzdG9yZV9jcHVfZmllbGQo dG1wLCBjb25kZXhlY19iaXRzKTsKICAgICAgIH0KICAgICBkbyB7Ci0jaWZuZGVmIENPTkZJR19V U0VSX09OTFkKKyNpZiBkZWZpbmVkKENPTkZJR19VU0VSX09OTFkpCisgICAgICAgIC8qIEludGVy Y2VwdCBqdW1wIHRvIHRoZSBtYWdpYyBrZXJuZWwgcGFnZS4gICovCisgICAgICAgIGlmIChkYy0+ cGMgPiAweGZmZmYwMDAwKSB7CisgICAgICAgICAgICBnZW5fZXhjZXB0aW9uKEVYQ1BfS0VSTkVM X1RSQVApOworICAgICAgICAgICAgZGMtPmlzX2ptcCA9IERJU0FTX1VQREFURTsKKyAgICAgICAg ICAgIGJyZWFrOworICAgICAgICB9CisjZWxzZSAvKiAhZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZ KSAqLwogICAgICAgICBpZiAoZGMtPnBjID49IDB4ZmZmZmZmZjAgJiYgSVNfTShlbnYpKSB7CiAg ICAgICAgICAgICAvKiBXZSBhbHdheXMgZ2V0IGhlcmUgdmlhIGEganVtcCwgc28ga25vdyB3ZSBh cmUgbm90IGluIGEKICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsIGV4ZWN1dGlvbiBibG9jay4g ICovCiAgICAgICAgICAgICBnZW5fZXhjZXB0aW9uKEVYQ1BfRVhDRVBUSU9OX0VYSVQpOwogICAg ICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvKiAhZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKSAqLwog CiAgICAgICAgIGlmIChlbnYtPm5iX2JyZWFrcG9pbnRzID4gMCkgewogICAgICAgICAgICAgZm9y KGogPSAwOyBqIDwgZW52LT5uYl9icmVha3BvaW50czsgaisrKSB7CmRpZmYgLS1naXQgYS90YXJn ZXQtcHBjL2NwdS5oIGIvdGFyZ2V0LXBwYy9jcHUuaAppbmRleCA4ODEyOTc1Li4zMGZhZTFjIDEw MDY0NAotLS0gYS90YXJnZXQtcHBjL2NwdS5oCisrKyBiL3RhcmdldC1wcGMvY3B1LmgKQEAgLTcx Miw2ICs3MTIsMTIgQEAgaW50IGNwdV9wcGNfc2lnbmFsX2hhbmRsZXIgKGludCBob3N0X3NpZ251 bSwgdm9pZCAqcGluZm8sCiB2b2lkIGRvX2ludGVycnVwdCAoQ1BVUFBDU3RhdGUgKmVudik7CiB2 b2lkIHBwY19od19pbnRlcnJ1cHQgKENQVVBQQ1N0YXRlICplbnYpOwogdm9pZCBjcHVfbG9vcF9l eGl0ICh2b2lkKTsKKyNpZiBkZWZpbmVkKFVTRV9OUFRMKQorc3RhdGljIGlubGluZSB2b2lkIGNw dV9zZXRfdGxzKENQVVBQQ1N0YXRlICplbnYsIHBwY19ncHJfdCBuZXd0bHNfYWRkcikKK3sKKyAg ICBlbnYtPmdwclsyXSA9IG5ld3Rsc19hZGRyOworfQorI2VuZGlmCiAKIHZvaWQgZHVtcF9zdGFj ayAoQ1BVUFBDU3RhdGUgKmVudik7CiAK ------=_Part_17372_18287599.1210000373156--