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 23666 invoked from network); 13 Oct 2022 21:08:16 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 13 Oct 2022 21:08:16 -0000 Content-Type: multipart/mixed; boundary="===============4762362549236311156==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_qt5-webengine=3A_update_to_5=2E15=2E11?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 13 Oct 2022 23:08:16 +0200 List-Id: Message-ID: <20221013210816.K1fn9__YBZsqaiIM0GSlR0tOoqJYux2EJ5RbzxiKh7E@z> GitHub notification mails are now in MIME to allow UTF8. --===============4762362549236311156== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgcXQ1LXdlYmVuZ2luZS01LjE1LjExCmh0dHBzOi8v Z2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zOTkxNgoKcXQ1LXdlYmVu Z2luZTogdXBkYXRlIHRvIDUuMTUuMTEKLSBxdDUtd2ViZW5naW5lOiB1cGRhdGUgdG8gNS4xNS4x MS4NCi0gcXQ1LXdlYmVuZ2luZTogcGF0Y2ggZm9yIHBpcGV3aXJlIDAuMw0KDQo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKnwqKmJyaWVmbHkqKnwqKk5PKioNCg0KPCEtLQ0K IyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFj a2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTog KipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkg dG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNj cmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0 IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9u ZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tp cHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0 IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykN Ci0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1 cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjds DQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk5MTYucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============4762362549236311156== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt5-webengine-5.15.11-39916.patch" RnJvbSBlODJiOGExZjdjOGZlNjY1NDM0NjRhYzQ5Y2U5MjkzNmU2YWMzYjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFdlZCwg MTIgT2N0IDIwMjIgMTc6MTU6MjAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10gcXQ1LXdlYmVu Z2luZTogdXBkYXRlIHRvIDUuMTUuMTEuCgotLS0KIHNyY3BrZ3MvcXQ1LXdlYmVuZ2luZS90ZW1w bGF0ZSB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRl IGIvc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlCmluZGV4IGJhZTM4ZWVmNWJjOC4uMzRi ZWNkYjVjODE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncXQ1LXdlYmVuZ2luZScKIHBrZ25hbWU9cXQ1LXdlYmVuZ2luZQotdmVy c2lvbj01LjE1LjEwCit2ZXJzaW9uPTUuMTUuMTEKIHJldmlzaW9uPTEKIF92ZXJzaW9uPSIke3Zl cnNpb259LWx0cyIKLV9jaHJvbWl1bV9jb21taXQ9Y2FiYTJmY2IwZmU4YThkMjEzYzRjNzlkMjZk YTNiYjg4ZWVlNjFjNworX2Nocm9taXVtX2NvbW1pdD1iZTM0OWVhZjYyZTc3OTU1NzkxZDdiZjI5 Zjg5M2YxZThhMzdkYWY0CiBhcmNocz0ieDg2XzY0KiBpNjg2KiBhcm12WzY3XSogcHBjNjQqIGFh cmNoNjQqIgogd3Jrc3JjPSJxdHdlYmVuZ2luZS0ke192ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPXFt YWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgbWFrZWRlcGVuZHM9InF0NS13ZWJjaGFubmVsLWRldmVs IHF0NS1sb2NhdGlvbi1kZXZlbCBxdDUtdG9vbHMtZGV2ZWwgcXQ1LWRldmVsCiAganNvbmNwcC1k ZXZlbCBoYXJmYnV6ei1kZXZlbCBsY21zMi1kZXZlbCBwcm90b2J1Zi1kZXZlbCBwdWxzZWF1ZGlv LWRldmVsCiAgbGliWHJhbmRyLWRldmVsIE1lc2FMaWItZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgYWxz YS1saWItZGV2ZWwgbGlieGtiY29tbW9uLWRldmVsCiAgbGlieGtiZmlsZS1kZXZlbCBsaWJYZGFt YWdlLWRldmVsCi0gJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKSAkKHZvcHRfaWYgcGlwZXdp cmUgbGlicGlwZXdpcmUwLjItZGV2ZWwpIgorICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkg JCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRldmVsKSIKIHNob3J0X2Rlc2M9IkNyb3NzLXBs YXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgKFFUNSkgLSBXZWJFbmdpbmUgY29t cG9uZW50IgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v cXQuaW8vIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vcXQvcXR3ZWJlbmdpbmUvYXJj aGl2ZS92JHtfdmVyc2lvbn0udGFyLmd6CiAgaHR0cHM6Ly9naXRodWIuY29tL3F0L3F0d2ViZW5n aW5lLWNocm9taXVtL2FyY2hpdmUvJHtfY2hyb21pdW1fY29tbWl0fS50YXIuZ3oiCi1jaGVja3N1 bT0iNjlhYzczOGFiNDhlZWExNjFlYTliNjZlM2NiZGU5ZTc0YjYzMTEyNTA3NDc2MmFkY2FlMDkw OWNkZDRkYzgzZAotIGJlNWYwMzNmYTBiM2NiYjhlMzllMDM2ZDVlZWQzZGFhMjBlNDI2OTMyZmI1 NzgzZGNlYjhiZWIzNzU3NzJlODMiCitjaGVja3N1bT0iYWE3NDY2MzU2YzQ1MGM1ZjU4NzBmOTc5 YjkzY2Q3ZTdlNjJkYTExNjVjMzI4ZmZjYWIxYTk5MjhkYjE4YWQ2NworIDZmNDdlZDhhYjhjYzA2 MjQxMWY2ZjIwNmRhNjM1M2JjODI2M2Q2ZWQ2ZDYyOTBjNjg5YTA1YzAxZDkxZjY0NmIiCiAKIG5v X2dlbmVyaWNfcGtnY29uZmlnX2xpbms9eWVzCiBidWlsZF9vcHRpb25zPSJzbmRpbyBwaXBld2ly ZSIKCkZyb20gZWYxYjhjMWYyMmNlYmRiMzhkNDA0ZDljMjk4ZDI5Y2Y2MzhhM2Y3NSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogaGVpdG9yIDxoZWl0b3JsZWl0ZS5kZXZAZ21haWwuY29t PgpEYXRlOiBUaHUsIDQgQXVnIDIwMjIgMDE6NDA6NTkgLTAzMDAKU3ViamVjdDogW1BBVENIIDIv M10gcXQ1LXdlYmVuZ2luZTogcGF0Y2ggZm9yIHBpcGV3aXJlIDAuMwoKY2xvc2VzICMzODQ2Ngot LS0KIC4uLi9xdDUtd2ViZW5naW5lL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoICB8IDE4MTkg KysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaC5hcmdzICAg ICAgICAgICB8ICAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAxODIwIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy9waXBld2lyZS0w LjMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hl cy9waXBld2lyZS0wLjMucGF0Y2guYXJncwoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1LXdlYmVu Z2luZS9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaCBiL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9w YXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmY4MDQ3ZTA4OGI5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ1LXdl YmVuZ2luZS9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApAQCAtMCwwICsxLDE4MTkgQEAKK2Rp ZmYgLS1naXQgYS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2Nh cHR1cmUvQlVJTEQuZ24gYi9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNr dG9wX2NhcHR1cmUvQlVJTEQuZ24KK2luZGV4IDUyMzU1MTI3MzVkLi44MjU5NDQyZjgxMSAxMDA2 NDQKKy0tLSBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2Fw dHVyZS9CVUlMRC5nbgorKysrIGIvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMv ZGVza3RvcF9jYXB0dXJlL0JVSUxELmduCitAQCAtMTEsNiArMTEsMTEgQEAgaW1wb3J0KCIvL2J1 aWxkL2NvbmZpZy91aS5nbmkiKQorIGltcG9ydCgiLy90b29scy9nZW5lcmF0ZV9zdHVicy9ydWxl cy5nbmkiKQorIGltcG9ydCgiLi4vLi4vd2VicnRjLmduaSIpCisgCisraWYgKHJ0Y191c2VfcGlw ZXdpcmUpIHsKKysgIGFzc2VydChydGNfcGlwZXdpcmVfdmVyc2lvbiA9PSAiMC4yIiB8fCBydGNf cGlwZXdpcmVfdmVyc2lvbiA9PSAiMC4zIiwKKysgICAgICAgICAiVW5zdXBwb3J0ZWQgUGlwZVdp cmUgdmVyc2lvbiIpCisrfQorKworIHVzZV9kZXNrdG9wX2NhcHR1cmVfZGlmZmVyX3NzZTIgPSBj dXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IgorIAorIGNvbmZpZygi eDExX2NvbmZpZyIpIHsKK0BAIC0yMDAsMjIgKzIwNSw0MSBAQCBpZiAoaXNfbGludXggfHwgaXNf Y2hyb21lb3MpIHsKKyAgICAgICBdCisgICAgIH0KKyAKKy0gICAgaWYgKHJ0Y19saW5rX3BpcGV3 aXJlKSB7CisrICAgIGlmIChydGNfcGlwZXdpcmVfdmVyc2lvbiA9PSAiMC4zIikgeworICAgICAg IHBrZ19jb25maWcoInBpcGV3aXJlIikgeworLSAgICAgICAgcGFja2FnZXMgPSBbICJsaWJwaXBl d2lyZS0wLjIiIF0KKysgICAgICAgIHBhY2thZ2VzID0gWyAibGlicGlwZXdpcmUtMC4zIiBdCisr ICAgICAgICBpZiAoIXJ0Y19saW5rX3BpcGV3aXJlKSB7CisrICAgICAgICAgIGlnbm9yZV9saWJz ID0gdHJ1ZQorKyAgICAgICAgfQorICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKysgICAgICBwa2df Y29uZmlnKCJwaXBld2lyZSIpIHsKKysgICAgICAgIHBhY2thZ2VzID0gWyAibGlicGlwZXdpcmUt MC4yIiBdCisrICAgICAgICBpZiAoIXJ0Y19saW5rX3BpcGV3aXJlKSB7CisrICAgICAgICAgIGln bm9yZV9saWJzID0gdHJ1ZQorKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKworKyAgICBp ZiAoIXJ0Y19saW5rX3BpcGV3aXJlKSB7CisgICAgICAgIyBXaGVuIGxpYnBpcGV3aXJlIGlzIG5v dCBkaXJlY3RseSBsaW5rZWQsIHVzZSBzdHVicyB0byBhbGxvdyBmb3IgZGxvcGVuaW5nIG9mCisg ICAgICAgIyB0aGUgYmluYXJ5LgorICAgICAgIGdlbmVyYXRlX3N0dWJzKCJwaXBld2lyZV9zdHVi cyIpIHsKKy0gICAgICAgIGNvbmZpZ3MgPSBbICIuLi8uLi86Y29tbW9uX2NvbmZpZyIgXQorKyAg ICAgICAgY29uZmlncyA9IFsKKysgICAgICAgICAgIi4uLy4uLzpjb21tb25fY29uZmlnIiwKKysg ICAgICAgICAgIjpwaXBld2lyZSIsCisrICAgICAgICBdCisgICAgICAgICBkZXBzID0gWyAiLi4v Li4vcnRjX2Jhc2UiIF0KKyAgICAgICAgIGV4dHJhX2hlYWRlciA9ICJsaW51eC9waXBld2lyZV9z dHViX2hlYWRlci5mcmFnbWVudCIKKyAgICAgICAgIGxvZ2dpbmdfZnVuY3Rpb24gPSAiUlRDX0xP RyhMU19WRVJCT1NFKSIKKyAgICAgICAgIGxvZ2dpbmdfaW5jbHVkZSA9ICJydGNfYmFzZS9sb2dn aW5nLmgiCisgICAgICAgICBvdXRwdXRfbmFtZSA9ICJsaW51eC9waXBld2lyZV9zdHVicyIKKyAg ICAgICAgIHBhdGhfZnJvbV9zb3VyY2UgPSAibW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgi CistICAgICAgICBzaWdzID0gWyAibGludXgvcGlwZXdpcmUuc2lncyIgXQorKyAgICAgICAgaWYg KHJ0Y19waXBld2lyZV92ZXJzaW9uID09ICIwLjMiKSB7CisrICAgICAgICAgIHNpZ3MgPSBbICJs aW51eC9waXBld2lyZTAzLnNpZ3MiIF0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIHNp Z3MgPSBbICJsaW51eC9waXBld2lyZTAyLnNpZ3MiIF0KKysgICAgICAgIH0KKyAgICAgICB9Cisg ICAgIH0KKyAKK0BAIC01MDYsNiArNTMwLDcgQEAgcnRjX2xpYnJhcnkoImRlc2t0b3BfY2FwdHVy ZV9nZW5lcmljIikgeworICAgYWJzbF9kZXBzID0gWworICAgICAiLy90aGlyZF9wYXJ0eS9hYnNl aWwtY3BwL2Fic2wvbWVtb3J5IiwKKyAgICAgIi8vdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNs L3N0cmluZ3MiLAorKyAgICAiLy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvdHlwZXM6b3B0 aW9uYWwiLAorICAgXQorIAorICAgaWYgKHJ0Y191c2VfeDExX2V4dGVuc2lvbnMpIHsKK0BAIC01 MjYsMjAgKzU1MSwxNSBAQCBydGNfbGlicmFyeSgiZGVza3RvcF9jYXB0dXJlX2dlbmVyaWMiKSB7 CisgICAgIHNvdXJjZXMgKz0gWworICAgICAgICJsaW51eC9iYXNlX2NhcHR1cmVyX3BpcGV3aXJl LmNjIiwKKyAgICAgICAibGludXgvYmFzZV9jYXB0dXJlcl9waXBld2lyZS5oIiwKKy0gICAgICAi bGludXgvc2NyZWVuX2NhcHR1cmVyX3BpcGV3aXJlLmNjIiwKKy0gICAgICAibGludXgvc2NyZWVu X2NhcHR1cmVyX3BpcGV3aXJlLmgiLAorLSAgICAgICJsaW51eC93aW5kb3dfY2FwdHVyZXJfcGlw ZXdpcmUuY2MiLAorLSAgICAgICJsaW51eC93aW5kb3dfY2FwdHVyZXJfcGlwZXdpcmUuaCIsCisg ICAgIF0KKyAKKyAgICAgY29uZmlncyArPSBbCisgICAgICAgIjpwaXBld2lyZV9jb25maWciLAor ICAgICAgICI6Z2lvIiwKKysgICAgICAiOnBpcGV3aXJlIiwKKyAgICAgXQorIAorLSAgICBpZiAo cnRjX2xpbmtfcGlwZXdpcmUpIHsKKy0gICAgICBjb25maWdzICs9IFsgIjpwaXBld2lyZSIgXQor LSAgICB9IGVsc2UgeworKyAgICBpZiAoIXJ0Y19saW5rX3BpcGV3aXJlKSB7CisgICAgICAgZGVw cyArPSBbICI6cGlwZXdpcmVfc3R1YnMiIF0KKyAgICAgfQorICAgfQorZGlmZiAtLWdpdCBhL2No cm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9i YXNlX2NhcHR1cmVyX3BpcGV3aXJlLmNjIGIvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21v ZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jhc2VfY2FwdHVyZXJfcGlwZXdpcmUuY2MKK2lu ZGV4IDI2NDBlOTNhYTk4Li5jMzAyYTA4NmVhZCAxMDA2NDQKKy0tLSBhL2Nocm9taXVtL3RoaXJk X3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9iYXNlX2NhcHR1cmVy X3BpcGV3aXJlLmNjCisrKysgYi9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9k ZXNrdG9wX2NhcHR1cmUvbGludXgvYmFzZV9jYXB0dXJlcl9waXBld2lyZS5jYworQEAgLTE0LDgg KzE0LDE0IEBACisgI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisgI2luY2x1ZGUgPHNwYS9wYXJh bS9mb3JtYXQtdXRpbHMuaD4KKyAjaW5jbHVkZSA8c3BhL3BhcmFtL3Byb3BzLmg+CisrI2lmICFQ V19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisgI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9yYXct dXRpbHMuaD4KKyAjaW5jbHVkZSA8c3BhL3N1cHBvcnQvdHlwZS1tYXAuaD4KKysjZW5kaWYKKysK KysjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisrI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisrI2luY2x1 ZGUgPHN5cy9zeXNjYWxsLmg+CisgCisgI2luY2x1ZGUgPG1lbW9yeT4KKyAjaW5jbHVkZSA8dXRp bGl0eT4KK0BAIC0zMCw3ICszNiwxMSBAQAorICNpbmNsdWRlICJtb2R1bGVzL2Rlc2t0b3BfY2Fw dHVyZS9saW51eC9waXBld2lyZV9zdHVicy5oIgorIAorIHVzaW5nIG1vZHVsZXNfZGVza3RvcF9j YXB0dXJlX2xpbnV4OjpJbml0aWFsaXplU3R1YnM7CistdXNpbmcgbW9kdWxlc19kZXNrdG9wX2Nh cHR1cmVfbGludXg6OmtNb2R1bGVQaXBld2lyZTsKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAz LCAwKQorK3VzaW5nIG1vZHVsZXNfZGVza3RvcF9jYXB0dXJlX2xpbnV4OjprTW9kdWxlUGlwZXdp cmUwMzsKKysjZWxzZQorK3VzaW5nIG1vZHVsZXNfZGVza3RvcF9jYXB0dXJlX2xpbnV4OjprTW9k dWxlUGlwZXdpcmUwMjsKKysjZW5kaWYKKyB1c2luZyBtb2R1bGVzX2Rlc2t0b3BfY2FwdHVyZV9s aW51eDo6U3R1YlBhdGhNYXA7CisgI2VuZGlmICAvLyBkZWZpbmVkKFdFQlJUQ19ETE9QRU5fUElQ RVdJUkUpCisgCitAQCAtNDcsOSArNTcsMTU2IEBAIGNvbnN0IGNoYXIga1NjcmVlbkNhc3RJbnRl cmZhY2VOYW1lW10gPSAib3JnLmZyZWVkZXNrdG9wLnBvcnRhbC5TY3JlZW5DYXN0IjsKKyBjb25z dCBpbnQga0J5dGVzUGVyUGl4ZWwgPSA0OworIAorICNpZiBkZWZpbmVkKFdFQlJUQ19ETE9QRU5f UElQRVdJUkUpCisrI2lmIFBXX0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKytjb25zdCBjaGFyIGtQ aXBlV2lyZUxpYltdID0gImxpYnBpcGV3aXJlLTAuMy5zby4wIjsKKysjZWxzZQorIGNvbnN0IGNo YXIga1BpcGVXaXJlTGliW10gPSAibGlicGlwZXdpcmUtMC4yLnNvLjEiOworICNlbmRpZgorKyNl bmRpZgorIAorKy8vIHN0YXRpYworK3N0cnVjdCBkbWFfYnVmX3N5bmMgeworKyAgdWludDY0X3Qg ZmxhZ3M7CisrfTsKKysjZGVmaW5lIERNQV9CVUZfU1lOQ19SRUFEICgxIDw8IDApCisrI2RlZmlu ZSBETUFfQlVGX1NZTkNfU1RBUlQgKDAgPDwgMikKKysjZGVmaW5lIERNQV9CVUZfU1lOQ19FTkQg KDEgPDwgMikKKysjZGVmaW5lIERNQV9CVUZfQkFTRSAnYicKKysjZGVmaW5lIERNQV9CVUZfSU9D VExfU1lOQyBfSU9XKERNQV9CVUZfQkFTRSwgMCwgc3RydWN0IGRtYV9idWZfc3luYykKKysKKytz dGF0aWMgdm9pZCBTeW5jRG1hQnVmKGludCBmZCwgdWludDY0X3Qgc3RhcnRfb3JfZW5kKSB7Cisr ICBzdHJ1Y3QgZG1hX2J1Zl9zeW5jIHN5bmMgPSB7MH07CisrCisrICBzeW5jLmZsYWdzID0gc3Rh cnRfb3JfZW5kIHwgRE1BX0JVRl9TWU5DX1JFQUQ7CisrCisrICB3aGlsZSAodHJ1ZSkgeworKyAg ICBpbnQgcmV0OworKyAgICByZXQgPSBpb2N0bChmZCwgRE1BX0JVRl9JT0NUTF9TWU5DLCAmc3lu Yyk7CisrICAgIGlmIChyZXQgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpIHsKKysgICAgICBjb250 aW51ZTsKKysgICAgfSBlbHNlIGlmIChyZXQgPT0gLTEpIHsKKysgICAgICBSVENfTE9HKExTX0VS Uk9SKSA8PCAiRmFpbGVkIHRvIHN5bmNocm9uaXplIERNQSBidWZmZXI6ICIKKysgICAgICAgICAg ICAgICAgICAgICAgICA8PCBnX3N0cmVycm9yKGVycm5vKTsKKysgICAgICBicmVhazsKKysgICAg fSBlbHNlIHsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgfQorK30KKysKKytjbGFzcyBTY29w ZWRCdWYgeworKyBwdWJsaWM6CisrICBTY29wZWRCdWYoKSB7fQorKyAgU2NvcGVkQnVmKHVuc2ln bmVkIGNoYXIqIG1hcCwgaW50IG1hcF9zaXplLCBib29sIGlzX2RtYV9idWYsIGludCBmZCkKKysg ICAgICA6IG1hcF8obWFwKSwgbWFwX3NpemVfKG1hcF9zaXplKSwgaXNfZG1hX2J1Zl8oaXNfZG1h X2J1ZiksIGZkXyhmZCkge30KKysgIH5TY29wZWRCdWYoKSB7CisrICAgIGlmIChtYXBfICE9IE1B UF9GQUlMRUQpIHsKKysgICAgICBpZiAoaXNfZG1hX2J1Zl8pIHsKKysgICAgICAgIFN5bmNEbWFC dWYoZmRfLCBETUFfQlVGX1NZTkNfRU5EKTsKKysgICAgICB9CisrICAgICAgbXVubWFwKG1hcF8s IG1hcF9zaXplXyk7CisrICAgIH0KKysgIH0KKysKKysgIG9wZXJhdG9yIGJvb2woKSB7IHJldHVy biBtYXBfICE9IE1BUF9GQUlMRUQ7IH0KKysKKysgIHZvaWQgaW5pdGlhbGl6ZSh1bnNpZ25lZCBj aGFyKiBtYXAsIGludCBtYXBfc2l6ZSwgYm9vbCBpc19kbWFfYnVmLCBpbnQgZmQpIHsKKysgICAg bWFwXyA9IG1hcDsKKysgICAgbWFwX3NpemVfID0gbWFwX3NpemU7CisrICAgIGlzX2RtYV9idWZf ID0gaXNfZG1hX2J1ZjsKKysgICAgZmRfID0gZmQ7CisrICB9CisrCisrICB1bnNpZ25lZCBjaGFy KiBnZXQoKSB7IHJldHVybiBtYXBfOyB9CisrCisrIHByb3RlY3RlZDoKKysgIHVuc2lnbmVkIGNo YXIqIG1hcF8gPSBudWxscHRyOworKyAgaW50IG1hcF9zaXplXzsKKysgIGJvb2wgaXNfZG1hX2J1 Zl87CisrICBpbnQgZmRfOworK307CisrCisrdGVtcGxhdGUgPGNsYXNzIFQ+CisrY2xhc3MgU2Nv cGVkIHsKKysgcHVibGljOgorKyAgU2NvcGVkKCkge30KKysgIGV4cGxpY2l0IFNjb3BlZChUKiB2 YWwpIHsgcHRyXyA9IHZhbDsgfQorKyAgflNjb3BlZCgpIHsgUlRDX05PVFJFQUNIRUQoKTsgfQor KworKyAgVCogb3BlcmF0b3ItPigpIHsgcmV0dXJuIHB0cl87IH0KKysKKysgIGJvb2wgb3BlcmF0 b3IhKCkgeyByZXR1cm4gcHRyXyA9PSBudWxscHRyOyB9CisrCisrICBUKiBnZXQoKSB7IHJldHVy biBwdHJfOyB9CisrCisrICBUKiogcmVjZWl2ZSgpIHsKKysgICAgUlRDX0NIRUNLKCFwdHJfKTsK KysgICAgcmV0dXJuICZwdHJfOworKyAgfQorKworKyAgU2NvcGVkJiBvcGVyYXRvcj0oVCogdmFs KSB7CisrICAgIHB0cl8gPSB2YWw7CisrICAgIHJldHVybiAqdGhpczsKKysgIH0KKysKKysgcHJv dGVjdGVkOgorKyAgVCogcHRyXyA9IG51bGxwdHI7CisrfTsKKysKKyt0ZW1wbGF0ZSA8PgorK1Nj b3BlZDxHRXJyb3I+Ojp+U2NvcGVkKCkgeworKyAgaWYgKHB0cl8pIHsKKysgICAgZ19lcnJvcl9m cmVlKHB0cl8pOworKyAgfQorK30KKysKKyt0ZW1wbGF0ZSA8PgorK1Njb3BlZDxnY2hhcj46On5T Y29wZWQoKSB7CisrICBpZiAocHRyXykgeworKyAgICBnX2ZyZWUocHRyXyk7CisrICB9CisrfQor KworK3RlbXBsYXRlIDw+CisrU2NvcGVkPEdWYXJpYW50Pjo6flNjb3BlZCgpIHsKKysgIGlmIChw dHJfKSB7CisrICAgIGdfdmFyaWFudF91bnJlZihwdHJfKTsKKysgIH0KKyt9CisrCisrdGVtcGxh dGUgPD4KKytTY29wZWQ8R1ZhcmlhbnRJdGVyPjo6flNjb3BlZCgpIHsKKysgIGlmIChwdHJfKSB7 CisrICAgIGdfdmFyaWFudF9pdGVyX2ZyZWUocHRyXyk7CisrICB9CisrfQorKworK3RlbXBsYXRl IDw+CisrU2NvcGVkPEdEQnVzTWVzc2FnZT46On5TY29wZWQoKSB7CisrICBpZiAocHRyXykgewor KyAgICBnX29iamVjdF91bnJlZihwdHJfKTsKKysgIH0KKyt9CisrCisrdGVtcGxhdGUgPD4KKytT Y29wZWQ8R1VuaXhGRExpc3Q+Ojp+U2NvcGVkKCkgeworKyAgaWYgKHB0cl8pIHsKKysgICAgZ19v YmplY3RfdW5yZWYocHRyXyk7CisrICB9CisrfQorKworKyNpZiBQV19DSEVDS19WRVJTSU9OKDAs IDMsIDApCisrdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25Db3JlRXJyb3Iodm9pZCogZGF0 YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VxLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbWVzc2FnZSkgeworKyAgQmFz ZUNhcHR1cmVyUGlwZVdpcmUqIHRoYXQgPSBzdGF0aWNfY2FzdDxCYXNlQ2FwdHVyZXJQaXBlV2ly ZSo+KGRhdGEpOworKyAgUlRDX0RDSEVDSyh0aGF0KTsKKysKKysgIFJUQ19MT0coTFNfRVJST1Ip IDw8ICJQaXBlV2lyZSByZW1vdGUgZXJyb3I6ICIgPDwgbWVzc2FnZTsKKyt9CisrI2Vsc2UKKyAv LyBzdGF0aWMKKyB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblN0YXRlQ2hhbmdlZCh2b2lk KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3X3Jl bW90ZV9zdGF0ZSBvbGRfc3RhdGUsCitAQCAtNjQsNyArMjIxLDcgQEAgdm9pZCBCYXNlQ2FwdHVy ZXJQaXBlV2lyZTo6T25TdGF0ZUNoYW5nZWQodm9pZCogZGF0YSwKKyAgICAgICBicmVhazsKKyAg ICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgorICAgICAgIFJUQ19MT0coTFNfSU5G TykgPDwgIlBpcGVXaXJlIHJlbW90ZSBzdGF0ZTogY29ubmVjdGVkLiI7CistICAgICAgdGhhdC0+ Q3JlYXRlUmVjZWl2aW5nU3RyZWFtKCk7CisrICAgICAgdGhhdC0+cHdfc3RyZWFtXyA9IHRoYXQt PkNyZWF0ZVJlY2VpdmluZ1N0cmVhbSgpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIFBXX1JF TU9URV9TVEFURV9DT05ORUNUSU5HOgorICAgICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlBpcGVX aXJlIHJlbW90ZSBzdGF0ZTogY29ubmVjdGluZy4iOworQEAgLTc0LDYgKzIzMSw3IEBAIHZvaWQg QmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RhdGVDaGFuZ2VkKHZvaWQqIGRhdGEsCisgICAgICAg YnJlYWs7CisgICB9CisgfQorKyNlbmRpZgorIAorIC8vIHN0YXRpYworIHZvaWQgQmFzZUNhcHR1 cmVyUGlwZVdpcmU6Ok9uU3RyZWFtU3RhdGVDaGFuZ2VkKHZvaWQqIGRhdGEsCitAQCAtODMsNiAr MjQxLDE4IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RyZWFtU3RhdGVDaGFuZ2Vk KHZvaWQqIGRhdGEsCisgICBCYXNlQ2FwdHVyZXJQaXBlV2lyZSogdGhhdCA9IHN0YXRpY19jYXN0 PEJhc2VDYXB0dXJlclBpcGVXaXJlKj4oZGF0YSk7CisgICBSVENfRENIRUNLKHRoYXQpOworIAor KyNpZiBQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrICBzd2l0Y2ggKHN0YXRlKSB7CisrICAg IGNhc2UgUFdfU1RSRUFNX1NUQVRFX0VSUk9SOgorKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8 ICJQaXBlV2lyZSBzdHJlYW0gc3RhdGUgZXJyb3I6ICIgPDwgZXJyb3JfbWVzc2FnZTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgorKyAgICBjYXNlIFBX X1NUUkVBTV9TVEFURV9TVFJFQU1JTkc6CisrICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09O TkVDVEVEOgorKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgorKyAgICAgIGJy ZWFrOworKyAgfQorKyNlbHNlCisgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgIGNhc2UgUFdfU1RS RUFNX1NUQVRFX0VSUk9SOgorICAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJQaXBlV2lyZSBz dHJlYW0gc3RhdGUgZXJyb3I6ICIgPDwgZXJyb3JfbWVzc2FnZTsKK0BAIC05NywzNiArMjY3LDc0 IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RyZWFtU3RhdGVDaGFuZ2VkKHZvaWQq IGRhdGEsCisgICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1NUUkVBTUlORzoKKyAgICAgICBicmVh azsKKyAgIH0KKysjZW5kaWYKKyB9CisgCisgLy8gc3RhdGljCisrI2lmIFBXX0NIRUNLX1ZFUlNJ T04oMCwgMywgMCkKKyt2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblN0cmVhbVBhcmFtQ2hh bmdlZCh2b2lkKiBkYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IGlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kKiBmb3JtYXQpIHsKKysjZWxzZQor IHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RyZWFtRm9ybWF0Q2hhbmdlZCh2b2lkKiBk YXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3Qgc3BhX3BvZCogZm9ybWF0KSB7CisrI2VuZGlmCisgICBCYXNlQ2FwdHVyZXJQ aXBlV2lyZSogdGhhdCA9IHN0YXRpY19jYXN0PEJhc2VDYXB0dXJlclBpcGVXaXJlKj4oZGF0YSk7 CisgICBSVENfRENIRUNLKHRoYXQpOworIAorICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiUGlwZVdp cmUgc3RyZWFtIGZvcm1hdCBjaGFuZ2VkLiI7CisgCisrI2lmIFBXX0NIRUNLX1ZFUlNJT04oMCwg MywgMCkKKysgIGlmICghZm9ybWF0IHx8IGlkICE9IFNQQV9QQVJBTV9Gb3JtYXQpIHsKKysjZWxz ZQorICAgaWYgKCFmb3JtYXQpIHsKKyAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQodGhhdC0+ cHdfc3RyZWFtXywgLypyZXM9Ki8wLCAvKnBhcmFtcz0qL251bGxwdHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qbl9wYXJhbXM9Ki8wKTsKKysjZW5kaWYKKyAgICAgcmV0dXJuOwor ICAgfQorIAorKyNpZiBQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrICBzcGFfZm9ybWF0X3Zp ZGVvX3Jhd19wYXJzZShmb3JtYXQsICZ0aGF0LT5zcGFfdmlkZW9fZm9ybWF0Xyk7CisrI2Vsc2UK KyAgIHRoYXQtPnNwYV92aWRlb19mb3JtYXRfID0gbmV3IHNwYV92aWRlb19pbmZvX3JhdygpOwor ICAgc3BhX2Zvcm1hdF92aWRlb19yYXdfcGFyc2UoZm9ybWF0LCB0aGF0LT5zcGFfdmlkZW9fZm9y bWF0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGF0LT5wd190eXBlXy0+Zm9y bWF0X3ZpZGVvKTsKKysjZW5kaWYKKyAKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAwKQor KyAgYXV0byB3aWR0aCA9IHRoYXQtPnNwYV92aWRlb19mb3JtYXRfLnNpemUud2lkdGg7CisrICBh dXRvIGhlaWdodCA9IHRoYXQtPnNwYV92aWRlb19mb3JtYXRfLnNpemUuaGVpZ2h0OworKyNlbHNl CisgICBhdXRvIHdpZHRoID0gdGhhdC0+c3BhX3ZpZGVvX2Zvcm1hdF8tPnNpemUud2lkdGg7Cisg ICBhdXRvIGhlaWdodCA9IHRoYXQtPnNwYV92aWRlb19mb3JtYXRfLT5zaXplLmhlaWdodDsKKysj ZW5kaWYKKyAgIGF1dG8gc3RyaWRlID0gU1BBX1JPVU5EX1VQX04od2lkdGggKiBrQnl0ZXNQZXJQ aXhlbCwgNCk7CisgICBhdXRvIHNpemUgPSBoZWlnaHQgKiBzdHJpZGU7CisgCisrICB0aGF0LT5k ZXNrdG9wX3NpemVfID0gRGVza3RvcFNpemUod2lkdGgsIGhlaWdodCk7CisrCisgICB1aW50OF90 IGJ1ZmZlclsxMDI0XSA9IHt9OworICAgYXV0byBidWlsZGVyID0gc3BhX3BvZF9idWlsZGVye2J1 ZmZlciwgc2l6ZW9mKGJ1ZmZlcil9OworIAorICAgLy8gU2V0dXAgYnVmZmVycyBhbmQgbWV0YSBo ZWFkZXIgZm9yIG5ldyBmb3JtYXQuCistICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCogcGFyYW1zWzJd OworKyAgY29uc3Qgc3RydWN0IHNwYV9wb2QqIHBhcmFtc1szXTsKKysjaWYgUFdfQ0hFQ0tfVkVS U0lPTigwLCAzLCAwKQorKyAgcGFyYW1zWzBdID0gcmVpbnRlcnByZXRfY2FzdDxzcGFfcG9kKj4o c3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QoCisrICAgICAgJmJ1aWxkZXIsIFNQQV9UWVBFX09C SkVDVF9QYXJhbUJ1ZmZlcnMsIFNQQV9QQVJBTV9CdWZmZXJzLAorKyAgICAgIFNQQV9QQVJBTV9C VUZGRVJTX3NpemUsIFNQQV9QT0RfSW50KHNpemUpLCBTUEFfUEFSQU1fQlVGRkVSU19zdHJpZGUs CisrICAgICAgU1BBX1BPRF9JbnQoc3RyaWRlKSwgU1BBX1BBUkFNX0JVRkZFUlNfYnVmZmVycywK KysgICAgICBTUEFfUE9EX0NIT0lDRV9SQU5HRV9JbnQoOCwgMSwgMzIpKSk7CisrICBwYXJhbXNb MV0gPSByZWludGVycHJldF9jYXN0PHNwYV9wb2QqPihzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVj dCgKKysgICAgICAmYnVpbGRlciwgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFN X01ldGEsIFNQQV9QQVJBTV9NRVRBX3R5cGUsCisrICAgICAgU1BBX1BPRF9JZChTUEFfTUVUQV9I ZWFkZXIpLCBTUEFfUEFSQU1fTUVUQV9zaXplLAorKyAgICAgIFNQQV9QT0RfSW50KHNpemVvZihz dHJ1Y3Qgc3BhX21ldGFfaGVhZGVyKSkpKTsKKysgIHBhcmFtc1syXSA9IHJlaW50ZXJwcmV0X2Nh c3Q8c3BhX3BvZCo+KHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0KAorKyAgICAgICZidWlsZGVy LCBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwgU1BBX1BBUkFNX01F VEFfdHlwZSwKKysgICAgICBTUEFfUE9EX0lkKFNQQV9NRVRBX1ZpZGVvQ3JvcCksIFNQQV9QQVJB TV9NRVRBX3NpemUsCisrICAgICAgU1BBX1BPRF9JbnQoc2l6ZW9mKHN0cnVjdCBzcGFfbWV0YV9y ZWdpb24pKSkpOworKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXModGhhdC0+cHdfc3RyZWFtXywg cGFyYW1zLCAzKTsKKysjZWxzZQorICAgcGFyYW1zWzBdID0gcmVpbnRlcnByZXRfY2FzdDxzcGFf cG9kKj4oc3BhX3BvZF9idWlsZGVyX29iamVjdCgKKyAgICAgICAmYnVpbGRlciwKKyAgICAgICAv LyBpZCB0byBlbnVtZXJhdGUgYnVmZmVyIHJlcXVpcmVtZW50cworQEAgLTE1NSw4ICszNjMsMTgg QEAgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25TdHJlYW1Gb3JtYXRDaGFuZ2VkKHZvaWQq IGRhdGEsCisgICAgICAgLy8gU2l6ZTogc2l6ZSBvZiB0aGUgbWV0YWRhdGEsIHNwZWNpZmllZCBh cyBpbnRlZ2VyIChpKQorICAgICAgICI6IiwgdGhhdC0+cHdfY29yZV90eXBlXy0+cGFyYW1fbWV0 YS5zaXplLCAiaSIsCisgICAgICAgc2l6ZW9mKHN0cnVjdCBzcGFfbWV0YV9oZWFkZXIpKSk7Cist CistICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCh0aGF0LT5wd19zdHJlYW1fLCAvKnJlcz0qLzAs IHBhcmFtcywgLypuX3BhcmFtcz0qLzIpOworKyAgcGFyYW1zWzJdID0gcmVpbnRlcnByZXRfY2Fz dDxzcGFfcG9kKj4oc3BhX3BvZF9idWlsZGVyX29iamVjdCgKKysgICAgICAmYnVpbGRlciwKKysg ICAgICAvLyBpZCB0byBlbnVtZXJhdGUgc3VwcG9ydGVkIG1ldGFkYXRhCisrICAgICAgdGhhdC0+ cHdfY29yZV90eXBlXy0+cGFyYW0uaWRNZXRhLCB0aGF0LT5wd19jb3JlX3R5cGVfLT5wYXJhbV9t ZXRhLk1ldGEsCisrICAgICAgLy8gVHlwZTogc3BlY2lmaWVkIGFzIGlkIG9yIGVudW0gKEkpCisr ICAgICAgIjoiLCB0aGF0LT5wd19jb3JlX3R5cGVfLT5wYXJhbV9tZXRhLnR5cGUsICJJIiwKKysg ICAgICB0aGF0LT5wd19jb3JlX3R5cGVfLT5tZXRhLlZpZGVvQ3JvcCwKKysgICAgICAvLyBTaXpl OiBzaXplIG9mIHRoZSBtZXRhZGF0YSwgc3BlY2lmaWVkIGFzIGludGVnZXIgKGkpCisrICAgICAg IjoiLCB0aGF0LT5wd19jb3JlX3R5cGVfLT5wYXJhbV9tZXRhLnNpemUsICJpIiwKKysgICAgICBz aXplb2Yoc3RydWN0IHNwYV9tZXRhX3ZpZGVvX2Nyb3ApKSk7CisrICBwd19zdHJlYW1fZmluaXNo X2Zvcm1hdCh0aGF0LT5wd19zdHJlYW1fLCAvKnJlcz0qLzAsIHBhcmFtcywgLypuX3BhcmFtcz0q LzMpOworKyNlbmRpZgorIH0KKyAKKyAvLyBzdGF0aWMKK0BAIC0xNjQsMTUgKzM4MiwyNiBAQCB2 b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblN0cmVhbVByb2Nlc3Modm9pZCogZGF0YSkgewor ICAgQmFzZUNhcHR1cmVyUGlwZVdpcmUqIHRoYXQgPSBzdGF0aWNfY2FzdDxCYXNlQ2FwdHVyZXJQ aXBlV2lyZSo+KGRhdGEpOworICAgUlRDX0RDSEVDSyh0aGF0KTsKKyAKKy0gIHB3X2J1ZmZlciog YnVmID0gbnVsbHB0cjsKKysgIHN0cnVjdCBwd19idWZmZXIqIG5leHRfYnVmZmVyOworKyAgc3Ry dWN0IHB3X2J1ZmZlciogYnVmZmVyID0gbnVsbHB0cjsKKysKKysgIG5leHRfYnVmZmVyID0gcHdf c3RyZWFtX2RlcXVldWVfYnVmZmVyKHRoYXQtPnB3X3N0cmVhbV8pOworKyAgd2hpbGUgKG5leHRf YnVmZmVyKSB7CisrICAgIGJ1ZmZlciA9IG5leHRfYnVmZmVyOworKyAgICBuZXh0X2J1ZmZlciA9 IHB3X3N0cmVhbV9kZXF1ZXVlX2J1ZmZlcih0aGF0LT5wd19zdHJlYW1fKTsKKyAKKy0gIGlmICgh KGJ1ZiA9IHB3X3N0cmVhbV9kZXF1ZXVlX2J1ZmZlcih0aGF0LT5wd19zdHJlYW1fKSkpIHsKKysg ICAgaWYgKG5leHRfYnVmZmVyKSB7CisrICAgICAgcHdfc3RyZWFtX3F1ZXVlX2J1ZmZlcih0aGF0 LT5wd19zdHJlYW1fLCBidWZmZXIpOworKyAgICB9CisrICB9CisrCisrICBpZiAoIWJ1ZmZlcikg eworICAgICByZXR1cm47CisgICB9CisgCistICB0aGF0LT5IYW5kbGVCdWZmZXIoYnVmKTsKKysg IHRoYXQtPkhhbmRsZUJ1ZmZlcihidWZmZXIpOworIAorLSAgcHdfc3RyZWFtX3F1ZXVlX2J1ZmZl cih0aGF0LT5wd19zdHJlYW1fLCBidWYpOworKyAgcHdfc3RyZWFtX3F1ZXVlX2J1ZmZlcih0aGF0 LT5wd19zdHJlYW1fLCBidWZmZXIpOworIH0KKyAKKyBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6QmFz ZUNhcHR1cmVyUGlwZVdpcmUoQ2FwdHVyZVNvdXJjZVR5cGUgc291cmNlX3R5cGUpCitAQCAtMTgz LDYgKzQxMiw3IEBAIEJhc2VDYXB0dXJlclBpcGVXaXJlOjp+QmFzZUNhcHR1cmVyUGlwZVdpcmUo KSB7CisgICAgIHB3X3RocmVhZF9sb29wX3N0b3AocHdfbWFpbl9sb29wXyk7CisgICB9CisgCisr I2lmICFQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisgICBpZiAocHdfdHlwZV8pIHsKKyAgICAg ZGVsZXRlIHB3X3R5cGVfOworICAgfQorQEAgLTE5MCwzMCArNDIwLDQxIEBAIEJhc2VDYXB0dXJl clBpcGVXaXJlOjp+QmFzZUNhcHR1cmVyUGlwZVdpcmUoKSB7CisgICBpZiAoc3BhX3ZpZGVvX2Zv cm1hdF8pIHsKKyAgICAgZGVsZXRlIHNwYV92aWRlb19mb3JtYXRfOworICAgfQorKyNlbmRpZgor IAorICAgaWYgKHB3X3N0cmVhbV8pIHsKKyAgICAgcHdfc3RyZWFtX2Rlc3Ryb3kocHdfc3RyZWFt Xyk7CisgICB9CisgCisrI2lmICFQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisgICBpZiAocHdf cmVtb3RlXykgeworICAgICBwd19yZW1vdGVfZGVzdHJveShwd19yZW1vdGVfKTsKKyAgIH0KKysj ZW5kaWYKKyAKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAwKQorKyAgaWYgKHB3X2NvcmVf KSB7CisrICAgIHB3X2NvcmVfZGlzY29ubmVjdChwd19jb3JlXyk7CisrICB9CisrCisrICBpZiAo cHdfY29udGV4dF8pIHsKKysgICAgcHdfY29udGV4dF9kZXN0cm95KHB3X2NvbnRleHRfKTsKKysg IH0KKysjZWxzZQorICAgaWYgKHB3X2NvcmVfKSB7CisgICAgIHB3X2NvcmVfZGVzdHJveShwd19j b3JlXyk7CisgICB9CisrI2VuZGlmCisgCisgICBpZiAocHdfbWFpbl9sb29wXykgeworICAgICBw d190aHJlYWRfbG9vcF9kZXN0cm95KHB3X21haW5fbG9vcF8pOworICAgfQorIAorKyNpZiAhUFdf Q0hFQ0tfVkVSU0lPTigwLCAzLCAwKQorICAgaWYgKHB3X2xvb3BfKSB7CisgICAgIHB3X2xvb3Bf ZGVzdHJveShwd19sb29wXyk7CisgICB9CistCistICBpZiAoY3VycmVudF9mcmFtZV8pIHsKKy0g ICAgZnJlZShjdXJyZW50X2ZyYW1lXyk7CistICB9CisrI2VuZGlmCisgCisgICBpZiAoc3RhcnRf cmVxdWVzdF9zaWduYWxfaWRfKSB7CisgICAgIGdfZGJ1c19jb25uZWN0aW9uX3NpZ25hbF91bnN1 YnNjcmliZShjb25uZWN0aW9uXywgc3RhcnRfcmVxdWVzdF9zaWduYWxfaWRfKTsKK0BAIC0yMjgs MTggKzQ2OSwxNiBAQCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6fkJhc2VDYXB0dXJlclBpcGVXaXJl KCkgeworICAgfQorIAorICAgaWYgKHNlc3Npb25faGFuZGxlXykgeworLSAgICBHREJ1c01lc3Nh Z2UqIG1lc3NhZ2UgPSBnX2RidXNfbWVzc2FnZV9uZXdfbWV0aG9kX2NhbGwoCistICAgICAgICBr RGVza3RvcEJ1c05hbWUsIHNlc3Npb25faGFuZGxlXywga1Nlc3Npb25JbnRlcmZhY2VOYW1lLCAi Q2xvc2UiKTsKKy0gICAgaWYgKG1lc3NhZ2UpIHsKKy0gICAgICBHRXJyb3IqIGVycm9yID0gbnVs bHB0cjsKKy0gICAgICBnX2RidXNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbl8s IG1lc3NhZ2UsCisrICAgIFNjb3BlZDxHREJ1c01lc3NhZ2U+IG1lc3NhZ2UoZ19kYnVzX21lc3Nh Z2VfbmV3X21ldGhvZF9jYWxsKAorKyAgICAgICAga0Rlc2t0b3BCdXNOYW1lLCBzZXNzaW9uX2hh bmRsZV8sIGtTZXNzaW9uSW50ZXJmYWNlTmFtZSwgIkNsb3NlIikpOworKyAgICBpZiAobWVzc2Fn ZS5nZXQoKSkgeworKyAgICAgIFNjb3BlZDxHRXJyb3I+IGVycm9yOworKyAgICAgIGdfZGJ1c19j b25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uXywgbWVzc2FnZS5nZXQoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1NFTkRfTUVTU0FHRV9GTEFH U19OT05FLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm91dF9zZXJp YWw9Ki9udWxscHRyLCAmZXJyb3IpOworLSAgICAgIGlmIChlcnJvcikgeworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKm91dF9zZXJpYWw9Ki9udWxscHRyLCBlcnJvci5y ZWNlaXZlKCkpOworKyAgICAgIGlmIChlcnJvci5nZXQoKSkgeworICAgICAgICAgUlRDX0xPRyhM U19FUlJPUikgPDwgIkZhaWxlZCB0byBjbG9zZSB0aGUgc2Vzc2lvbjogIiA8PCBlcnJvci0+bWVz c2FnZTsKKy0gICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgICAgfQorLSAgICAgIGdf b2JqZWN0X3VucmVmKG1lc3NhZ2UpOworICAgICB9CisgICB9CisgCitAQCAtMjc0LDcgKzUxMywx MSBAQCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpJbml0UGlwZVdpcmUoKSB7CisgICBTdHVi UGF0aE1hcCBwYXRoczsKKyAKKyAgIC8vIENoZWNrIGlmIHRoZSBQaXBlV2lyZSBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4KKy0gIHBhdGhzW2tNb2R1bGVQaXBld2lyZV0ucHVzaF9iYWNrKGtQaXBlV2ly ZUxpYik7CisrI2lmIFBXX0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIHBhdGhzW2tNb2R1bGVQ aXBld2lyZTAzXS5wdXNoX2JhY2soa1BpcGVXaXJlTGliKTsKKysjZWxzZQorKyAgcGF0aHNba01v ZHVsZVBpcGV3aXJlMDJdLnB1c2hfYmFjayhrUGlwZVdpcmVMaWIpOworKyNlbmRpZgorICAgaWYg KCFJbml0aWFsaXplU3R1YnMocGF0aHMpKSB7CisgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJG YWlsZWQgdG8gbG9hZCB0aGUgUGlwZVdpcmUgbGlicmFyeSBhbmQgc3ltYm9scy4iOworICAgICBw b3J0YWxfaW5pdF9mYWlsZWRfID0gdHJ1ZTsKK0BAIC0yODQsMTYgKzUyNyw0NiBAQCB2b2lkIEJh c2VDYXB0dXJlclBpcGVXaXJlOjpJbml0UGlwZVdpcmUoKSB7CisgCisgICBwd19pbml0KC8qYXJn Yz0qL251bGxwdHIsIC8qYXJnYz0qL251bGxwdHIpOworIAorKyNpZiBQV19DSEVDS19WRVJTSU9O KDAsIDMsIDApCisrICBwd19tYWluX2xvb3BfID0gcHdfdGhyZWFkX2xvb3BfbmV3KCJwaXBld2ly ZS1tYWluLWxvb3AiLCBudWxscHRyKTsKKysKKysgIHB3X3RocmVhZF9sb29wX2xvY2socHdfbWFp bl9sb29wXyk7CisrCisrICBwd19jb250ZXh0XyA9CisrICAgICAgcHdfY29udGV4dF9uZXcocHdf dGhyZWFkX2xvb3BfZ2V0X2xvb3AocHdfbWFpbl9sb29wXyksIG51bGxwdHIsIDApOworKyAgaWYg KCFwd19jb250ZXh0XykgeworKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNy ZWF0ZSBQaXBlV2lyZSBjb250ZXh0IjsKKysgICAgcmV0dXJuOworKyAgfQorKworKyAgcHdfY29y ZV8gPSBwd19jb250ZXh0X2Nvbm5lY3QocHdfY29udGV4dF8sIG51bGxwdHIsIDApOworKyAgaWYg KCFwd19jb3JlXykgeworKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvbm5l Y3QgUGlwZVdpcmUgY29udGV4dCI7CisrICAgIHJldHVybjsKKysgIH0KKysjZWxzZQorICAgcHdf bG9vcF8gPSBwd19sb29wX25ldygvKnByb3BlcnRpZXM9Ki9udWxscHRyKTsKKyAgIHB3X21haW5f bG9vcF8gPSBwd190aHJlYWRfbG9vcF9uZXcocHdfbG9vcF8sICJwaXBld2lyZS1tYWluLWxvb3Ai KTsKKyAKKysgIHB3X3RocmVhZF9sb29wX2xvY2socHdfbWFpbl9sb29wXyk7CisrCisgICBwd19j b3JlXyA9IHB3X2NvcmVfbmV3KHB3X2xvb3BfLCAvKnByb3BlcnRpZXM9Ki9udWxscHRyKTsKKyAg IHB3X2NvcmVfdHlwZV8gPSBwd19jb3JlX2dldF90eXBlKHB3X2NvcmVfKTsKKyAgIHB3X3JlbW90 ZV8gPSBwd19yZW1vdGVfbmV3KHB3X2NvcmVfLCBudWxscHRyLCAvKnVzZXJfZGF0YV9zaXplPSov MCk7CisgCisgICBJbml0UGlwZVdpcmVUeXBlcygpOworKyNlbmRpZgorIAorICAgLy8gSW5pdGlh bGl6ZSBldmVudCBoYW5kbGVycywgcmVtb3RlIGVuZCBhbmQgc3RyZWFtLXJlbGF0ZWQuCisrI2lm IFBXX0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIHB3X2NvcmVfZXZlbnRzXy52ZXJzaW9uID0g UFdfVkVSU0lPTl9DT1JFX0VWRU5UUzsKKysgIHB3X2NvcmVfZXZlbnRzXy5lcnJvciA9ICZPbkNv cmVFcnJvcjsKKysKKysgIHB3X3N0cmVhbV9ldmVudHNfLnZlcnNpb24gPSBQV19WRVJTSU9OX1NU UkVBTV9FVkVOVFM7CisrICBwd19zdHJlYW1fZXZlbnRzXy5zdGF0ZV9jaGFuZ2VkID0gJk9uU3Ry ZWFtU3RhdGVDaGFuZ2VkOworKyAgcHdfc3RyZWFtX2V2ZW50c18ucGFyYW1fY2hhbmdlZCA9ICZP blN0cmVhbVBhcmFtQ2hhbmdlZDsKKysgIHB3X3N0cmVhbV9ldmVudHNfLnByb2Nlc3MgPSAmT25T dHJlYW1Qcm9jZXNzOworKyNlbHNlCisgICBwd19yZW1vdGVfZXZlbnRzXy52ZXJzaW9uID0gUFdf VkVSU0lPTl9SRU1PVEVfRVZFTlRTOworICAgcHdfcmVtb3RlX2V2ZW50c18uc3RhdGVfY2hhbmdl ZCA9ICZPblN0YXRlQ2hhbmdlZDsKKyAKK0BAIC0zMDEsMTkgKzU3NCwzMyBAQCB2b2lkIEJhc2VD YXB0dXJlclBpcGVXaXJlOjpJbml0UGlwZVdpcmUoKSB7CisgICBwd19zdHJlYW1fZXZlbnRzXy5z dGF0ZV9jaGFuZ2VkID0gJk9uU3RyZWFtU3RhdGVDaGFuZ2VkOworICAgcHdfc3RyZWFtX2V2ZW50 c18uZm9ybWF0X2NoYW5nZWQgPSAmT25TdHJlYW1Gb3JtYXRDaGFuZ2VkOworICAgcHdfc3RyZWFt X2V2ZW50c18ucHJvY2VzcyA9ICZPblN0cmVhbVByb2Nlc3M7CisrI2VuZGlmCisgCisrI2lmIFBX X0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIHB3X2NvcmVfYWRkX2xpc3RlbmVyKHB3X2NvcmVf LCAmc3BhX2NvcmVfbGlzdGVuZXJfLCAmcHdfY29yZV9ldmVudHNfLCB0aGlzKTsKKysKKysgIHB3 X3N0cmVhbV8gPSBDcmVhdGVSZWNlaXZpbmdTdHJlYW0oKTsKKysgIGlmICghcHdfc3RyZWFtXykg eworKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBQaXBlV2lyZSBz dHJlYW0iOworKyAgICByZXR1cm47CisrICB9CisrI2Vsc2UKKyAgIHB3X3JlbW90ZV9hZGRfbGlz dGVuZXIocHdfcmVtb3RlXywgJnNwYV9yZW1vdGVfbGlzdGVuZXJfLCAmcHdfcmVtb3RlX2V2ZW50 c18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpOworICAgcHdfcmVtb3RlX2Nvbm5l Y3RfZmQocHdfcmVtb3RlXywgcHdfZmRfKTsKKysjZW5kaWYKKyAKKyAgIGlmIChwd190aHJlYWRf bG9vcF9zdGFydChwd19tYWluX2xvb3BfKSA8IDApIHsKKyAgICAgUlRDX0xPRyhMU19FUlJPUikg PDwgIkZhaWxlZCB0byBzdGFydCBtYWluIFBpcGVXaXJlIGxvb3AiOworICAgICBwb3J0YWxfaW5p dF9mYWlsZWRfID0gdHJ1ZTsKKyAgIH0KKyAKKysgIHB3X3RocmVhZF9sb29wX3VubG9jayhwd19t YWluX2xvb3BfKTsKKysKKyAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlBpcGVXaXJlIHJlbW90ZSBv cGVuZWQuIjsKKyB9CisgCisrI2lmICFQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisgdm9pZCBC YXNlQ2FwdHVyZXJQaXBlV2lyZTo6SW5pdFBpcGVXaXJlVHlwZXMoKSB7CisgICBzcGFfdHlwZV9t YXAqIG1hcCA9IHB3X2NvcmVfdHlwZV8tPm1hcDsKKyAgIHB3X3R5cGVfID0gbmV3IFBpcGVXaXJl VHlwZSgpOworQEAgLTMyMywyMyArNjEwLDQ0IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6 OkluaXRQaXBlV2lyZVR5cGVzKCkgeworICAgc3BhX3R5cGVfZm9ybWF0X3ZpZGVvX21hcChtYXAs ICZwd190eXBlXy0+Zm9ybWF0X3ZpZGVvKTsKKyAgIHNwYV90eXBlX3ZpZGVvX2Zvcm1hdF9tYXAo bWFwLCAmcHdfdHlwZV8tPnZpZGVvX2Zvcm1hdCk7CisgfQorKyNlbmRpZgorIAorLXZvaWQgQmFz ZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJlY2VpdmluZ1N0cmVhbSgpIHsKKytwd19zdHJlYW0q IEJhc2VDYXB0dXJlclBpcGVXaXJlOjpDcmVhdGVSZWNlaXZpbmdTdHJlYW0oKSB7CisrI2lmICFQ V19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrICBpZiAocHdfcmVtb3RlX2dldF9zdGF0ZShwd19y ZW1vdGVfLCBudWxscHRyKSAhPSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEKSB7CisrICAgIFJU Q19MT0coTFNfRVJST1IpIDw8ICJDYW5ub3QgY3JlYXRlIHBpcGV3aXJlIHN0cmVhbSI7CisrICAg IHJldHVybiBudWxscHRyOworKyAgfQorKyNlbmRpZgorICAgc3BhX3JlY3RhbmdsZSBwd01pblNj cmVlbkJvdW5kcyA9IHNwYV9yZWN0YW5nbGV7MSwgMX07CistICBzcGFfcmVjdGFuZ2xlIHB3U2Ny ZWVuQm91bmRzID0KKy0gICAgICBzcGFfcmVjdGFuZ2xle3N0YXRpY19jYXN0PHVpbnQzMl90Pihk ZXNrdG9wX3NpemVfLndpZHRoKCkpLAorLSAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8 dWludDMyX3Q+KGRlc2t0b3Bfc2l6ZV8uaGVpZ2h0KCkpfTsKKy0KKy0gIHNwYV9mcmFjdGlvbiBw d0ZyYW1lUmF0ZU1pbiA9IHNwYV9mcmFjdGlvbnswLCAxfTsKKy0gIHNwYV9mcmFjdGlvbiBwd0Zy YW1lUmF0ZU1heCA9IHNwYV9mcmFjdGlvbns2MCwgMX07CisrICBzcGFfcmVjdGFuZ2xlIHB3TWF4 U2NyZWVuQm91bmRzID0gc3BhX3JlY3RhbmdsZXtVSU5UMzJfTUFYLCBVSU5UMzJfTUFYfTsKKyAK KyAgIHB3X3Byb3BlcnRpZXMqIHJldXNlUHJvcHMgPQorICAgICAgIHB3X3Byb3BlcnRpZXNfbmV3 X3N0cmluZygicGlwZXdpcmUuY2xpZW50LnJldXNlPTEiKTsKKy0gIHB3X3N0cmVhbV8gPSBwd19z dHJlYW1fbmV3KHB3X3JlbW90ZV8sICJ3ZWJydGMtY29uc3VtZS1zdHJlYW0iLCByZXVzZVByb3Bz KTsKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAwKQorKyAgYXV0byBzdHJlYW0gPSBwd19z dHJlYW1fbmV3KHB3X2NvcmVfLCAid2VicnRjLWNvbnN1bWUtc3RyZWFtIiwgcmV1c2VQcm9wcyk7 CisrI2Vsc2UKKysgIGF1dG8gc3RyZWFtID0gcHdfc3RyZWFtX25ldyhwd19yZW1vdGVfLCAid2Vi cnRjLWNvbnN1bWUtc3RyZWFtIiwgcmV1c2VQcm9wcyk7CisrI2VuZGlmCisgCisgICB1aW50OF90 IGJ1ZmZlclsxMDI0XSA9IHt9OworICAgY29uc3Qgc3BhX3BvZCogcGFyYW1zWzFdOworICAgc3Bh X3BvZF9idWlsZGVyIGJ1aWxkZXIgPSBzcGFfcG9kX2J1aWxkZXJ7YnVmZmVyLCBzaXplb2YoYnVm ZmVyKX07CisrCisrI2lmIFBXX0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIHBhcmFtc1swXSA9 IHJlaW50ZXJwcmV0X2Nhc3Q8c3BhX3BvZCo+KHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0KAor KyAgICAgICZidWlsZGVyLCBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZv cm1hdCwKKysgICAgICBTUEFfRk9STUFUX21lZGlhVHlwZSwgU1BBX1BPRF9JZChTUEFfTUVESUFf VFlQRV92aWRlbyksCisrICAgICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQo U1BBX01FRElBX1NVQlRZUEVfcmF3KSwKKysgICAgICBTUEFfRk9STUFUX1ZJREVPX2Zvcm1hdCwK KysgICAgICBTUEFfUE9EX0NIT0lDRV9FTlVNX0lkKDUsIFNQQV9WSURFT19GT1JNQVRfQkdSeCwg U1BBX1ZJREVPX0ZPUk1BVF9SR0J4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BB X1ZJREVPX0ZPUk1BVF9SR0JBLCBTUEFfVklERU9fRk9STUFUX0JHUngsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUEFfVklERU9fRk9STUFUX0JHUkEpLAorKyAgICAgIFNQQV9GT1JN QVRfVklERU9fc2l6ZSwKKysgICAgICBTUEFfUE9EX0NIT0lDRV9SQU5HRV9SZWN0YW5nbGUoJnB3 TWluU2NyZWVuQm91bmRzLCAmcHdNaW5TY3JlZW5Cb3VuZHMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZwd01heFNjcmVlbkJvdW5kcyksCisrICAgICAgMCkpOworKyNl bHNlCisgICBwYXJhbXNbMF0gPSByZWludGVycHJldF9jYXN0PHNwYV9wb2QqPihzcGFfcG9kX2J1 aWxkZXJfb2JqZWN0KAorICAgICAgICZidWlsZGVyLAorICAgICAgIC8vIGlkIHRvIGVudW1lcmF0 ZSBmb3JtYXRzCitAQCAtMzQ5LDY5ICs2NTcsMjE4IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdp cmU6OkNyZWF0ZVJlY2VpdmluZ1N0cmVhbSgpIHsKKyAgICAgICAvLyB0aGVuIGFsbG93ZWQgZm9y bWF0cyBhcmUgZW51bWVyYXRlZCAoZSkgYW5kIHRoZSBmb3JtYXQgaXMgdW5kZWNpZGVkICh1KQor ICAgICAgIC8vIHRvIGFsbG93IG5lZ290aWF0aW9uCisgICAgICAgIjoiLCBwd190eXBlXy0+Zm9y bWF0X3ZpZGVvLmZvcm1hdCwgIklldSIsIHB3X3R5cGVfLT52aWRlb19mb3JtYXQuQkdSeCwKKy0g ICAgICBTUEFfUE9EX1BST1BfRU5VTSgyLCBwd190eXBlXy0+dmlkZW9fZm9ybWF0LlJHQngsCist ICAgICAgICAgICAgICAgICAgICAgICAgcHdfdHlwZV8tPnZpZGVvX2Zvcm1hdC5CR1J4KSwKKysg ICAgICBTUEFfUE9EX1BST1BfRU5VTSgKKysgICAgICAgICAgNCwgcHdfdHlwZV8tPnZpZGVvX2Zv cm1hdC5SR0J4LCBwd190eXBlXy0+dmlkZW9fZm9ybWF0LkJHUngsCisrICAgICAgICAgIHB3X3R5 cGVfLT52aWRlb19mb3JtYXQuUkdCQSwgcHdfdHlwZV8tPnZpZGVvX2Zvcm1hdC5CR1JBKSwKKyAg ICAgICAvLyBWaWRlbyBzaXplOiBzcGVjaWZpZWQgYXMgcmVjdGFuZ2xlIChSKSwgcHJlZmVycmVk IHNpemUgaXMgc3BlY2lmaWVkIGFzCisgICAgICAgLy8gZmlyc3QgcGFyYW1ldGVyLCB0aGVuIGFs bG93ZWQgc2l6ZSBpcyBkZWZpbmVkIGFzIHJhbmdlIChyKSBmcm9tIG1pbiBhbmQKKyAgICAgICAv LyBtYXggdmFsdWVzIGFuZCB0aGUgZm9ybWF0IGlzIHVuZGVjaWRlZCAodSkgdG8gYWxsb3cgbmVn b3RpYXRpb24KKy0gICAgICAiOiIsIHB3X3R5cGVfLT5mb3JtYXRfdmlkZW8uc2l6ZSwgIlJydSIs ICZwd1NjcmVlbkJvdW5kcywgMiwKKy0gICAgICAmcHdNaW5TY3JlZW5Cb3VuZHMsICZwd1NjcmVl bkJvdW5kcywKKy0gICAgICAvLyBGcmFtZSByYXRlOiBzcGVjaWZpZWQgYXMgZnJhY3Rpb24gKEYp IGFuZCBzZXQgdG8gbWluaW11bSBmcmFtZSByYXRlCistICAgICAgLy8gdmFsdWUKKy0gICAgICAi OiIsIHB3X3R5cGVfLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZwd0ZyYW1lUmF0ZU1p biwKKy0gICAgICAvLyBNYXggZnJhbWUgcmF0ZTogc3BlY2lmaWVkIGFzIGZyYWN0aW9uIChGKSwg cHJlZmVycmVkIGZyYW1lIHJhdGUgaXMgc2V0CistICAgICAgLy8gdG8gbWF4aW11bSB2YWx1ZSwg dGhlbiBhbGxvd2VkIGZyYW1lIHJhdGUgaXMgZGVmaW5lZCBhcyByYW5nZSAocikgZnJvbQorLSAg ICAgIC8vIG1pbiBhbmQgbWF4IHZhbHVlcyBhbmQgaXQgaXMgdW5kZWNpZGVkICh1KSB0byBhbGxv dyBuZWdvdGlhdGlvbgorLSAgICAgICI6IiwgcHdfdHlwZV8tPmZvcm1hdF92aWRlby5tYXhfZnJh bWVyYXRlLCAiRnJ1IiwgJnB3RnJhbWVSYXRlTWF4LCAyLAorLSAgICAgICZwd0ZyYW1lUmF0ZU1p biwgJnB3RnJhbWVSYXRlTWF4KSk7CistCistICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyKHB3X3N0 cmVhbV8sICZzcGFfc3RyZWFtX2xpc3RlbmVyXywgJnB3X3N0cmVhbV9ldmVudHNfLAorKyAgICAg ICI6IiwgcHdfdHlwZV8tPmZvcm1hdF92aWRlby5zaXplLCAiUnJ1IiwgJnB3TWluU2NyZWVuQm91 bmRzLAorKyAgICAgIFNQQV9QT0RfUFJPUF9NSU5fTUFYKCZwd01pblNjcmVlbkJvdW5kcywgJnB3 TWF4U2NyZWVuQm91bmRzKSkpOworKyNlbmRpZgorKworKyAgcHdfc3RyZWFtX2FkZF9saXN0ZW5l cihzdHJlYW0sICZzcGFfc3RyZWFtX2xpc3RlbmVyXywgJnB3X3N0cmVhbV9ldmVudHNfLAorICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzKTsKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAz LCAwKQorKyAgaWYgKHB3X3N0cmVhbV9jb25uZWN0KHN0cmVhbSwgUFdfRElSRUNUSU9OX0lOUFVU LCBwd19zdHJlYW1fbm9kZV9pZF8sCisrICAgICAgICAgICAgICAgICAgICAgICAgUFdfU1RSRUFN X0ZMQUdfQVVUT0NPTk5FQ1QsIHBhcmFtcywgMSkgIT0gMCkgeworKyNlbHNlCisgICBwd19zdHJl YW1fZmxhZ3MgZmxhZ3MgPSBzdGF0aWNfY2FzdDxwd19zdHJlYW1fZmxhZ3M+KAorLSAgICAgIFBX X1NUUkVBTV9GTEFHX0FVVE9DT05ORUNUIHwgUFdfU1RSRUFNX0ZMQUdfSU5BQ1RJVkUgfAorLSAg ICAgIFBXX1NUUkVBTV9GTEFHX01BUF9CVUZGRVJTKTsKKy0gIGlmIChwd19zdHJlYW1fY29ubmVj dChwd19zdHJlYW1fLCBQV19ESVJFQ1RJT05fSU5QVVQsIC8qcG9ydF9wYXRoPSovbnVsbHB0ciwK KysgICAgICBQV19TVFJFQU1fRkxBR19BVVRPQ09OTkVDVCB8IFBXX1NUUkVBTV9GTEFHX0lOQUNU SVZFKTsKKysgIGlmIChwd19zdHJlYW1fY29ubmVjdChzdHJlYW0sIFBXX0RJUkVDVElPTl9JTlBV VCwgLypwb3J0X3BhdGg9Ki9udWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdz LCBwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgLypuX3BhcmFtcz0qLzEpICE9IDAp IHsKKysjZW5kaWYKKyAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkNvdWxkIG5vdCBjb25uZWN0 IHJlY2VpdmluZyBzdHJlYW0uIjsKKyAgICAgcG9ydGFsX2luaXRfZmFpbGVkXyA9IHRydWU7Cist ICAgIHJldHVybjsKKysgICAgcmV0dXJuIG51bGxwdHI7CisgICB9CisrCisrICByZXR1cm4gc3Ry ZWFtOworIH0KKyAKKyB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpIYW5kbGVCdWZmZXIocHdf YnVmZmVyKiBidWZmZXIpIHsKKyAgIHNwYV9idWZmZXIqIHNwYUJ1ZmZlciA9IGJ1ZmZlci0+YnVm ZmVyOworLSAgdm9pZCogc3JjID0gbnVsbHB0cjsKKysgIFNjb3BlZEJ1ZiBtYXA7CisrICB1aW50 OF90KiBzcmMgPSBudWxscHRyOworKworKyAgaWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0uY2h1bmst PnNpemUgPT0gMCkgeworKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCB2 aWRlbyBzdHJlYW06IFplcm8gc2l6ZS4iOworKyAgICByZXR1cm47CisrICB9CisrCisrI2lmIFBX X0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIGlmIChzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUg PT0gU1BBX0RBVEFfTWVtRmQgfHwKKysgICAgICBzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0g U1BBX0RBVEFfRG1hQnVmKSB7CisrI2Vsc2UKKysgIGlmIChzcGFCdWZmZXItPmRhdGFzWzBdLnR5 cGUgPT0gcHdfY29yZV90eXBlXy0+ZGF0YS5NZW1GZCB8fAorKyAgICAgIHNwYUJ1ZmZlci0+ZGF0 YXNbMF0udHlwZSA9PSBwd19jb3JlX3R5cGVfLT5kYXRhLkRtYUJ1ZikgeworKyNlbmRpZgorKyAg ICBtYXAuaW5pdGlhbGl6ZSgKKysgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPigKKysgICAg ICAgICAgICBtbWFwKG51bGxwdHIsCisrICAgICAgICAgICAgICAgICBzcGFCdWZmZXItPmRhdGFz WzBdLm1heHNpemUgKyBzcGFCdWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKKysgICAgICAgICAg ICAgICAgIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIHNwYUJ1ZmZlci0+ZGF0YXNbMF0uZmQsIDAp KSwKKysgICAgICAgIHNwYUJ1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYUJ1ZmZlci0+ZGF0 YXNbMF0ubWFwb2Zmc2V0LAorKyNpZiBQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrICAgICAg ICBzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0gU1BBX0RBVEFfRG1hQnVmLAorKyNlbHNlCisr ICAgICAgICBzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0gcHdfY29yZV90eXBlXy0+ZGF0YS5E bWFCdWYsCisrI2VuZGlmCisrICAgICAgICBzcGFCdWZmZXItPmRhdGFzWzBdLmZkKTsKKysKKysg ICAgaWYgKCFtYXApIHsKKysgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIG1t YXAgdGhlIG1lbW9yeTogIgorKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0ZDo6c3RyZXJy b3IoZXJybm8pOworKyAgICAgIHJldHVybjsKKysgICAgfQorKworKyNpZiBQV19DSEVDS19WRVJT SU9OKDAsIDMsIDApCisrICAgIGlmIChzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0gU1BBX0RB VEFfRG1hQnVmKSB7CisrI2Vsc2UKKysgICAgaWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9 PSBwd19jb3JlX3R5cGVfLT5kYXRhLkRtYUJ1ZikgeworKyNlbmRpZgorKyAgICAgIFN5bmNEbWFC dWYoc3BhQnVmZmVyLT5kYXRhc1swXS5mZCwgRE1BX0JVRl9TWU5DX1NUQVJUKTsKKysgICAgfQor KworKyAgICBzcmMgPSBTUEFfTUVNQkVSKG1hcC5nZXQoKSwgc3BhQnVmZmVyLT5kYXRhc1swXS5t YXBvZmZzZXQsIHVpbnQ4X3QpOworKyNpZiBQV19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrICB9 IGVsc2UgaWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFfREFUQV9NZW1QdHIpIHsK KysjZWxzZQorKyAgfSBlbHNlIGlmIChzcGFCdWZmZXItPmRhdGFzWzBdLnR5cGUgPT0gcHdfY29y ZV90eXBlXy0+ZGF0YS5NZW1QdHIpIHsKKysjZW5kaWYKKysgICAgc3JjID0gc3RhdGljX2Nhc3Q8 dWludDhfdCo+KHNwYUJ1ZmZlci0+ZGF0YXNbMF0uZGF0YSk7CisrICB9CisgCistICBpZiAoIShz cmMgPSBzcGFCdWZmZXItPmRhdGFzWzBdLmRhdGEpKSB7CisrICBpZiAoIXNyYykgeworKyAgICBy ZXR1cm47CisrICB9CisrCisrI2lmIFBXX0NIRUNLX1ZFUlNJT04oMCwgMywgMCkKKysgIHN0cnVj dCBzcGFfbWV0YV9yZWdpb24qIHZpZGVvX21ldGFkYXRhID0KKysgICAgICBzdGF0aWNfY2FzdDxz dHJ1Y3Qgc3BhX21ldGFfcmVnaW9uKj4oc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSgKKysgICAg ICAgICAgc3BhQnVmZmVyLCBTUEFfTUVUQV9WaWRlb0Nyb3AsIHNpemVvZigqdmlkZW9fbWV0YWRh dGEpKSk7CisrI2Vsc2UKKysgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wKiB2aWRlb19tZXRh ZGF0YSA9CisrICAgICAgc3RhdGljX2Nhc3Q8c3RydWN0IHNwYV9tZXRhX3ZpZGVvX2Nyb3AqPigK KysgICAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGEoc3BhQnVmZmVyLCBwd19jb3JlX3R5cGVf LT5tZXRhLlZpZGVvQ3JvcCkpOworKyNlbmRpZgorKworKyAgLy8gVmlkZW8gc2l6ZSBmcm9tIG1l dGFkYXRhIGlzIGJpZ2dlciB0aGFuIGFuIGFjdHVhbCB2aWRlbyBzdHJlYW0gc2l6ZS4KKysgIC8v IFRoZSBtZXRhZGF0YSBhcmUgd3Jvbmcgb3Igd2Ugc2hvdWxkIHVwLXNjYWxlIHRoZSB2aWRlby4u LmluIGJvdGggY2FzZXMKKysgIC8vIGp1c3QgcXVpdCBub3cuCisrI2lmIFBXX0NIRUNLX1ZFUlNJ T04oMCwgMywgMCkKKysgIGlmICh2aWRlb19tZXRhZGF0YSAmJiAodmlkZW9fbWV0YWRhdGEtPnJl Z2lvbi5zaXplLndpZHRoID4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19j YXN0PHVpbnQzMl90PihkZXNrdG9wX3NpemVfLndpZHRoKCkpIHx8CisrICAgICAgICAgICAgICAg ICAgICAgICAgIHZpZGVvX21ldGFkYXRhLT5yZWdpb24uc2l6ZS5oZWlnaHQgPgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2t0b3Bfc2l6ZV8u aGVpZ2h0KCkpKSkgeworKyNlbHNlCisrICBpZiAodmlkZW9fbWV0YWRhdGEgJiYgKHZpZGVvX21l dGFkYXRhLT53aWR0aCA+IGRlc2t0b3Bfc2l6ZV8ud2lkdGgoKSB8fAorKyAgICAgICAgICAgICAg ICAgICAgICAgICB2aWRlb19tZXRhZGF0YS0+aGVpZ2h0ID4gZGVza3RvcF9zaXplXy5oZWlnaHQo KSkpIHsKKysjZW5kaWYKKysgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIlN0cmVhbSBtZXRhZGF0 YSBzaXplcyBhcmUgd3JvbmchIjsKKyAgICAgcmV0dXJuOworICAgfQorIAorLSAgdWludDMyX3Qg bWF4U2l6ZSA9IHNwYUJ1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZTsKKy0gIGludDMyX3Qgc3JjU3Ry aWRlID0gc3BhQnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c3RyaWRlOworLSAgaWYgKHNyY1N0cmlk ZSAhPSAoZGVza3RvcF9zaXplXy53aWR0aCgpICoga0J5dGVzUGVyUGl4ZWwpKSB7CisrICAvLyBV c2UgdmlkZW8gbWV0YWRhdGEgd2hlbiB2aWRlbyBzaXplIGZyb20gbWV0YWRhdGEgaXMgc2V0IGFu ZCBzbWFsbGVyIHRoYW4KKysgIC8vIHZpZGVvIHN0cmVhbSBzaXplLCBzbyB3ZSBuZWVkIHRvIGFk anVzdCBpdC4KKysgIGJvb2wgdmlkZW9faXNfZnVsbF93aWR0aCA9IHRydWU7CisrICBib29sIHZp ZGVvX2lzX2Z1bGxfaGVpZ2h0ID0gdHJ1ZTsKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAw KQorKyAgaWYgKHZpZGVvX21ldGFkYXRhICYmIHZpZGVvX21ldGFkYXRhLT5yZWdpb24uc2l6ZS53 aWR0aCAhPSAwICYmCisrICAgICAgdmlkZW9fbWV0YWRhdGEtPnJlZ2lvbi5zaXplLmhlaWdodCAh PSAwKSB7CisrICAgIGlmICh2aWRlb19tZXRhZGF0YS0+cmVnaW9uLnNpemUud2lkdGggPAorKyAg ICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2t0b3Bfc2l6ZV8ud2lkdGgoKSkpIHsKKysg ICAgICB2aWRlb19pc19mdWxsX3dpZHRoID0gZmFsc2U7CisrICAgIH0gZWxzZSBpZiAodmlkZW9f bWV0YWRhdGEtPnJlZ2lvbi5zaXplLmhlaWdodCA8CisrICAgICAgICAgICAgICAgc3RhdGljX2Nh c3Q8dWludDMyX3Q+KGRlc2t0b3Bfc2l6ZV8uaGVpZ2h0KCkpKSB7CisrICAgICAgdmlkZW9faXNf ZnVsbF9oZWlnaHQgPSBmYWxzZTsKKysgICAgfQorKyAgfQorKyNlbHNlCisrICBpZiAodmlkZW9f bWV0YWRhdGEgJiYgdmlkZW9fbWV0YWRhdGEtPndpZHRoICE9IDAgJiYKKysgICAgICB2aWRlb19t ZXRhZGF0YS0+aGVpZ2h0ICE9IDApIHsKKysgICAgaWYgKHZpZGVvX21ldGFkYXRhLT53aWR0aCA8 IGRlc2t0b3Bfc2l6ZV8ud2lkdGgoKSkgeworKyAgICB9IGVsc2UgaWYgKHZpZGVvX21ldGFkYXRh LT5oZWlnaHQgPCBkZXNrdG9wX3NpemVfLmhlaWdodCgpKSB7CisrICAgICAgdmlkZW9faXNfZnVs bF9oZWlnaHQgPSBmYWxzZTsKKysgICAgfQorKyAgfQorKyNlbmRpZgorKworKyAgRGVza3RvcFNp emUgdmlkZW9fc2l6ZV9wcmV2ID0gdmlkZW9fc2l6ZV87CisrICBpZiAoIXZpZGVvX2lzX2Z1bGxf aGVpZ2h0IHx8ICF2aWRlb19pc19mdWxsX3dpZHRoKSB7CisrI2lmIFBXX0NIRUNLX1ZFUlNJT04o MCwgMywgMCkKKysgICAgdmlkZW9fc2l6ZV8gPSBEZXNrdG9wU2l6ZSh2aWRlb19tZXRhZGF0YS0+ cmVnaW9uLnNpemUud2lkdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9f bWV0YWRhdGEtPnJlZ2lvbi5zaXplLmhlaWdodCk7CisrI2Vsc2UKKysgICAgdmlkZW9fc2l6ZV8g PSBEZXNrdG9wU2l6ZSh2aWRlb19tZXRhZGF0YS0+d2lkdGgsIHZpZGVvX21ldGFkYXRhLT5oZWln aHQpOworKyNlbmRpZgorKyAgfSBlbHNlIHsKKysgICAgdmlkZW9fc2l6ZV8gPSBkZXNrdG9wX3Np emVfOworKyAgfQorKworKyAgd2VicnRjOjpNdXRleExvY2sgbG9jaygmY3VycmVudF9mcmFtZV9s b2NrXyk7CisrICBpZiAoIWN1cnJlbnRfZnJhbWVfIHx8ICF2aWRlb19zaXplXy5lcXVhbHModmlk ZW9fc2l6ZV9wcmV2KSkgeworKyAgICBjdXJyZW50X2ZyYW1lXyA9IHN0ZDo6bWFrZV91bmlxdWU8 dWludDhfdFtdPigKKysgICAgICAgIHZpZGVvX3NpemVfLndpZHRoKCkgKiB2aWRlb19zaXplXy5o ZWlnaHQoKSAqIGtCeXRlc1BlclBpeGVsKTsKKysgIH0KKysKKysgIGNvbnN0IGludDMyX3QgZHN0 X3N0cmlkZSA9IHZpZGVvX3NpemVfLndpZHRoKCkgKiBrQnl0ZXNQZXJQaXhlbDsKKysgIGNvbnN0 IGludDMyX3Qgc3JjX3N0cmlkZSA9IHNwYUJ1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlkZTsK KysKKysgIGlmIChzcmNfc3RyaWRlICE9IChkZXNrdG9wX3NpemVfLndpZHRoKCkgKiBrQnl0ZXNQ ZXJQaXhlbCkpIHsKKyAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkdvdCBidWZmZXIgd2l0aCBz dHJpZGUgZGlmZmVyZW50IGZyb20gc2NyZWVuIHN0cmlkZTogIgorLSAgICAgICAgICAgICAgICAg ICAgICA8PCBzcmNTdHJpZGUKKysgICAgICAgICAgICAgICAgICAgICAgPDwgc3JjX3N0cmlkZQor ICAgICAgICAgICAgICAgICAgICAgICA8PCAiICE9ICIgPDwgKGRlc2t0b3Bfc2l6ZV8ud2lkdGgo KSAqIGtCeXRlc1BlclBpeGVsKTsKKyAgICAgcG9ydGFsX2luaXRfZmFpbGVkXyA9IHRydWU7Cisr CisgICAgIHJldHVybjsKKyAgIH0KKyAKKy0gIGlmICghY3VycmVudF9mcmFtZV8pIHsKKy0gICAg Y3VycmVudF9mcmFtZV8gPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obWFsbG9jKG1heFNpemUpKTsK Ky0gIH0KKy0gIFJUQ19EQ0hFQ0soY3VycmVudF9mcmFtZV8gIT0gbnVsbHB0cik7CistCistICAv LyBJZiBib3RoIHNpZGVzIGRlY2lkZWQgdG8gZ28gd2l0aCB0aGUgUkdCeCBmb3JtYXQgd2UgbmVl ZCB0byBjb252ZXJ0IGl0IHRvCistICAvLyBCR1J4IHRvIG1hdGNoIGNvbG9yIGZvcm1hdCBleHBl Y3RlZCBieSBXZWJSVEMuCistICBpZiAoc3BhX3ZpZGVvX2Zvcm1hdF8tPmZvcm1hdCA9PSBwd190 eXBlXy0+dmlkZW9fZm9ybWF0LlJHQngpIHsKKy0gICAgdWludDhfdCogdGVtcEZyYW1lID0gc3Rh dGljX2Nhc3Q8dWludDhfdCo+KG1hbGxvYyhtYXhTaXplKSk7CistICAgIHN0ZDo6bWVtY3B5KHRl bXBGcmFtZSwgc3JjLCBtYXhTaXplKTsKKy0gICAgQ29udmVydFJHQnhUb0JHUngodGVtcEZyYW1l LCBtYXhTaXplKTsKKy0gICAgc3RkOjptZW1jcHkoY3VycmVudF9mcmFtZV8sIHRlbXBGcmFtZSwg bWF4U2l6ZSk7CistICAgIGZyZWUodGVtcEZyYW1lKTsKKy0gIH0gZWxzZSB7CistICAgIHN0ZDo6 bWVtY3B5KGN1cnJlbnRfZnJhbWVfLCBzcmMsIG1heFNpemUpOworKyAgLy8gQWRqdXN0IHNvdXJj ZSBjb250ZW50IGJhc2VkIG9uIG1ldGFkYXRhIHZpZGVvIHBvc2l0aW9uCisrI2lmIFBXX0NIRUNL X1ZFUlNJT04oMCwgMywgMCkKKysgIGlmICghdmlkZW9faXNfZnVsbF9oZWlnaHQgJiYKKysgICAg ICAodmlkZW9fbWV0YWRhdGEtPnJlZ2lvbi5wb3NpdGlvbi55ICsgdmlkZW9fc2l6ZV8uaGVpZ2h0 KCkgPD0KKysgICAgICAgZGVza3RvcF9zaXplXy5oZWlnaHQoKSkpIHsKKysgICAgc3JjICs9IHNy Y19zdHJpZGUgKiB2aWRlb19tZXRhZGF0YS0+cmVnaW9uLnBvc2l0aW9uLnk7CisrICB9CisrICBj b25zdCBpbnQgeF9vZmZzZXQgPQorKyAgICAgICF2aWRlb19pc19mdWxsX3dpZHRoICYmCisrICAg ICAgICAgICAgICAodmlkZW9fbWV0YWRhdGEtPnJlZ2lvbi5wb3NpdGlvbi54ICsgdmlkZW9fc2l6 ZV8ud2lkdGgoKSA8PQorKyAgICAgICAgICAgICAgIGRlc2t0b3Bfc2l6ZV8ud2lkdGgoKSkKKysg ICAgICAgICAgPyB2aWRlb19tZXRhZGF0YS0+cmVnaW9uLnBvc2l0aW9uLnggKiBrQnl0ZXNQZXJQ aXhlbAorKyAgICAgICAgICA6IDA7CisrI2Vsc2UKKysgIGlmICghdmlkZW9faXNfZnVsbF9oZWln aHQgJiYKKysgICAgICAodmlkZW9fbWV0YWRhdGEtPnkgKyB2aWRlb19zaXplXy5oZWlnaHQoKSA8 PSBkZXNrdG9wX3NpemVfLmhlaWdodCgpKSkgeworKyAgICBzcmMgKz0gc3JjX3N0cmlkZSAqIHZp ZGVvX21ldGFkYXRhLT55OworKyAgfQorKworKyAgY29uc3QgaW50IHhfb2Zmc2V0ID0KKysgICAg ICAhdmlkZW9faXNfZnVsbF93aWR0aCAmJgorKyAgICAgICAgICAgICAgKHZpZGVvX21ldGFkYXRh LT54ICsgdmlkZW9fc2l6ZV8ud2lkdGgoKSA8PSBkZXNrdG9wX3NpemVfLndpZHRoKCkpCisrICAg ICAgICAgID8gdmlkZW9fbWV0YWRhdGEtPnggKiBrQnl0ZXNQZXJQaXhlbAorKyAgICAgICAgICA6 IDA7CisrI2VuZGlmCisrCisrICB1aW50OF90KiBkc3QgPSBjdXJyZW50X2ZyYW1lXy5nZXQoKTsK KysgIGZvciAoaW50IGkgPSAwOyBpIDwgdmlkZW9fc2l6ZV8uaGVpZ2h0KCk7ICsraSkgeworKyAg ICAvLyBBZGp1c3Qgc291cmNlIGNvbnRlbnQgYmFzZWQgb24gY3JvcCB2aWRlbyBwb3NpdGlvbiBp ZiBuZWVkZWQKKysgICAgc3JjICs9IHhfb2Zmc2V0OworKyAgICBzdGQ6Om1lbWNweShkc3QsIHNy YywgZHN0X3N0cmlkZSk7CisrICAgIC8vIElmIGJvdGggc2lkZXMgZGVjaWRlZCB0byBnbyB3aXRo IHRoZSBSR0J4IGZvcm1hdCB3ZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8KKysgICAgLy8gQkdSeCB0 byBtYXRjaCBjb2xvciBmb3JtYXQgZXhwZWN0ZWQgYnkgV2ViUlRDLgorKyNpZiBQV19DSEVDS19W RVJTSU9OKDAsIDMsIDApCisrICAgIGlmIChzcGFfdmlkZW9fZm9ybWF0Xy5mb3JtYXQgPT0gU1BB X1ZJREVPX0ZPUk1BVF9SR0J4IHx8CisrICAgICAgICBzcGFfdmlkZW9fZm9ybWF0Xy5mb3JtYXQg PT0gU1BBX1ZJREVPX0ZPUk1BVF9SR0JBKSB7CisrI2Vsc2UKKysgICAgaWYgKHNwYV92aWRlb19m b3JtYXRfLT5mb3JtYXQgPT0gcHdfdHlwZV8tPnZpZGVvX2Zvcm1hdC5SR0J4IHx8CisrICAgICAg ICBzcGFfdmlkZW9fZm9ybWF0Xy0+Zm9ybWF0ID09IHB3X3R5cGVfLT52aWRlb19mb3JtYXQuUkdC QSkgeworKyNlbmRpZgorKyAgICAgIENvbnZlcnRSR0J4VG9CR1J4KGRzdCwgZHN0X3N0cmlkZSk7 CisrICAgIH0KKysgICAgc3JjICs9IHNyY19zdHJpZGUgLSB4X29mZnNldDsKKysgICAgZHN0ICs9 IGRzdF9zdHJpZGU7CisgICB9CisgfQorIAorQEAgLTQ0MSwxNCArODk4LDEzIEBAIHZvaWQgQmFz ZUNhcHR1cmVyUGlwZVdpcmU6Ok9uUHJveHlSZXF1ZXN0ZWQoR09iamVjdCogLypvYmplY3QqLywK KyAgIEJhc2VDYXB0dXJlclBpcGVXaXJlKiB0aGF0ID0gc3RhdGljX2Nhc3Q8QmFzZUNhcHR1cmVy UGlwZVdpcmUqPih1c2VyX2RhdGEpOworICAgUlRDX0RDSEVDSyh0aGF0KTsKKyAKKy0gIEdFcnJv ciogZXJyb3IgPSBudWxscHRyOworLSAgR0RCdXNQcm94eSAqcHJveHkgPSBnX2RidXNfcHJveHlf bmV3X2ZpbmlzaChyZXN1bHQsICZlcnJvcik7CisrICBTY29wZWQ8R0Vycm9yPiBlcnJvcjsKKysg IEdEQnVzUHJveHkqIHByb3h5ID0gZ19kYnVzX3Byb3h5X25ld19maW5pc2gocmVzdWx0LCBlcnJv ci5yZWNlaXZlKCkpOworICAgaWYgKCFwcm94eSkgeworLSAgICBpZiAoZ19lcnJvcl9tYXRjaGVz KGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpCisrICAgIGlmIChnX2Vy cm9yX21hdGNoZXMoZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVE KSkKKyAgICAgICByZXR1cm47CisgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g Y3JlYXRlIGEgcHJveHkgZm9yIHRoZSBzY3JlZW4gY2FzdCBwb3J0YWw6ICIKKyAgICAgICAgICAg ICAgICAgICAgICAgPDwgZXJyb3ItPm1lc3NhZ2U7CistICAgIGdfZXJyb3JfZnJlZShlcnJvcik7 CisgICAgIHRoYXQtPnBvcnRhbF9pbml0X2ZhaWxlZF8gPSB0cnVlOworICAgICByZXR1cm47Cisg ICB9CitAQCAtNDYyLDM4ICs5MTgsMzYgQEAgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6T25Q cm94eVJlcXVlc3RlZChHT2JqZWN0KiAvKm9iamVjdCovLAorIC8vIHN0YXRpYworIGdjaGFyKiBC YXNlQ2FwdHVyZXJQaXBlV2lyZTo6UHJlcGFyZVNpZ25hbEhhbmRsZShHREJ1c0Nvbm5lY3Rpb24q IGNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGdjaGFyKiB0b2tlbikgeworLSAgZ2NoYXIqIHNlbmRlciA9IGdfc3RyZHVw KGdfZGJ1c19jb25uZWN0aW9uX2dldF91bmlxdWVfbmFtZShjb25uZWN0aW9uKSArIDEpOworLSAg Zm9yIChpbnQgaSA9IDA7IHNlbmRlcltpXTsgaSsrKSB7CistICAgIGlmIChzZW5kZXJbaV0gPT0g Jy4nKSB7CistICAgICAgc2VuZGVyW2ldID0gJ18nOworKyAgU2NvcGVkPGdjaGFyPiBzZW5kZXIo CisrICAgICAgZ19zdHJkdXAoZ19kYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lKGNvbm5l Y3Rpb24pICsgMSkpOworKyAgZm9yIChpbnQgaSA9IDA7IHNlbmRlci5nZXQoKVtpXTsgaSsrKSB7 CisrICAgIGlmIChzZW5kZXIuZ2V0KClbaV0gPT0gJy4nKSB7CisrICAgICAgc2VuZGVyLmdldCgp W2ldID0gJ18nOworICAgICB9CisgICB9CisgCistICBnY2hhciogaGFuZGxlID0gZ19zdHJjb25j YXQoa0Rlc2t0b3BSZXF1ZXN0T2JqZWN0UGF0aCwgIi8iLCBzZW5kZXIsICIvIiwKKysgIGdjaGFy KiBoYW5kbGUgPSBnX3N0cmNvbmNhdChrRGVza3RvcFJlcXVlc3RPYmplY3RQYXRoLCAiLyIsIHNl bmRlci5nZXQoKSwgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAv KmVuZCBvZiB2YXJhcmdzKi8gbnVsbHB0cik7CistICBnX2ZyZWUoc2VuZGVyKTsKKyAKKyAgIHJl dHVybiBoYW5kbGU7CisgfQorIAorIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6OlNlc3Npb25S ZXF1ZXN0KCkgeworICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXI7CistICBnY2hhciogdmFyaWFu dF9zdHJpbmc7CisrICBTY29wZWQ8Z2NoYXI+IHZhcmlhbnRfc3RyaW5nOworIAorICAgZ192YXJp YW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEVfVkFSRElDVCk7CisgICB2 YXJpYW50X3N0cmluZyA9CisgICAgICAgZ19zdHJkdXBfcHJpbnRmKCJ3ZWJydGNfc2Vzc2lvbiVk IiwgZ19yYW5kb21faW50X3JhbmdlKDAsIEdfTUFYSU5UKSk7CisgICBnX3ZhcmlhbnRfYnVpbGRl cl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgInNlc3Npb25faGFuZGxlX3Rva2VuIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3X3N0cmluZyh2YXJpYW50X3N0cmluZykpOwor LSAgZ19mcmVlKHZhcmlhbnRfc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBnX3Zh cmlhbnRfbmV3X3N0cmluZyh2YXJpYW50X3N0cmluZy5nZXQoKSkpOworICAgdmFyaWFudF9zdHJp bmcgPSBnX3N0cmR1cF9wcmludGYoIndlYnJ0YyVkIiwgZ19yYW5kb21faW50X3JhbmdlKDAsIEdf TUFYSU5UKSk7CisgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgImhh bmRsZV90b2tlbiIsCistICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ld19zdHJp bmcodmFyaWFudF9zdHJpbmcpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRf bmV3X3N0cmluZyh2YXJpYW50X3N0cmluZy5nZXQoKSkpOworIAorLSAgcG9ydGFsX2hhbmRsZV8g PSBQcmVwYXJlU2lnbmFsSGFuZGxlKGNvbm5lY3Rpb25fLCB2YXJpYW50X3N0cmluZyk7CisrICBw b3J0YWxfaGFuZGxlXyA9IFByZXBhcmVTaWduYWxIYW5kbGUoY29ubmVjdGlvbl8sIHZhcmlhbnRf c3RyaW5nLmdldCgpKTsKKyAgIHNlc3Npb25fcmVxdWVzdF9zaWduYWxfaWRfID0gU2V0dXBSZXF1 ZXN0UmVzcG9uc2VTaWduYWwoCisgICAgICAgcG9ydGFsX2hhbmRsZV8sIE9uU2Vzc2lvblJlcXVl c3RSZXNwb25zZVNpZ25hbCk7CistICBnX2ZyZWUodmFyaWFudF9zdHJpbmcpOworIAorICAgUlRD X0xPRyhMU19JTkZPKSA8PCAiU2NyZWVuIGNhc3Qgc2Vzc2lvbiByZXF1ZXN0ZWQuIjsKKyAgIGdf ZGJ1c19wcm94eV9jYWxsKAorQEAgLTUwOSwyMiArOTYzLDIxIEBAIHZvaWQgQmFzZUNhcHR1cmVy UGlwZVdpcmU6Ok9uU2Vzc2lvblJlcXVlc3RlZChHREJ1c1Byb3h5ICpwcm94eSwKKyAgIEJhc2VD YXB0dXJlclBpcGVXaXJlKiB0aGF0ID0gc3RhdGljX2Nhc3Q8QmFzZUNhcHR1cmVyUGlwZVdpcmUq Pih1c2VyX2RhdGEpOworICAgUlRDX0RDSEVDSyh0aGF0KTsKKyAKKy0gIEdFcnJvciogZXJyb3Ig PSBudWxscHRyOworLSAgR1ZhcmlhbnQqIHZhcmlhbnQgPSBnX2RidXNfcHJveHlfY2FsbF9maW5p c2gocHJveHksIHJlc3VsdCwgJmVycm9yKTsKKysgIFNjb3BlZDxHRXJyb3I+IGVycm9yOworKyAg U2NvcGVkPEdWYXJpYW50PiB2YXJpYW50KAorKyAgICAgIGdfZGJ1c19wcm94eV9jYWxsX2Zpbmlz aChwcm94eSwgcmVzdWx0LCBlcnJvci5yZWNlaXZlKCkpKTsKKyAgIGlmICghdmFyaWFudCkgewor LSAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NB TkNFTExFRCkpCisrICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJyb3IuZ2V0KCksIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkKKyAgICAgICByZXR1cm47CisgICAgIFJUQ19MT0co TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGEgc2NyZWVuIGNhc3Qgc2Vzc2lvbjogIgor ICAgICAgICAgICAgICAgICAgICAgICA8PCBlcnJvci0+bWVzc2FnZTsKKy0gICAgZ19lcnJvcl9m cmVlKGVycm9yKTsKKyAgICAgdGhhdC0+cG9ydGFsX2luaXRfZmFpbGVkXyA9IHRydWU7CisgICAg IHJldHVybjsKKyAgIH0KKyAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkluaXRpYWxpemluZyB0aGUg c2NyZWVuIGNhc3Qgc2Vzc2lvbi4iOworIAorLSAgZ2NoYXIqIGhhbmRsZSA9IG51bGxwdHI7Cist ICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKHZhcmlhbnQsIDAsICJvIiwgJmhhbmRsZSk7CistICBnX3Zh cmlhbnRfdW5yZWYodmFyaWFudCk7CisrICBTY29wZWQ8Z2NoYXI+IGhhbmRsZTsKKysgIGdfdmFy aWFudF9nZXRfY2hpbGQodmFyaWFudC5nZXQoKSwgMCwgIm8iLCAmaGFuZGxlKTsKKyAgIGlmICgh aGFuZGxlKSB7CisgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gaW5pdGlhbGl6 ZSB0aGUgc2NyZWVuIGNhc3Qgc2Vzc2lvbi4iOworICAgICBpZiAodGhhdC0+c2Vzc2lvbl9yZXF1 ZXN0X3NpZ25hbF9pZF8pIHsKK0BAIC01MzYsOCArOTg5LDYgQEAgdm9pZCBCYXNlQ2FwdHVyZXJQ aXBlV2lyZTo6T25TZXNzaW9uUmVxdWVzdGVkKEdEQnVzUHJveHkgKnByb3h5LAorICAgICByZXR1 cm47CisgICB9CisgCistICBnX2ZyZWUoaGFuZGxlKTsKKy0KKyAgIFJUQ19MT0coTFNfSU5GTykg PDwgIlN1YnNjcmliaW5nIHRvIHRoZSBzY3JlZW4gY2FzdCBzZXNzaW9uLiI7CisgfQorIAorQEAg LTU1NywxMSArMTAwOCwxMSBAQCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblNlc3Npb25S ZXF1ZXN0UmVzcG9uc2VTaWduYWwoCisgICAgICAgPDwgIlJlY2VpdmVkIHJlc3BvbnNlIGZvciB0 aGUgc2NyZWVuIGNhc3Qgc2Vzc2lvbiBzdWJzY3JpcHRpb24uIjsKKyAKKyAgIGd1aW50MzIgcG9y dGFsX3Jlc3BvbnNlOworLSAgR1ZhcmlhbnQqIHJlc3BvbnNlX2RhdGE7CistICBnX3ZhcmlhbnRf Z2V0KHBhcmFtZXRlcnMsICIodUBhe3N2fSkiLCAmcG9ydGFsX3Jlc3BvbnNlLCAmcmVzcG9uc2Vf ZGF0YSk7CistICBnX3ZhcmlhbnRfbG9va3VwKHJlc3BvbnNlX2RhdGEsICJzZXNzaW9uX2hhbmRs ZSIsICJzIiwKKysgIFNjb3BlZDxHVmFyaWFudD4gcmVzcG9uc2VfZGF0YTsKKysgIGdfdmFyaWFu dF9nZXQocGFyYW1ldGVycywgIih1QGF7c3Z9KSIsICZwb3J0YWxfcmVzcG9uc2UsCisrICAgICAg ICAgICAgICAgIHJlc3BvbnNlX2RhdGEucmVjZWl2ZSgpKTsKKysgIGdfdmFyaWFudF9sb29rdXAo cmVzcG9uc2VfZGF0YS5nZXQoKSwgInNlc3Npb25faGFuZGxlIiwgInMiLAorICAgICAgICAgICAg ICAgICAgICAmdGhhdC0+c2Vzc2lvbl9oYW5kbGVfKTsKKy0gIGdfdmFyaWFudF91bnJlZihyZXNw b25zZV9kYXRhKTsKKyAKKyAgIGlmICghdGhhdC0+c2Vzc2lvbl9oYW5kbGVfIHx8IHBvcnRhbF9y ZXNwb25zZSkgeworICAgICBSVENfTE9HKExTX0VSUk9SKQorQEAgLTU3NSwyMyArMTAyNiwyMyBA QCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblNlc3Npb25SZXF1ZXN0UmVzcG9uc2VTaWdu YWwoCisgCisgdm9pZCBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6U291cmNlc1JlcXVlc3QoKSB7Cisg ICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKKy0gIGdjaGFyKiB2YXJpYW50X3N0cmluZzsKKysg IFNjb3BlZDxnY2hhcj4gdmFyaWFudF9zdHJpbmc7CisgCisgICBnX3ZhcmlhbnRfYnVpbGRlcl9p bml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9WQVJESUNUKTsKKyAgIC8vIFdlIHdhbnQgdG8g cmVjb3JkIG1vbml0b3IgY29udGVudC4KKy0gIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRl ciwgIntzdn0iLCAidHlwZXMiLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9u ZXdfdWludDMyKGNhcHR1cmVfc291cmNlX3R5cGVfKSk7CisrICBnX3ZhcmlhbnRfYnVpbGRlcl9h ZGQoCisrICAgICAgJmJ1aWxkZXIsICJ7c3Z9IiwgInR5cGVzIiwKKysgICAgICBnX3ZhcmlhbnRf bmV3X3VpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4oY2FwdHVyZV9zb3VyY2VfdHlwZV8pKSk7 CisgICAvLyBXZSBkb24ndCB3YW50IHRvIGFsbG93IHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBzb3Vy Y2VzLgorICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJtdWx0aXBs ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ld19ib29sZWFuKGZhbHNl KSk7CisgICB2YXJpYW50X3N0cmluZyA9IGdfc3RyZHVwX3ByaW50Zigid2VicnRjJWQiLCBnX3Jh bmRvbV9pbnRfcmFuZ2UoMCwgR19NQVhJTlQpKTsKKyAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgm YnVpbGRlciwgIntzdn0iLCAiaGFuZGxlX3Rva2VuIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICBnX3ZhcmlhbnRfbmV3X3N0cmluZyh2YXJpYW50X3N0cmluZykpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIGdfdmFyaWFudF9uZXdfc3RyaW5nKHZhcmlhbnRfc3RyaW5nLmdldCgpKSk7Cisg CistICBzb3VyY2VzX2hhbmRsZV8gPSBQcmVwYXJlU2lnbmFsSGFuZGxlKGNvbm5lY3Rpb25fLCB2 YXJpYW50X3N0cmluZyk7CisrICBzb3VyY2VzX2hhbmRsZV8gPSBQcmVwYXJlU2lnbmFsSGFuZGxl KGNvbm5lY3Rpb25fLCB2YXJpYW50X3N0cmluZy5nZXQoKSk7CisgICBzb3VyY2VzX3JlcXVlc3Rf c2lnbmFsX2lkXyA9IFNldHVwUmVxdWVzdFJlc3BvbnNlU2lnbmFsKAorICAgICAgIHNvdXJjZXNf aGFuZGxlXywgT25Tb3VyY2VzUmVxdWVzdFJlc3BvbnNlU2lnbmFsKTsKKy0gIGdfZnJlZSh2YXJp YW50X3N0cmluZyk7CisgCisgICBSVENfTE9HKExTX0lORk8pIDw8ICJSZXF1ZXN0aW5nIHNvdXJj ZXMgZnJvbSB0aGUgc2NyZWVuIGNhc3Qgc2Vzc2lvbi4iOworICAgZ19kYnVzX3Byb3h5X2NhbGwo CitAQCAtNjA4LDIyICsxMDU5LDIxIEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU291 cmNlc1JlcXVlc3RlZChHREJ1c1Byb3h5ICpwcm94eSwKKyAgIEJhc2VDYXB0dXJlclBpcGVXaXJl KiB0aGF0ID0gc3RhdGljX2Nhc3Q8QmFzZUNhcHR1cmVyUGlwZVdpcmUqPih1c2VyX2RhdGEpOwor ICAgUlRDX0RDSEVDSyh0aGF0KTsKKyAKKy0gIEdFcnJvciogZXJyb3IgPSBudWxscHRyOworLSAg R1ZhcmlhbnQqIHZhcmlhbnQgPSBnX2RidXNfcHJveHlfY2FsbF9maW5pc2gocHJveHksIHJlc3Vs dCwgJmVycm9yKTsKKysgIFNjb3BlZDxHRXJyb3I+IGVycm9yOworKyAgU2NvcGVkPEdWYXJpYW50 PiB2YXJpYW50KAorKyAgICAgIGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaChwcm94eSwgcmVzdWx0 LCBlcnJvci5yZWNlaXZlKCkpKTsKKyAgIGlmICghdmFyaWFudCkgeworLSAgICBpZiAoZ19lcnJv cl9tYXRjaGVzKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpCisrICAg IGlmIChnX2Vycm9yX21hdGNoZXMoZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1Jf Q0FOQ0VMTEVEKSkKKyAgICAgICByZXR1cm47CisgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJG YWlsZWQgdG8gcmVxdWVzdCB0aGUgc291cmNlczogIiA8PCBlcnJvci0+bWVzc2FnZTsKKy0gICAg Z19lcnJvcl9mcmVlKGVycm9yKTsKKyAgICAgdGhhdC0+cG9ydGFsX2luaXRfZmFpbGVkXyA9IHRy dWU7CisgICAgIHJldHVybjsKKyAgIH0KKyAKKyAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlNvdXJj ZXMgcmVxdWVzdGVkIGZyb20gdGhlIHNjcmVlbiBjYXN0IHNlc3Npb24uIjsKKyAKKy0gIGdjaGFy KiBoYW5kbGUgPSBudWxscHRyOworLSAgZ192YXJpYW50X2dldF9jaGlsZCh2YXJpYW50LCAwLCAi byIsICZoYW5kbGUpOworLSAgZ192YXJpYW50X3VucmVmKHZhcmlhbnQpOworKyAgU2NvcGVkPGdj aGFyPiBoYW5kbGU7CisrICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKHZhcmlhbnQuZ2V0KCksIDAsICJv IiwgaGFuZGxlLnJlY2VpdmUoKSk7CisgICBpZiAoIWhhbmRsZSkgeworICAgICBSVENfTE9HKExT X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIHNjcmVlbiBjYXN0IHNlc3Npb24u IjsKKyAgICAgaWYgKHRoYXQtPnNvdXJjZXNfcmVxdWVzdF9zaWduYWxfaWRfKSB7CitAQCAtNjM1 LDggKzEwODUsNiBAQCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblNvdXJjZXNSZXF1ZXN0 ZWQoR0RCdXNQcm94eSAqcHJveHksCisgICAgIHJldHVybjsKKyAgIH0KKyAKKy0gIGdfZnJlZSho YW5kbGUpOworLQorICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiU3Vic2NyaWJlZCB0byBzb3VyY2Vz IHNpZ25hbC4iOworIH0KKyAKK0BAIC02NjgsMTcgKzExMTYsMTYgQEAgdm9pZCBCYXNlQ2FwdHVy ZXJQaXBlV2lyZTo6T25Tb3VyY2VzUmVxdWVzdFJlc3BvbnNlU2lnbmFsKAorIAorIHZvaWQgQmFz ZUNhcHR1cmVyUGlwZVdpcmU6OlN0YXJ0UmVxdWVzdCgpIHsKKyAgIEdWYXJpYW50QnVpbGRlciBi dWlsZGVyOworLSAgZ2NoYXIqIHZhcmlhbnRfc3RyaW5nOworKyAgU2NvcGVkPGdjaGFyPiB2YXJp YW50X3N0cmluZzsKKyAKKyAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFS SUFOVF9UWVBFX1ZBUkRJQ1QpOworICAgdmFyaWFudF9zdHJpbmcgPSBnX3N0cmR1cF9wcmludGYo IndlYnJ0YyVkIiwgZ19yYW5kb21faW50X3JhbmdlKDAsIEdfTUFYSU5UKSk7CisgICBnX3Zhcmlh bnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgImhhbmRsZV90b2tlbiIsCistICAgICAg ICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ld19zdHJpbmcodmFyaWFudF9zdHJpbmcpKTsK KysgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3X3N0cmluZyh2YXJpYW50X3N0 cmluZy5nZXQoKSkpOworIAorLSAgc3RhcnRfaGFuZGxlXyA9IFByZXBhcmVTaWduYWxIYW5kbGUo Y29ubmVjdGlvbl8sIHZhcmlhbnRfc3RyaW5nKTsKKysgIHN0YXJ0X2hhbmRsZV8gPSBQcmVwYXJl U2lnbmFsSGFuZGxlKGNvbm5lY3Rpb25fLCB2YXJpYW50X3N0cmluZy5nZXQoKSk7CisgICBzdGFy dF9yZXF1ZXN0X3NpZ25hbF9pZF8gPQorICAgICAgIFNldHVwUmVxdWVzdFJlc3BvbnNlU2lnbmFs KHN0YXJ0X2hhbmRsZV8sIE9uU3RhcnRSZXF1ZXN0UmVzcG9uc2VTaWduYWwpOworLSAgZ19mcmVl KHZhcmlhbnRfc3RyaW5nKTsKKyAKKyAgIC8vICJJZGVudGlmaWVyIGZvciB0aGUgYXBwbGljYXRp b24gd2luZG93IiwgdGhpcyBpcyBXYXlsYW5kLCBzbyBub3QgIngxMTouLi4iLgorICAgY29uc3Qg Z2NoYXIgcGFyZW50X3dpbmRvd1tdID0gIiI7CitAQCAtNjk4LDIzICsxMTQ1LDIyIEBAIHZvaWQg QmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9uU3RhcnRSZXF1ZXN0ZWQoR0RCdXNQcm94eSAqcHJveHks CisgICBCYXNlQ2FwdHVyZXJQaXBlV2lyZSogdGhhdCA9IHN0YXRpY19jYXN0PEJhc2VDYXB0dXJl clBpcGVXaXJlKj4odXNlcl9kYXRhKTsKKyAgIFJUQ19EQ0hFQ0sodGhhdCk7CisgCistICBHRXJy b3IqIGVycm9yID0gbnVsbHB0cjsKKy0gIEdWYXJpYW50KiB2YXJpYW50ID0gZ19kYnVzX3Byb3h5 X2NhbGxfZmluaXNoKHByb3h5LCByZXN1bHQsICZlcnJvcik7CisrICBTY29wZWQ8R0Vycm9yPiBl cnJvcjsKKysgIFNjb3BlZDxHVmFyaWFudD4gdmFyaWFudCgKKysgICAgICBnX2RidXNfcHJveHlf Y2FsbF9maW5pc2gocHJveHksIHJlc3VsdCwgZXJyb3IucmVjZWl2ZSgpKSk7CisgICBpZiAoIXZh cmlhbnQpIHsKKy0gICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnJvciwgR19JT19FUlJPUiwgR19J T19FUlJPUl9DQU5DRUxMRUQpKQorKyAgICBpZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLmdldCgp LCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpCisgICAgICAgcmV0dXJuOworICAg ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHN0YXJ0IHRoZSBzY3JlZW4gY2FzdCBz ZXNzaW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgIDw8IGVycm9yLT5tZXNzYWdlOworLSAg ICBnX2Vycm9yX2ZyZWUoZXJyb3IpOworICAgICB0aGF0LT5wb3J0YWxfaW5pdF9mYWlsZWRfID0g dHJ1ZTsKKyAgICAgcmV0dXJuOworICAgfQorIAorICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5p dGlhbGl6aW5nIHRoZSBzdGFydCBvZiB0aGUgc2NyZWVuIGNhc3Qgc2Vzc2lvbi4iOworIAorLSAg Z2NoYXIqIGhhbmRsZSA9IG51bGxwdHI7CistICBnX3ZhcmlhbnRfZ2V0X2NoaWxkKHZhcmlhbnQs IDAsICJvIiwgJmhhbmRsZSk7CistICBnX3ZhcmlhbnRfdW5yZWYodmFyaWFudCk7CisrICBTY29w ZWQ8Z2NoYXI+IGhhbmRsZTsKKysgIGdfdmFyaWFudF9nZXRfY2hpbGQodmFyaWFudC5nZXQoKSwg MCwgIm8iLCBoYW5kbGUucmVjZWl2ZSgpKTsKKyAgIGlmICghaGFuZGxlKSB7CisgICAgIFJUQ19M T0coTFNfRVJST1IpCisgICAgICAgICA8PCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIHN0YXJ0 IG9mIHRoZSBzY3JlZW4gY2FzdCBzZXNzaW9uLiI7CitAQCAtNzI3LDggKzExNzMsNiBAQCB2b2lk IEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblN0YXJ0UmVxdWVzdGVkKEdEQnVzUHJveHkgKnByb3h5 LAorICAgICByZXR1cm47CisgICB9CisgCistICBnX2ZyZWUoaGFuZGxlKTsKKy0KKyAgIFJUQ19M T0coTFNfSU5GTykgPDwgIlN1YnNjcmliZWQgdG8gdGhlIHN0YXJ0IHNpZ25hbC4iOworIH0KKyAK K0BAIC03NDYsOSArMTE5MCwxMCBAQCB2b2lkIEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPblN0YXJ0 UmVxdWVzdFJlc3BvbnNlU2lnbmFsKAorIAorICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiU3RhcnQg c2lnbmFsIHJlY2VpdmVkLiI7CisgICBndWludDMyIHBvcnRhbF9yZXNwb25zZTsKKy0gIEdWYXJp YW50KiByZXNwb25zZV9kYXRhOworLSAgR1ZhcmlhbnRJdGVyKiBpdGVyID0gbnVsbHB0cjsKKy0g IGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIih1QGF7c3Z9KSIsICZwb3J0YWxfcmVzcG9uc2Us ICZyZXNwb25zZV9kYXRhKTsKKysgIFNjb3BlZDxHVmFyaWFudD4gcmVzcG9uc2VfZGF0YTsKKysg IFNjb3BlZDxHVmFyaWFudEl0ZXI+IGl0ZXI7CisrICBnX3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMs ICIodUBhe3N2fSkiLCAmcG9ydGFsX3Jlc3BvbnNlLAorKyAgICAgICAgICAgICAgICByZXNwb25z ZV9kYXRhLnJlY2VpdmUoKSk7CisgICBpZiAocG9ydGFsX3Jlc3BvbnNlIHx8ICFyZXNwb25zZV9k YXRhKSB7CisgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gc3RhcnQgdGhlIHNj cmVlbiBjYXN0IHNlc3Npb24uIjsKKyAgICAgdGhhdC0+cG9ydGFsX2luaXRfZmFpbGVkXyA9IHRy dWU7CitAQCAtNzU4LDI4ICsxMjAzLDI4IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6Ok9u U3RhcnRSZXF1ZXN0UmVzcG9uc2VTaWduYWwoCisgICAvLyBBcnJheSBvZiBQaXBlV2lyZSBzdHJl YW1zLiBTZWUKKyAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrL3hkZy1kZXNrdG9wLXBv cnRhbC9ibG9iL21hc3Rlci9kYXRhL29yZy5mcmVlZGVza3RvcC5wb3J0YWwuU2NyZWVuQ2FzdC54 bWwKKyAgIC8vIGRvY3VtZW50YXRpb24gZm9yIDxtZXRob2QgbmFtZT0iU3RhcnQiPi4KKy0gIGlm IChnX3ZhcmlhbnRfbG9va3VwKHJlc3BvbnNlX2RhdGEsICJzdHJlYW1zIiwgImEodWF7c3Z9KSIs ICZpdGVyKSkgeworLSAgICBHVmFyaWFudCogdmFyaWFudDsKKysgIGlmIChnX3ZhcmlhbnRfbG9v a3VwKHJlc3BvbnNlX2RhdGEuZ2V0KCksICJzdHJlYW1zIiwgImEodWF7c3Z9KSIsCisrICAgICAg ICAgICAgICAgICAgICAgICBpdGVyLnJlY2VpdmUoKSkpIHsKKysgICAgU2NvcGVkPEdWYXJpYW50 PiB2YXJpYW50OworIAorLSAgICB3aGlsZSAoZ192YXJpYW50X2l0ZXJfbmV4dChpdGVyLCAiQCh1 YXtzdn0pIiwgJnZhcmlhbnQpKSB7CisrICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9uZXh0KGl0 ZXIuZ2V0KCksICJAKHVhe3N2fSkiLCB2YXJpYW50LnJlY2VpdmUoKSkpIHsKKyAgICAgICBndWlu dDMyIHN0cmVhbV9pZDsKKy0gICAgICBnaW50MzIgd2lkdGg7CistICAgICAgZ2ludDMyIGhlaWdo dDsKKy0gICAgICBHVmFyaWFudCogb3B0aW9uczsKKysgICAgICBndWludDMyIHR5cGU7CisrICAg ICAgU2NvcGVkPEdWYXJpYW50PiBvcHRpb25zOworIAorLSAgICAgIGdfdmFyaWFudF9nZXQodmFy aWFudCwgIih1QGF7c3Z9KSIsICZzdHJlYW1faWQsICZvcHRpb25zKTsKKy0gICAgICBSVENfRENI RUNLKG9wdGlvbnMgIT0gbnVsbHB0cik7CisrICAgICAgZ192YXJpYW50X2dldCh2YXJpYW50Lmdl dCgpLCAiKHVAYXtzdn0pIiwgJnN0cmVhbV9pZCwgb3B0aW9ucy5yZWNlaXZlKCkpOworKyAgICAg IFJUQ19EQ0hFQ0sob3B0aW9ucy5nZXQoKSk7CisgCistICAgICAgZ192YXJpYW50X2xvb2t1cChv cHRpb25zLCAic2l6ZSIsICIoaWkpIiwgJndpZHRoLCAmaGVpZ2h0KTsKKysgICAgICBpZiAoZ192 YXJpYW50X2xvb2t1cChvcHRpb25zLmdldCgpLCAic291cmNlX3R5cGUiLCAidSIsICZ0eXBlKSkg eworKyAgICAgICAgdGhhdC0+Y2FwdHVyZV9zb3VyY2VfdHlwZV8gPQorKyAgICAgICAgICAgIHN0 YXRpY19jYXN0PEJhc2VDYXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZT4odHlwZSk7 CisrICAgICAgfQorIAorLSAgICAgIHRoYXQtPmRlc2t0b3Bfc2l6ZV8uc2V0KHdpZHRoLCBoZWln aHQpOworKyAgICAgIHRoYXQtPnB3X3N0cmVhbV9ub2RlX2lkXyA9IHN0cmVhbV9pZDsKKyAKKy0g ICAgICBnX3ZhcmlhbnRfdW5yZWYob3B0aW9ucyk7CistICAgICAgZ192YXJpYW50X3VucmVmKHZh cmlhbnQpOworKyAgICAgIGJyZWFrOworICAgICB9CisgICB9CistICBnX3ZhcmlhbnRfaXRlcl9m cmVlKGl0ZXIpOworLSAgZ192YXJpYW50X3VucmVmKHJlc3BvbnNlX2RhdGEpOworIAorICAgdGhh dC0+T3BlblBpcGVXaXJlUmVtb3RlKCk7CisgfQorQEAgLTgwNywzNSArMTI1MiwzMCBAQCB2b2lk IEJhc2VDYXB0dXJlclBpcGVXaXJlOjpPbk9wZW5QaXBlV2lyZVJlbW90ZVJlcXVlc3RlZCgKKyAg IEJhc2VDYXB0dXJlclBpcGVXaXJlKiB0aGF0ID0gc3RhdGljX2Nhc3Q8QmFzZUNhcHR1cmVyUGlw ZVdpcmUqPih1c2VyX2RhdGEpOworICAgUlRDX0RDSEVDSyh0aGF0KTsKKyAKKy0gIEdFcnJvciog ZXJyb3IgPSBudWxscHRyOworLSAgR1VuaXhGRExpc3QqIG91dGxpc3QgPSBudWxscHRyOworLSAg R1ZhcmlhbnQqIHZhcmlhbnQgPSBnX2RidXNfcHJveHlfY2FsbF93aXRoX3VuaXhfZmRfbGlzdF9m aW5pc2goCistICAgICAgcHJveHksICZvdXRsaXN0LCByZXN1bHQsICZlcnJvcik7CisrICBTY29w ZWQ8R0Vycm9yPiBlcnJvcjsKKysgIFNjb3BlZDxHVW5peEZETGlzdD4gb3V0bGlzdDsKKysgIFNj b3BlZDxHVmFyaWFudD4gdmFyaWFudChnX2RidXNfcHJveHlfY2FsbF93aXRoX3VuaXhfZmRfbGlz dF9maW5pc2goCisrICAgICAgcHJveHksIG91dGxpc3QucmVjZWl2ZSgpLCByZXN1bHQsIGVycm9y LnJlY2VpdmUoKSkpOworICAgaWYgKCF2YXJpYW50KSB7CistICAgIGlmIChnX2Vycm9yX21hdGNo ZXMoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkKKysgICAgaWYgKGdf ZXJyb3JfbWF0Y2hlcyhlcnJvci5nZXQoKSwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxM RUQpKQorICAgICAgIHJldHVybjsKKyAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0 byBvcGVuIHRoZSBQaXBlV2lyZSByZW1vdGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwg ZXJyb3ItPm1lc3NhZ2U7CistICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CisgICAgIHRoYXQtPnBv cnRhbF9pbml0X2ZhaWxlZF8gPSB0cnVlOworICAgICByZXR1cm47CisgICB9CisgCisgICBnaW50 MzIgaW5kZXg7CistICBnX3ZhcmlhbnRfZ2V0KHZhcmlhbnQsICIoaCkiLCAmaW5kZXgpOworKyAg Z192YXJpYW50X2dldCh2YXJpYW50LmdldCgpLCAiKGgpIiwgJmluZGV4KTsKKyAKKy0gIGlmICgo dGhhdC0+cHdfZmRfID0gZ191bml4X2ZkX2xpc3RfZ2V0KG91dGxpc3QsIGluZGV4LCAmZXJyb3Ip KSA9PSAtMSkgeworKyAgaWYgKCh0aGF0LT5wd19mZF8gPQorKyAgICAgICAgICAgZ191bml4X2Zk X2xpc3RfZ2V0KG91dGxpc3QuZ2V0KCksIGluZGV4LCBlcnJvci5yZWNlaXZlKCkpKSA9PSAtMSkg eworICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBmaWxlIGRlc2NyaXB0 b3IgZnJvbSB0aGUgbGlzdDogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCBlcnJvci0+bWVz c2FnZTsKKy0gICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKy0gICAgZ192YXJpYW50X3VucmVmKHZh cmlhbnQpOworICAgICB0aGF0LT5wb3J0YWxfaW5pdF9mYWlsZWRfID0gdHJ1ZTsKKyAgICAgcmV0 dXJuOworICAgfQorIAorLSAgZ192YXJpYW50X3VucmVmKHZhcmlhbnQpOworLSAgZ19vYmplY3Rf dW5yZWYob3V0bGlzdCk7CistCisgICB0aGF0LT5Jbml0UGlwZVdpcmUoKTsKKyB9CisgCitAQCAt ODU0LDE1ICsxMjk0LDE4IEBAIHZvaWQgQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNhcHR1cmVGcmFt ZSgpIHsKKyAgICAgcmV0dXJuOworICAgfQorIAorKyAgd2VicnRjOjpNdXRleExvY2sgbG9jaygm Y3VycmVudF9mcmFtZV9sb2NrXyk7CisgICBpZiAoIWN1cnJlbnRfZnJhbWVfKSB7CisgICAgIGNh bGxiYWNrXy0+T25DYXB0dXJlUmVzdWx0KFJlc3VsdDo6RVJST1JfVEVNUE9SQVJZLCBudWxscHRy KTsKKyAgICAgcmV0dXJuOworICAgfQorIAorLSAgc3RkOjp1bmlxdWVfcHRyPERlc2t0b3BGcmFt ZT4gcmVzdWx0KG5ldyBCYXNpY0Rlc2t0b3BGcmFtZShkZXNrdG9wX3NpemVfKSk7CisrICBEZXNr dG9wU2l6ZSBmcmFtZV9zaXplID0gdmlkZW9fc2l6ZV87CisrCisrICBzdGQ6OnVuaXF1ZV9wdHI8 RGVza3RvcEZyYW1lPiByZXN1bHQobmV3IEJhc2ljRGVza3RvcEZyYW1lKGZyYW1lX3NpemUpKTsK KyAgIHJlc3VsdC0+Q29weVBpeGVsc0Zyb20oCistICAgICAgY3VycmVudF9mcmFtZV8sIChkZXNr dG9wX3NpemVfLndpZHRoKCkgKiBrQnl0ZXNQZXJQaXhlbCksCistICAgICAgRGVza3RvcFJlY3Q6 Ok1ha2VXSChkZXNrdG9wX3NpemVfLndpZHRoKCksIGRlc2t0b3Bfc2l6ZV8uaGVpZ2h0KCkpKTsK KysgICAgICBjdXJyZW50X2ZyYW1lXy5nZXQoKSwgKGZyYW1lX3NpemUud2lkdGgoKSAqIGtCeXRl c1BlclBpeGVsKSwKKysgICAgICBEZXNrdG9wUmVjdDo6TWFrZVdIKGZyYW1lX3NpemUud2lkdGgo KSwgZnJhbWVfc2l6ZS5oZWlnaHQoKSkpOworICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgY2FsbGJh Y2tfLT5PbkNhcHR1cmVSZXN1bHQoUmVzdWx0OjpFUlJPUl9URU1QT1JBUlksIG51bGxwdHIpOwor ICAgICByZXR1cm47CitAQCAtODg3LDQgKzEzMzAsMTEgQEAgYm9vbCBCYXNlQ2FwdHVyZXJQaXBl V2lyZTo6U2VsZWN0U291cmNlKFNvdXJjZUlkIGlkKSB7CisgICByZXR1cm4gdHJ1ZTsKKyB9Cisg CisrLy8gc3RhdGljCisrc3RkOjp1bmlxdWVfcHRyPERlc2t0b3BDYXB0dXJlcj4gQmFzZUNhcHR1 cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd0NhcHR1cmVyKAorKyAgICBjb25zdCBEZXNrdG9wQ2FwdHVy ZU9wdGlvbnMmIG9wdGlvbnMpIHsKKysgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEJhc2VDYXB0 dXJlclBpcGVXaXJlPigKKysgICAgICBCYXNlQ2FwdHVyZXJQaXBlV2lyZTo6Q2FwdHVyZVNvdXJj ZVR5cGU6OmtBbnkpOworK30KKysKKyB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCitkaWZmIC0tZ2l0 IGEvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xp bnV4L2Jhc2VfY2FwdHVyZXJfcGlwZXdpcmUuaCBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9iYXNlX2NhcHR1cmVyX3BpcGV3aXJlLmgK K2luZGV4IGYyOGQ3YTU1OGJjLi43NWQyMGRiZjFkYiAxMDA2NDQKKy0tLSBhL2Nocm9taXVtL3Ro aXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9iYXNlX2NhcHR1 cmVyX3BpcGV3aXJlLmgKKysrKyBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVz L2Rlc2t0b3BfY2FwdHVyZS9saW51eC9iYXNlX2NhcHR1cmVyX3BpcGV3aXJlLmgKK0BAIC0xMCwx OCArMTAsMjMgQEAKKyAKKyAjaWZuZGVmIE1PRFVMRVNfREVTS1RPUF9DQVBUVVJFX0xJTlVYX0JB U0VfQ0FQVFVSRVJfUElQRVdJUkVfSF8KKyAjZGVmaW5lIE1PRFVMRVNfREVTS1RPUF9DQVBUVVJF X0xJTlVYX0JBU0VfQ0FQVFVSRVJfUElQRVdJUkVfSF8KKy0KKyAjaW5jbHVkZSA8Z2lvL2dpby5o PgorICNkZWZpbmUgdHlwZW9mIF9fdHlwZW9mX18KKyAjaW5jbHVkZSA8cGlwZXdpcmUvcGlwZXdp cmUuaD4KKyAjaW5jbHVkZSA8c3BhL3BhcmFtL3ZpZGVvL2Zvcm1hdC11dGlscy5oPgorKyNpZiBQ V19DSEVDS19WRVJTSU9OKDAsIDMsIDApCisrI2luY2x1ZGUgPHNwYS91dGlscy9yZXN1bHQuaD4K KysjZW5kaWYKKyAKKysjaW5jbHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgorICNpbmNsdWRl ICJtb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2NhcHR1cmVfb3B0aW9ucy5oIgorICNp bmNsdWRlICJtb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2NhcHR1cmVyLmgiCisgI2lu Y2x1ZGUgInJ0Y19iYXNlL2NvbnN0cnVjdG9yX21hZ2ljLmgiCisrI2luY2x1ZGUgInJ0Y19iYXNl L3N5bmNocm9uaXphdGlvbi9tdXRleC5oIgorIAorIG5hbWVzcGFjZSB3ZWJydGMgeworIAorKyNp ZiAhUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAwKQorIGNsYXNzIFBpcGVXaXJlVHlwZSB7CisgIHB1 YmxpYzoKKyAgIHNwYV90eXBlX21lZGlhX3R5cGUgbWVkaWFfdHlwZTsKK0BAIC0yOSwxNCArMzQs MjUgQEAgY2xhc3MgUGlwZVdpcmVUeXBlIHsKKyAgIHNwYV90eXBlX2Zvcm1hdF92aWRlbyBmb3Jt YXRfdmlkZW87CisgICBzcGFfdHlwZV92aWRlb19mb3JtYXQgdmlkZW9fZm9ybWF0OworIH07Cisr I2VuZGlmCisgCisgY2xhc3MgQmFzZUNhcHR1cmVyUGlwZVdpcmUgOiBwdWJsaWMgRGVza3RvcENh cHR1cmVyIHsKKyAgcHVibGljOgorLSAgZW51bSBDYXB0dXJlU291cmNlVHlwZSB7IFNjcmVlbiA9 IDEsIFdpbmRvdyB9OworKyAgLy8gVmFsdWVzIGFyZSBzZXQgYmFzZWQgb24gc291cmNlIHR5cGUg cHJvcGVydHkgaW4KKysgIC8vIHhkZy1kZXNrdG9wLXBvcnRhbC9zY3JlZW5jYXN0CisrICAvLyBo dHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay94ZGctZGVza3RvcC1wb3J0YWwvYmxvYi9tYXN0ZXIv ZGF0YS9vcmcuZnJlZWRlc2t0b3AucG9ydGFsLlNjcmVlbkNhc3QueG1sCisrICBlbnVtIGNsYXNz IENhcHR1cmVTb3VyY2VUeXBlIDogdWludDMyX3QgeworKyAgICBrU2NyZWVuID0gMGIwMSwKKysg ICAga1dpbmRvdyA9IDBiMTAsCisrICAgIGtBbnkgPSAwYjExCisrICB9OworIAorICAgZXhwbGlj aXQgQmFzZUNhcHR1cmVyUGlwZVdpcmUoQ2FwdHVyZVNvdXJjZVR5cGUgc291cmNlX3R5cGUpOwor ICAgfkJhc2VDYXB0dXJlclBpcGVXaXJlKCkgb3ZlcnJpZGU7CisgCisrICBzdGF0aWMgc3RkOjp1 bmlxdWVfcHRyPERlc2t0b3BDYXB0dXJlcj4gQ3JlYXRlUmF3Q2FwdHVyZXIoCisrICAgICAgY29u c3QgRGVza3RvcENhcHR1cmVPcHRpb25zJiBvcHRpb25zKTsKKysKKyAgIC8vIERlc2t0b3BDYXB0 dXJlciBpbnRlcmZhY2UuCisgICB2b2lkIFN0YXJ0KENhbGxiYWNrKiBkZWxlZ2F0ZSkgb3ZlcnJp ZGU7CisgICB2b2lkIENhcHR1cmVGcmFtZSgpIG92ZXJyaWRlOworQEAgLTQ1LDYgKzYxLDIxIEBA IGNsYXNzIEJhc2VDYXB0dXJlclBpcGVXaXJlIDogcHVibGljIERlc2t0b3BDYXB0dXJlciB7Cisg CisgIHByaXZhdGU6CisgICAvLyBQaXBlV2lyZSB0eXBlcyAtLT4KKysjaWYgUFdfQ0hFQ0tfVkVS U0lPTigwLCAzLCAwKQorKyAgc3RydWN0IHB3X2NvbnRleHQqIHB3X2NvbnRleHRfID0gbnVsbHB0 cjsKKysgIHN0cnVjdCBwd19jb3JlKiBwd19jb3JlXyA9IG51bGxwdHI7CisrICBzdHJ1Y3QgcHdf c3RyZWFtKiBwd19zdHJlYW1fID0gbnVsbHB0cjsKKysgIHN0cnVjdCBwd190aHJlYWRfbG9vcCog cHdfbWFpbl9sb29wXyA9IG51bGxwdHI7CisrCisrICBzcGFfaG9vayBzcGFfY29yZV9saXN0ZW5l cl87CisrICBzcGFfaG9vayBzcGFfc3RyZWFtX2xpc3RlbmVyXzsKKysKKysgIC8vIGV2ZW50IGhh bmRsZXJzCisrICBwd19jb3JlX2V2ZW50cyBwd19jb3JlX2V2ZW50c18gPSB7fTsKKysgIHB3X3N0 cmVhbV9ldmVudHMgcHdfc3RyZWFtX2V2ZW50c18gPSB7fTsKKysKKysgIHN0cnVjdCBzcGFfdmlk ZW9faW5mb19yYXcgc3BhX3ZpZGVvX2Zvcm1hdF87CisrI2Vsc2UKKyAgIHB3X2NvcmUqIHB3X2Nv cmVfID0gbnVsbHB0cjsKKyAgIHB3X3R5cGUqIHB3X2NvcmVfdHlwZV8gPSBudWxscHRyOworICAg cHdfc3RyZWFtKiBwd19zdHJlYW1fID0gbnVsbHB0cjsKK0BAIC02MCwxMSArOTEsMTMgQEAgY2xh c3MgQmFzZUNhcHR1cmVyUGlwZVdpcmUgOiBwdWJsaWMgRGVza3RvcENhcHR1cmVyIHsKKyAgIHB3 X3JlbW90ZV9ldmVudHMgcHdfcmVtb3RlX2V2ZW50c18gPSB7fTsKKyAKKyAgIHNwYV92aWRlb19p bmZvX3Jhdyogc3BhX3ZpZGVvX2Zvcm1hdF8gPSBudWxscHRyOworKyNlbmRpZgorIAorKyAgZ3Vp bnQzMiBwd19zdHJlYW1fbm9kZV9pZF8gPSAwOworICAgZ2ludDMyIHB3X2ZkXyA9IC0xOworIAor ICAgQ2FwdHVyZVNvdXJjZVR5cGUgY2FwdHVyZV9zb3VyY2VfdHlwZV8gPQorLSAgICAgIEJhc2VD YXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZTo6U2NyZWVuOworKyAgICAgIEJhc2VD YXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZTo6a1NjcmVlbjsKKyAKKyAgIC8vIDwt LSBlbmQgb2YgUGlwZVdpcmUgdHlwZXMKKyAKK0BAIC03OSwxMCArMTEyLDEyIEBAIGNsYXNzIEJh c2VDYXB0dXJlclBpcGVXaXJlIDogcHVibGljIERlc2t0b3BDYXB0dXJlciB7CisgICBndWludCBz b3VyY2VzX3JlcXVlc3Rfc2lnbmFsX2lkXyA9IDA7CisgICBndWludCBzdGFydF9yZXF1ZXN0X3Np Z25hbF9pZF8gPSAwOworIAorKyAgRGVza3RvcFNpemUgdmlkZW9fc2l6ZV87CisgICBEZXNrdG9w U2l6ZSBkZXNrdG9wX3NpemVfID0ge307CisgICBEZXNrdG9wQ2FwdHVyZU9wdGlvbnMgb3B0aW9u c18gPSB7fTsKKyAKKy0gIHVpbnQ4X3QqIGN1cnJlbnRfZnJhbWVfID0gbnVsbHB0cjsKKysgIHdl YnJ0Yzo6TXV0ZXggY3VycmVudF9mcmFtZV9sb2NrXzsKKysgIHN0ZDo6dW5pcXVlX3B0cjx1aW50 OF90W10+IGN1cnJlbnRfZnJhbWVfOworICAgQ2FsbGJhY2sqIGNhbGxiYWNrXyA9IG51bGxwdHI7 CisgCisgICBib29sIHBvcnRhbF9pbml0X2ZhaWxlZF8gPSBmYWxzZTsKK0BAIC05MSwyMSArMTI2 LDMyIEBAIGNsYXNzIEJhc2VDYXB0dXJlclBpcGVXaXJlIDogcHVibGljIERlc2t0b3BDYXB0dXJl ciB7CisgICB2b2lkIEluaXRQaXBlV2lyZSgpOworICAgdm9pZCBJbml0UGlwZVdpcmVUeXBlcygp OworIAorLSAgdm9pZCBDcmVhdGVSZWNlaXZpbmdTdHJlYW0oKTsKKysgIHB3X3N0cmVhbSogQ3Jl YXRlUmVjZWl2aW5nU3RyZWFtKCk7CisgICB2b2lkIEhhbmRsZUJ1ZmZlcihwd19idWZmZXIqIGJ1 ZmZlcik7CisgCisgICB2b2lkIENvbnZlcnRSR0J4VG9CR1J4KHVpbnQ4X3QqIGZyYW1lLCB1aW50 MzJfdCBzaXplKTsKKyAKKysjaWYgUFdfQ0hFQ0tfVkVSU0lPTigwLCAzLCAwKQorKyAgc3RhdGlj IHZvaWQgT25Db3JlRXJyb3Iodm9pZCogZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlcSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCByZXMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyKiBtZXNzYWdlKTsKKysgIHN0YXRpYyB2b2lkIE9uU3RyZWFtUGFyYW1DaGFu Z2VkKHZvaWQqIGRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBzcGFfcG9kKiBmb3JtYXQpOworKyNlbHNlCisgICBzdGF0aWMgdm9pZCBPblN0YXRlQ2hhbmdl ZCh2b2lkKiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHdfcmVtb3RlX3N0 YXRlIG9sZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3X3JlbW90ZV9z dGF0ZSBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVy cm9yKTsKKysgIHN0YXRpYyB2b2lkIE9uU3RyZWFtRm9ybWF0Q2hhbmdlZCh2b2lkKiBkYXRhLCBj b25zdCBzdHJ1Y3Qgc3BhX3BvZCogZm9ybWF0KTsKKysjZW5kaWYKKyAgIHN0YXRpYyB2b2lkIE9u U3RyZWFtU3RhdGVDaGFuZ2VkKHZvaWQqIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwd19zdHJlYW1fc3RhdGUgb2xkX3N0YXRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHdfc3RyZWFtX3N0YXRlIHN0YXRlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXJyb3JfbWVzc2FnZSk7CisgCistICBz dGF0aWMgdm9pZCBPblN0cmVhbUZvcm1hdENoYW5nZWQodm9pZCogZGF0YSwgY29uc3Qgc3RydWN0 IHNwYV9wb2QqIGZvcm1hdCk7CisgICBzdGF0aWMgdm9pZCBPblN0cmVhbVByb2Nlc3Modm9pZCog ZGF0YSk7CisgICBzdGF0aWMgdm9pZCBPbk5ld0J1ZmZlcih2b2lkKiBkYXRhLCB1aW50MzJfdCBp ZCk7CisgCitkaWZmIC0tZ2l0IGEvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMv ZGVza3RvcF9jYXB0dXJlL2xpbnV4L3BpcGV3aXJlLnNpZ3MgYi9jaHJvbWl1bS90aGlyZF9wYXJ0 eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvcGlwZXdpcmUuc2lncworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzZTIxZTlkYzA3Yy4uMDAwMDAwMDAwMDAKKy0t LSBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9s aW51eC9waXBld2lyZS5zaWdzCisrKysgL2Rldi9udWxsCitAQCAtMSw0NCArMCwwIEBACistLy8g Q29weXJpZ2h0IDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCistLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu CistCistLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Ky0vLyBGdW5jdGlvbnMgZnJvbSBQaXBlV2lyZSB1c2VkIGluIGNhcHR1cmVyIGNvZGUuCistLy8t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0KKy0vLyBj b3JlLmgKKy12b2lkIHB3X2NvcmVfZGVzdHJveShwd19jb3JlICpjb3JlKTsKKy1wd190eXBlICpw d19jb3JlX2dldF90eXBlKHB3X2NvcmUgKmNvcmUpOworLXB3X2NvcmUgKiBwd19jb3JlX25ldyhw d19sb29wICptYWluX2xvb3AsIHB3X3Byb3BlcnRpZXMgKnByb3BzKTsKKy0KKy0vLyBsb29wLmgK Ky12b2lkIHB3X2xvb3BfZGVzdHJveShwd19sb29wICpsb29wKTsKKy1wd19sb29wICogcHdfbG9v cF9uZXcocHdfcHJvcGVydGllcyAqcHJvcGVydGllcyk7CistCistLy8gcGlwZXdpcmUuaAorLXZv aWQgcHdfaW5pdChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2W10pOworLQorLS8vIHByb3BlcnRpZXMu aAorLXB3X3Byb3BlcnRpZXMgKiBwd19wcm9wZXJ0aWVzX25ld19zdHJpbmcoY29uc3QgY2hhciAq YXJncyk7CistCistLy8gcmVtb3RlLmgKKy12b2lkIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIocHdf cmVtb3RlICpyZW1vdGUsIHNwYV9ob29rICpsaXN0ZW5lciwgY29uc3QgcHdfcmVtb3RlX2V2ZW50 cyAqZXZlbnRzLCB2b2lkICpkYXRhKTsKKy1pbnQgcHdfcmVtb3RlX2Nvbm5lY3RfZmQocHdfcmVt b3RlICpyZW1vdGUsIGludCBmZCk7Cistdm9pZCBwd19yZW1vdGVfZGVzdHJveShwd19yZW1vdGUg KnJlbW90ZSk7CistcHdfcmVtb3RlICogcHdfcmVtb3RlX25ldyhwd19jb3JlICpjb3JlLCBwd19w cm9wZXJ0aWVzICpwcm9wZXJ0aWVzLCBzaXplX3QgdXNlcl9kYXRhX3NpemUpOworLQorLS8vIHN0 cmVhbS5oCistdm9pZCBwd19zdHJlYW1fYWRkX2xpc3RlbmVyKHB3X3N0cmVhbSAqc3RyZWFtLCBz cGFfaG9vayAqbGlzdGVuZXIsIGNvbnN0IHB3X3N0cmVhbV9ldmVudHMgKmV2ZW50cywgdm9pZCAq ZGF0YSk7CistaW50IHB3X3N0cmVhbV9jb25uZWN0KHB3X3N0cmVhbSAqc3RyZWFtLCBlbnVtIHB3 X2RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IGNoYXIgKnBvcnRfcGF0aCwgZW51bSBwd19zdHJl YW1fZmxhZ3MgZmxhZ3MsIGNvbnN0IHNwYV9wb2QgKipwYXJhbXMsIHVpbnQzMl90IG5fcGFyYW1z KTsKKy1wd19idWZmZXIgKnB3X3N0cmVhbV9kZXF1ZXVlX2J1ZmZlcihwd19zdHJlYW0gKnN0cmVh bSk7Cistdm9pZCBwd19zdHJlYW1fZGVzdHJveShwd19zdHJlYW0gKnN0cmVhbSk7Cistdm9pZCBw d19zdHJlYW1fZmluaXNoX2Zvcm1hdChwd19zdHJlYW0gKnN0cmVhbSwgaW50IHJlcywgY29uc3Qg c3BhX3BvZCAqKnBhcmFtcywgdWludDMyX3Qgbl9wYXJhbXMpOworLXB3X3N0cmVhbSAqIHB3X3N0 cmVhbV9uZXcocHdfcmVtb3RlICpyZW1vdGUsIGNvbnN0IGNoYXIgKm5hbWUsIHB3X3Byb3BlcnRp ZXMgKnByb3BzKTsKKy1pbnQgcHdfc3RyZWFtX3F1ZXVlX2J1ZmZlcihwd19zdHJlYW0gKnN0cmVh bSwgcHdfYnVmZmVyICpidWZmZXIpOworLWludCBwd19zdHJlYW1fc2V0X2FjdGl2ZShwd19zdHJl YW0gKnN0cmVhbSwgYm9vbCBhY3RpdmUpOworLQorLS8vIHRocmVhZC1sb29wLmgKKy12b2lkIHB3 X3RocmVhZF9sb29wX2Rlc3Ryb3kocHdfdGhyZWFkX2xvb3AgKmxvb3ApOworLXB3X3RocmVhZF9s b29wICogcHdfdGhyZWFkX2xvb3BfbmV3KHB3X2xvb3AgKmxvb3AsIGNvbnN0IGNoYXIgKm5hbWUp OworLWludCBwd190aHJlYWRfbG9vcF9zdGFydChwd190aHJlYWRfbG9vcCAqbG9vcCk7Cistdm9p ZCBwd190aHJlYWRfbG9vcF9zdG9wKHB3X3RocmVhZF9sb29wICpsb29wKTsKK2RpZmYgLS1naXQg YS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGlu dXgvc2NyZWVuX2NhcHR1cmVyX3BpcGV3aXJlLmNjIGIvY2hyb21pdW0vdGhpcmRfcGFydHkvd2Vi cnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L3NjcmVlbl9jYXB0dXJlcl9waXBld2ly ZS5jYworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBmZTY3MjE0MGNjYS4uMDAwMDAw MDAwMDAKKy0tLSBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3Bf Y2FwdHVyZS9saW51eC9zY3JlZW5fY2FwdHVyZXJfcGlwZXdpcmUuY2MKKysrKyAvZGV2L251bGwK K0BAIC0xLDI5ICswLDAgQEAKKy0vKgorLSAqICBDb3B5cmlnaHQgMjAxOCBUaGUgV2ViUlRDIHBy b2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0gKgorLSAqICBVc2Ugb2YgdGhp cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCistICogIHRo YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv dXJjZQorLSAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdo dHMgZ3JhbnQgY2FuIGJlIGZvdW5kCistICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29u dHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKy0gKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhP UlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCistICovCistCistI2luY2x1 ZGUgIm1vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L3NjcmVlbl9jYXB0dXJlcl9waXBld2ly ZS5oIgorLQorLSNpbmNsdWRlIDxtZW1vcnk+CistCistCistbmFtZXNwYWNlIHdlYnJ0YyB7Cist CistU2NyZWVuQ2FwdHVyZXJQaXBlV2lyZTo6U2NyZWVuQ2FwdHVyZXJQaXBlV2lyZSgpCistICAg IDogQmFzZUNhcHR1cmVyUGlwZVdpcmUoQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNhcHR1cmVTb3Vy Y2VUeXBlOjpTY3JlZW4pIHt9CistU2NyZWVuQ2FwdHVyZXJQaXBlV2lyZTo6flNjcmVlbkNhcHR1 cmVyUGlwZVdpcmUoKSB7fQorLQorLS8vIHN0YXRpYworLXN0ZDo6dW5pcXVlX3B0cjxEZXNrdG9w Q2FwdHVyZXI+CistU2NyZWVuQ2FwdHVyZXJQaXBlV2lyZTo6Q3JlYXRlUmF3U2NyZWVuQ2FwdHVy ZXIoCistICAgIGNvbnN0IERlc2t0b3BDYXB0dXJlT3B0aW9ucyYgb3B0aW9ucykgeworLSAgcmV0 dXJuIHN0ZDo6bWFrZV91bmlxdWU8U2NyZWVuQ2FwdHVyZXJQaXBlV2lyZT4oKTsKKy19CistCist fSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworZGlmZiAtLWdpdCBhL2Nocm9taXVtL3RoaXJkX3BhcnR5 L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9zY3JlZW5fY2FwdHVyZXJfcGlw ZXdpcmUuaCBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2Fw dHVyZS9saW51eC9zY3JlZW5fY2FwdHVyZXJfcGlwZXdpcmUuaAorZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCA2NmRjZDY4MGUwNi4uMDAwMDAwMDAwMDAKKy0tLSBhL2Nocm9taXVtL3Ro aXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9zY3JlZW5fY2Fw dHVyZXJfcGlwZXdpcmUuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzMgKzAsMCBAQAorLS8qCist ICogIENvcHlyaWdodCAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRz IFJlc2VydmVkLgorLSAqCistICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKy0gKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCistICogIHRyZWUuIEFuIGFkZGl0 aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKy0g KiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3Jz IG1heQorLSAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRo ZSBzb3VyY2UgdHJlZS4KKy0gKi8KKy0KKy0jaWZuZGVmIE1PRFVMRVNfREVTS1RPUF9DQVBUVVJF X0xJTlVYX1NDUkVFTl9DQVBUVVJFUl9QSVBFV0lSRV9IXworLSNkZWZpbmUgTU9EVUxFU19ERVNL VE9QX0NBUFRVUkVfTElOVVhfU0NSRUVOX0NBUFRVUkVSX1BJUEVXSVJFX0hfCistCistI2luY2x1 ZGUgPG1lbW9yeT4KKy0KKy0jaW5jbHVkZSAibW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgv YmFzZV9jYXB0dXJlcl9waXBld2lyZS5oIgorLQorLW5hbWVzcGFjZSB3ZWJydGMgeworLQorLWNs YXNzIFNjcmVlbkNhcHR1cmVyUGlwZVdpcmUgOiBwdWJsaWMgQmFzZUNhcHR1cmVyUGlwZVdpcmUg eworLSBwdWJsaWM6CistICBTY3JlZW5DYXB0dXJlclBpcGVXaXJlKCk7CistICB+U2NyZWVuQ2Fw dHVyZXJQaXBlV2lyZSgpIG92ZXJyaWRlOworLQorLSAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxE ZXNrdG9wQ2FwdHVyZXI+IENyZWF0ZVJhd1NjcmVlbkNhcHR1cmVyKAorLSAgICAgIGNvbnN0IERl c2t0b3BDYXB0dXJlT3B0aW9ucyYgb3B0aW9ucyk7CistCistICBSVENfRElTQUxMT1dfQ09QWV9B TkRfQVNTSUdOKFNjcmVlbkNhcHR1cmVyUGlwZVdpcmUpOworLX07CistCistfSAgLy8gbmFtZXNw YWNlIHdlYnJ0YworLQorLSNlbmRpZiAgLy8gTU9EVUxFU19ERVNLVE9QX0NBUFRVUkVfTElOVVhf U0NSRUVOX0NBUFRVUkVSX1BJUEVXSVJFX0hfCitkaWZmIC0tZ2l0IGEvY2hyb21pdW0vdGhpcmRf cGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L3dpbmRvd19jYXB0dXJl cl9waXBld2lyZS5jYyBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9saW51eC93aW5kb3dfY2FwdHVyZXJfcGlwZXdpcmUuY2MKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggYjQ1NTkxNTZkY2UuLjAwMDAwMDAwMDAwCistLS0gYS9jaHJv bWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvd2lu ZG93X2NhcHR1cmVyX3BpcGV3aXJlLmNjCisrKysgL2Rldi9udWxsCitAQCAtMSwyOSArMCwwIEBA CistLyoKKy0gKiAgQ29weXJpZ2h0IDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCistICoKKy0gKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorLSAqICB0aGF0IGNhbiBiZSBmb3VuZCBp biB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKy0gKiAgdHJlZS4g QW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBm b3VuZAorLSAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0 IGF1dGhvcnMgbWF5CistICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJv b3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorLSAqLworLQorLSNpbmNsdWRlICJtb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9saW51eC93aW5kb3dfY2FwdHVyZXJfcGlwZXdpcmUuaCIKKy0KKy0jaW5jbHVk ZSA8bWVtb3J5PgorLQorLQorLW5hbWVzcGFjZSB3ZWJydGMgeworLQorLVdpbmRvd0NhcHR1cmVy UGlwZVdpcmU6OldpbmRvd0NhcHR1cmVyUGlwZVdpcmUoKQorLSAgICA6IEJhc2VDYXB0dXJlclBp cGVXaXJlKEJhc2VDYXB0dXJlclBpcGVXaXJlOjpDYXB0dXJlU291cmNlVHlwZTo6V2luZG93KSB7 fQorLVdpbmRvd0NhcHR1cmVyUGlwZVdpcmU6On5XaW5kb3dDYXB0dXJlclBpcGVXaXJlKCkge30K Ky0KKy0vLyBzdGF0aWMKKy1zdGQ6OnVuaXF1ZV9wdHI8RGVza3RvcENhcHR1cmVyPgorLVdpbmRv d0NhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd1dpbmRvd0NhcHR1cmVyKAorLSAgICBjb25zdCBE ZXNrdG9wQ2FwdHVyZU9wdGlvbnMmIG9wdGlvbnMpIHsKKy0gIHJldHVybiBzdGQ6Om1ha2VfdW5p cXVlPFdpbmRvd0NhcHR1cmVyUGlwZVdpcmU+KCk7CistfQorLQorLX0gIC8vIG5hbWVzcGFjZSB3 ZWJydGMKK2RpZmYgLS1naXQgYS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9k ZXNrdG9wX2NhcHR1cmUvbGludXgvd2luZG93X2NhcHR1cmVyX3BpcGV3aXJlLmggYi9jaHJvbWl1 bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvd2luZG93 X2NhcHR1cmVyX3BpcGV3aXJlLmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggN2Yx ODRlZjI5OTkuLjAwMDAwMDAwMDAwCistLS0gYS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMv bW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvd2luZG93X2NhcHR1cmVyX3BpcGV3aXJlLmgK KysrKyAvZGV2L251bGwKK0BAIC0xLDMzICswLDAgQEAKKy0vKgorLSAqICBDb3B5cmlnaHQgMjAx OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy0gKgor LSAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlCistICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl IHJvb3Qgb2YgdGhlIHNvdXJjZQorLSAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVh bCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCistICogIGluIHRoZSBmaWxlIFBB VEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKy0gKiAgYmUgZm91 bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCist ICovCistCistI2lmbmRlZiBNT0RVTEVTX0RFU0tUT1BfQ0FQVFVSRV9MSU5VWF9XSU5ET1dfQ0FQ VFVSRVJfUElQRVdJUkVfSF8KKy0jZGVmaW5lIE1PRFVMRVNfREVTS1RPUF9DQVBUVVJFX0xJTlVY X1dJTkRPV19DQVBUVVJFUl9QSVBFV0lSRV9IXworLQorLSNpbmNsdWRlIDxtZW1vcnk+CistCist I2luY2x1ZGUgIm1vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jhc2VfY2FwdHVyZXJfcGlw ZXdpcmUuaCIKKy0KKy1uYW1lc3BhY2Ugd2VicnRjIHsKKy0KKy1jbGFzcyBXaW5kb3dDYXB0dXJl clBpcGVXaXJlIDogcHVibGljIEJhc2VDYXB0dXJlclBpcGVXaXJlIHsKKy0gcHVibGljOgorLSAg V2luZG93Q2FwdHVyZXJQaXBlV2lyZSgpOworLSAgfldpbmRvd0NhcHR1cmVyUGlwZVdpcmUoKSBv dmVycmlkZTsKKy0KKy0gIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8RGVza3RvcENhcHR1cmVyPiBD cmVhdGVSYXdXaW5kb3dDYXB0dXJlcigKKy0gICAgICBjb25zdCBEZXNrdG9wQ2FwdHVyZU9wdGlv bnMmIG9wdGlvbnMpOworLQorLSAgUlRDX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihXaW5kb3dD YXB0dXJlclBpcGVXaXJlKTsKKy19OworLQorLX0gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKy0KKy0j ZW5kaWYgIC8vIE1PRFVMRVNfREVTS1RPUF9DQVBUVVJFX0xJTlVYX1dJTkRPV19DQVBUVVJFUl9Q SVBFV0lSRV9IXworZGlmZiAtLWdpdCBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1 bGVzL2Rlc2t0b3BfY2FwdHVyZS9zY3JlZW5fY2FwdHVyZXJfbGludXguY2MgYi9jaHJvbWl1bS90 aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvc2NyZWVuX2NhcHR1cmVy X2xpbnV4LmNjCitpbmRleCA4MmRiYWU0ODEzNy4uZWQ0OGI3ZDZkNTkgMTAwNjQ0CistLS0gYS9j aHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvc2NyZWVu X2NhcHR1cmVyX2xpbnV4LmNjCisrKysgYi9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9k dWxlcy9kZXNrdG9wX2NhcHR1cmUvc2NyZWVuX2NhcHR1cmVyX2xpbnV4LmNjCitAQCAtMTQsNyAr MTQsNyBAQAorICNpbmNsdWRlICJtb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2NhcHR1 cmVyLmgiCisgCisgI2lmIGRlZmluZWQoV0VCUlRDX1VTRV9QSVBFV0lSRSkKKy0jaW5jbHVkZSAi bW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvc2NyZWVuX2NhcHR1cmVyX3BpcGV3aXJlLmgi CisrI2luY2x1ZGUgIm1vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jhc2VfY2FwdHVyZXJf cGlwZXdpcmUuaCIKKyAjZW5kaWYgIC8vIGRlZmluZWQoV0VCUlRDX1VTRV9QSVBFV0lSRSkKKyAK KyAjaWYgZGVmaW5lZChXRUJSVENfVVNFX1gxMSkKK0BAIC0yOCw3ICsyOCw3IEBAIHN0ZDo6dW5p cXVlX3B0cjxEZXNrdG9wQ2FwdHVyZXI+IERlc2t0b3BDYXB0dXJlcjo6Q3JlYXRlUmF3U2NyZWVu Q2FwdHVyZXIoCisgICAgIGNvbnN0IERlc2t0b3BDYXB0dXJlT3B0aW9ucyYgb3B0aW9ucykgewor ICNpZiBkZWZpbmVkKFdFQlJUQ19VU0VfUElQRVdJUkUpCisgICBpZiAob3B0aW9ucy5hbGxvd19w aXBld2lyZSgpICYmIERlc2t0b3BDYXB0dXJlcjo6SXNSdW5uaW5nVW5kZXJXYXlsYW5kKCkpIHsK Ky0gICAgcmV0dXJuIFNjcmVlbkNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd1NjcmVlbkNhcHR1 cmVyKG9wdGlvbnMpOworKyAgICByZXR1cm4gQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJh d0NhcHR1cmVyKG9wdGlvbnMpOworICAgfQorICNlbmRpZiAgLy8gZGVmaW5lZChXRUJSVENfVVNF X1BJUEVXSVJFKQorIAorZGlmZiAtLWdpdCBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9t b2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS93aW5kb3dfY2FwdHVyZXJfbGludXguY2MgYi9jaHJvbWl1 bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvd2luZG93X2NhcHR1 cmVyX2xpbnV4LmNjCitpbmRleCA0MWRiZjgzNmIwMy4uMmIxNDJhZTNiOTIgMTAwNjQ0CistLS0g YS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvd2lu ZG93X2NhcHR1cmVyX2xpbnV4LmNjCisrKysgYi9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMv bW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvd2luZG93X2NhcHR1cmVyX2xpbnV4LmNjCitAQCAtMTQs NyArMTQsNyBAQAorICNpbmNsdWRlICJtb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kZXNrdG9wX2Nh cHR1cmVyLmgiCisgCisgI2lmIGRlZmluZWQoV0VCUlRDX1VTRV9QSVBFV0lSRSkKKy0jaW5jbHVk ZSAibW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvbGludXgvd2luZG93X2NhcHR1cmVyX3BpcGV3aXJl LmgiCisrI2luY2x1ZGUgIm1vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L2Jhc2VfY2FwdHVy ZXJfcGlwZXdpcmUuaCIKKyAjZW5kaWYgIC8vIGRlZmluZWQoV0VCUlRDX1VTRV9QSVBFV0lSRSkK KyAKKyAjaWYgZGVmaW5lZChXRUJSVENfVVNFX1gxMSkKK0BAIC0yOCw3ICsyOCw3IEBAIHN0ZDo6 dW5pcXVlX3B0cjxEZXNrdG9wQ2FwdHVyZXI+IERlc2t0b3BDYXB0dXJlcjo6Q3JlYXRlUmF3V2lu ZG93Q2FwdHVyZXIoCisgICAgIGNvbnN0IERlc2t0b3BDYXB0dXJlT3B0aW9ucyYgb3B0aW9ucykg eworICNpZiBkZWZpbmVkKFdFQlJUQ19VU0VfUElQRVdJUkUpCisgICBpZiAob3B0aW9ucy5hbGxv d19waXBld2lyZSgpICYmIERlc2t0b3BDYXB0dXJlcjo6SXNSdW5uaW5nVW5kZXJXYXlsYW5kKCkp IHsKKy0gICAgcmV0dXJuIFdpbmRvd0NhcHR1cmVyUGlwZVdpcmU6OkNyZWF0ZVJhd1dpbmRvd0Nh cHR1cmVyKG9wdGlvbnMpOworKyAgICByZXR1cm4gQmFzZUNhcHR1cmVyUGlwZVdpcmU6OkNyZWF0 ZVJhd0NhcHR1cmVyKG9wdGlvbnMpOworICAgfQorICNlbmRpZiAgLy8gZGVmaW5lZChXRUJSVENf VVNFX1BJUEVXSVJFKQorIAorZGlmZiAtLWdpdCBhL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0 Yy93ZWJydGMuZ25pIGIvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL3dlYnJ0Yy5nbmkKK2lu ZGV4IGNhOGFjZGJmMjU5Li41MDVjOTc1Y2VjZSAxMDA2NDQKKy0tLSBhL2Nocm9taXVtL3RoaXJk X3BhcnR5L3dlYnJ0Yy93ZWJydGMuZ25pCisrKysgYi9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJy dGMvd2VicnRjLmduaQorQEAgLTExNyw2ICsxMTcsMTAgQEAgZGVjbGFyZV9hcmdzKCkgeworICAg IyBTZXQgdGhpcyB0byBsaW5rIFBpcGVXaXJlIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhl IGRsb3Blbi4KKyAgIHJ0Y19saW5rX3BpcGV3aXJlID0gZmFsc2UKKyAKKysgICMgU2V0IHRoaXMg dG8gdXNlIGNlcnRhaW4gUGlwZVdpcmUgdmVyc2lvbgorKyAgIyBDdXJyZW50bHkgd2Ugc3VwcG9y dCBQaXBlV2lyZSAwLjIgKGRlZmF1bHQpIGFuZCBQaXBlV2lyZSAwLjMKKysgIHJ0Y19waXBld2ly ZV92ZXJzaW9uID0gIjAuMyIKKysKKyAgICMgRW5hYmxlIHRvIHVzZSB0aGUgTW96aWxsYSBpbnRl cm5hbCBzZXR0aW5ncy4KKyAgIGJ1aWxkX3dpdGhfbW96aWxsYSA9IGZhbHNlCisgCitkaWZmIC0t Z2l0IGEvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJl L2xpbnV4L3BpcGV3aXJlMDIuc2lncyBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1 bGVzL2Rlc2t0b3BfY2FwdHVyZS9saW51eC9waXBld2lyZTAyLnNpZ3MKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNWFjM2QxZDIyYjgKKy0tLSAvZGV2L251bGwKKysr KyBiL2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9s aW51eC9waXBld2lyZTAyLnNpZ3MKK0BAIC0wLDAgKzEsNDcgQEAKKysvLyBDb3B5cmlnaHQgMjAx OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysvLy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKy8vIEZ1bmN0aW9u cyBmcm9tIFBpcGVXaXJlIHVzZWQgaW4gY2FwdHVyZXIgY29kZS4KKysvLy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKy8vIGNvcmUuaAorK3ZvaWQg cHdfY29yZV9kZXN0cm95KHB3X2NvcmUgKmNvcmUpOworK3B3X3R5cGUgKnB3X2NvcmVfZ2V0X3R5 cGUocHdfY29yZSAqY29yZSk7CisrcHdfY29yZSAqIHB3X2NvcmVfbmV3KHB3X2xvb3AgKm1haW5f bG9vcCwgcHdfcHJvcGVydGllcyAqcHJvcHMpOworKworKy8vIGxvb3AuaAorK3ZvaWQgcHdfbG9v cF9kZXN0cm95KHB3X2xvb3AgKmxvb3ApOworK3B3X2xvb3AgKiBwd19sb29wX25ldyhwd19wcm9w ZXJ0aWVzICpwcm9wZXJ0aWVzKTsKKysKKysvLyBwaXBld2lyZS5oCisrdm9pZCBwd19pbml0KGlu dCAqYXJnYywgY2hhciAqKmFyZ3ZbXSk7CisrCisrLy8gcHJvcGVydGllcy5oCisrcHdfcHJvcGVy dGllcyAqIHB3X3Byb3BlcnRpZXNfbmV3X3N0cmluZyhjb25zdCBjaGFyICphcmdzKTsKKysKKysv LyByZW1vdGUuaAorK3ZvaWQgcHdfcmVtb3RlX2FkZF9saXN0ZW5lcihwd19yZW1vdGUgKnJlbW90 ZSwgc3BhX2hvb2sgKmxpc3RlbmVyLCBjb25zdCBwd19yZW1vdGVfZXZlbnRzICpldmVudHMsIHZv aWQgKmRhdGEpOworK2ludCBwd19yZW1vdGVfY29ubmVjdF9mZChwd19yZW1vdGUgKnJlbW90ZSwg aW50IGZkKTsKKyt2b2lkIHB3X3JlbW90ZV9kZXN0cm95KHB3X3JlbW90ZSAqcmVtb3RlKTsKKytw d19yZW1vdGUgKiBwd19yZW1vdGVfbmV3KHB3X2NvcmUgKmNvcmUsIHB3X3Byb3BlcnRpZXMgKnBy b3BlcnRpZXMsIHNpemVfdCB1c2VyX2RhdGFfc2l6ZSk7CisrZW51bSBwd19yZW1vdGVfc3RhdGUg cHdfcmVtb3RlX2dldF9zdGF0ZShwd19yZW1vdGUgKnJlbW90ZSwgY29uc3QgY2hhciAqKmVycm9y KTsKKysKKysvLyBzdHJlYW0uaAorK3ZvaWQgcHdfc3RyZWFtX2FkZF9saXN0ZW5lcihwd19zdHJl YW0gKnN0cmVhbSwgc3BhX2hvb2sgKmxpc3RlbmVyLCBjb25zdCBwd19zdHJlYW1fZXZlbnRzICpl dmVudHMsIHZvaWQgKmRhdGEpOworK2ludCBwd19zdHJlYW1fY29ubmVjdChwd19zdHJlYW0gKnN0 cmVhbSwgZW51bSBwd19kaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBjaGFyICpwb3J0X3BhdGgs IGVudW0gcHdfc3RyZWFtX2ZsYWdzIGZsYWdzLCBjb25zdCBzcGFfcG9kICoqcGFyYW1zLCB1aW50 MzJfdCBuX3BhcmFtcyk7CisrcHdfYnVmZmVyICpwd19zdHJlYW1fZGVxdWV1ZV9idWZmZXIocHdf c3RyZWFtICpzdHJlYW0pOworK3ZvaWQgcHdfc3RyZWFtX2Rlc3Ryb3kocHdfc3RyZWFtICpzdHJl YW0pOworK3ZvaWQgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQocHdfc3RyZWFtICpzdHJlYW0sIGlu dCByZXMsIGNvbnN0IHNwYV9wb2QgKipwYXJhbXMsIHVpbnQzMl90IG5fcGFyYW1zKTsKKytwd19z dHJlYW0gKiBwd19zdHJlYW1fbmV3KHB3X3JlbW90ZSAqcmVtb3RlLCBjb25zdCBjaGFyICpuYW1l LCBwd19wcm9wZXJ0aWVzICpwcm9wcyk7CisraW50IHB3X3N0cmVhbV9xdWV1ZV9idWZmZXIocHdf c3RyZWFtICpzdHJlYW0sIHB3X2J1ZmZlciAqYnVmZmVyKTsKKytpbnQgcHdfc3RyZWFtX3NldF9h Y3RpdmUocHdfc3RyZWFtICpzdHJlYW0sIGJvb2wgYWN0aXZlKTsKKysKKysvLyB0aHJlYWQtbG9v cC5oCisrdm9pZCBwd190aHJlYWRfbG9vcF9kZXN0cm95KHB3X3RocmVhZF9sb29wICpsb29wKTsK Kytwd190aHJlYWRfbG9vcCAqIHB3X3RocmVhZF9sb29wX25ldyhwd19sb29wICpsb29wLCBjb25z dCBjaGFyICpuYW1lKTsKKytpbnQgcHdfdGhyZWFkX2xvb3Bfc3RhcnQocHdfdGhyZWFkX2xvb3Ag Kmxvb3ApOworK3ZvaWQgcHdfdGhyZWFkX2xvb3Bfc3RvcChwd190aHJlYWRfbG9vcCAqbG9vcCk7 Cisrdm9pZCBwd190aHJlYWRfbG9vcF9sb2NrKHN0cnVjdCBwd190aHJlYWRfbG9vcCAqbG9vcCk7 Cisrdm9pZCBwd190aHJlYWRfbG9vcF91bmxvY2soc3RydWN0IHB3X3RocmVhZF9sb29wICpsb29w KTsKK2RpZmYgLS1naXQgYS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNr dG9wX2NhcHR1cmUvbGludXgvcGlwZXdpcmUwMy5zaWdzIGIvY2hyb21pdW0vdGhpcmRfcGFydHkv d2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2xpbnV4L3BpcGV3aXJlMDMuc2lncworbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi43OGQyNDFmNDBjNgorLS0tIC9k ZXYvbnVsbAorKysrIGIvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3Rv cF9jYXB0dXJlL2xpbnV4L3BpcGV3aXJlMDMuc2lncworQEAgLTAsMCArMSw0NiBAQAorKy8vIENv cHlyaWdodCAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0 eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor KworKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr Ly8gRnVuY3Rpb25zIGZyb20gUGlwZVdpcmUgdXNlZCBpbiBjYXB0dXJlciBjb2RlLgorKy8vLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrLy8gY29y ZS5oCisraW50IHB3X2NvcmVfZGlzY29ubmVjdChwd19jb3JlICpjb3JlKTsKKysKKysvLyBsb29w LmgKKyt2b2lkIHB3X2xvb3BfZGVzdHJveShwd19sb29wICpsb29wKTsKKytwd19sb29wICogcHdf bG9vcF9uZXcoY29uc3Qgc3BhX2RpY3QgKnByb3BzKTsKKysKKysKKysvLyBwaXBld2lyZS5oCisr dm9pZCBwd19pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3ZbXSk7CisrCisrLy8gcHJvcGVydGll cy5oCisrcHdfcHJvcGVydGllcyAqIHB3X3Byb3BlcnRpZXNfbmV3X3N0cmluZyhjb25zdCBjaGFy ICphcmdzKTsKKysKKysvLyBzdHJlYW0uaAorK3ZvaWQgcHdfc3RyZWFtX2FkZF9saXN0ZW5lcihw d19zdHJlYW0gKnN0cmVhbSwgc3BhX2hvb2sgKmxpc3RlbmVyLCBjb25zdCBwd19zdHJlYW1fZXZl bnRzICpldmVudHMsIHZvaWQgKmRhdGEpOworK2ludCBwd19zdHJlYW1fY29ubmVjdChwd19zdHJl YW0gKnN0cmVhbSwgZW51bSBwd19kaXJlY3Rpb24gZGlyZWN0aW9uLCB1aW50MzJfdCB0YXJnZXRf aWQsIGVudW0gcHdfc3RyZWFtX2ZsYWdzIGZsYWdzLCBjb25zdCBzcGFfcG9kICoqcGFyYW1zLCB1 aW50MzJfdCBuX3BhcmFtcyk7CisrcHdfYnVmZmVyICpwd19zdHJlYW1fZGVxdWV1ZV9idWZmZXIo cHdfc3RyZWFtICpzdHJlYW0pOworK3ZvaWQgcHdfc3RyZWFtX2Rlc3Ryb3kocHdfc3RyZWFtICpz dHJlYW0pOworK3B3X3N0cmVhbSAqIHB3X3N0cmVhbV9uZXcocHdfY29yZSAqY29yZSwgY29uc3Qg Y2hhciAqbmFtZSwgcHdfcHJvcGVydGllcyAqcHJvcHMpOworK2ludCBwd19zdHJlYW1fcXVldWVf YnVmZmVyKHB3X3N0cmVhbSAqc3RyZWFtLCBwd19idWZmZXIgKmJ1ZmZlcik7CisraW50IHB3X3N0 cmVhbV9zZXRfYWN0aXZlKHB3X3N0cmVhbSAqc3RyZWFtLCBib29sIGFjdGl2ZSk7CisraW50IHB3 X3N0cmVhbV91cGRhdGVfcGFyYW1zKHB3X3N0cmVhbSAqc3RyZWFtLCBjb25zdCBzcGFfcG9kICoq cGFyYW1zLCB1aW50MzJfdCBuX3BhcmFtcyk7CisrCisrLy8gdGhyZWFkLWxvb3AuaAorK3ZvaWQg cHdfdGhyZWFkX2xvb3BfZGVzdHJveShwd190aHJlYWRfbG9vcCAqbG9vcCk7CisrcHdfdGhyZWFk X2xvb3AgKiBwd190aHJlYWRfbG9vcF9uZXcoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3BhX2Rp Y3QgKnByb3BzKTsKKytpbnQgcHdfdGhyZWFkX2xvb3Bfc3RhcnQocHdfdGhyZWFkX2xvb3AgKmxv b3ApOworK3ZvaWQgcHdfdGhyZWFkX2xvb3Bfc3RvcChwd190aHJlYWRfbG9vcCAqbG9vcCk7Cisr dm9pZCBwd190aHJlYWRfbG9vcF9sb2NrKHB3X3RocmVhZF9sb29wICpsb29wKTsKKyt2b2lkIHB3 X3RocmVhZF9sb29wX3VubG9jayhwd190aHJlYWRfbG9vcCAqbG9vcCk7CisrcHdfbG9vcCAqIHB3 X3RocmVhZF9sb29wX2dldF9sb29wKHB3X3RocmVhZF9sb29wICpsb29wKTsKKysKKysKKysvLyBj b250ZXh0LmgKKyt2b2lkIHB3X2NvbnRleHRfZGVzdHJveShwd19jb250ZXh0ICpjb250ZXh0KTsK Kytwd19jb250ZXh0ICpwd19jb250ZXh0X25ldyhwd19sb29wICptYWluX2xvb3AsIHB3X3Byb3Bl cnRpZXMgKnByb3BzLCBzaXplX3QgdXNlcl9kYXRhX3NpemUpOworK3B3X2NvcmUgKiBwd19jb250 ZXh0X2Nvbm5lY3QocHdfY29udGV4dCAqY29udGV4dCwgcHdfcHJvcGVydGllcyAqcHJvcGVydGll cywgc2l6ZV90IHVzZXJfZGF0YV9zaXplKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1LXdlYmVu Z2luZS9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaC5hcmdzIGIvc3JjcGtncy9xdDUtd2ViZW5n aW5lL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoLmFyZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40ZmFjMTYzZjhkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2guYXJncwpAQCAtMCww ICsxIEBACistTnAxIC1kIHNyYy8zcmRwYXJ0eQoKRnJvbSBmMTIyNjRhY2JkMGJkYmM5ZGIxMDE1 Yjk2MmNkMGU5MjQ2NjVhYWM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFdlZCwgMTIgT2N0IDIwMjIgMTc6Mjc6MDIgKzAyMDAK U3ViamVjdDogW1BBVENIIDMvM10gbGlicGlwZXdpcmUwLjI6IHJlbW92ZSBwYWNrYWdlCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICB8ICAxIC0KIHNyY3BrZ3MvbGlicGlw ZXdpcmUwLjItZGV2ZWwgICAgICB8ICAxIC0KIHNyY3BrZ3MvbGlicGlwZXdpcmUwLjIvdGVtcGxh dGUgICB8IDM2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvcmVtb3Zl ZC1wYWNrYWdlcy90ZW1wbGF0ZSB8ICA0ICsrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAzOSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYnBp cGV3aXJlMC4yLWRldmVsCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJwaXBld2lyZTAu Mi90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmlu ZGV4IGZlNzBhNTc2NWY1MC4uMmM1NzlkN2I1YTNlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMyMTcsNyArMzIxNyw2IEBAIGxpYmFyY2FuX3NobWlm X3NlcnZlci5zby4wLjE1IGFyY2FuLTAuNi4xLjFfMQogbGliYXJjYW5fdHVpLnNvLjAuMTUgYXJj YW4tMC42LjEuMV8xCiBsaWJhcmNhbl9hMTIuc28uMC4xIGFyY2FuLTAuNi4xLjFfMQogbGlibHdp cHY2LnNvLjIgbHdpcHY2LTEuNWFfMQotbGlicGlwZXdpcmUtMC4yLnNvLjEgbGlicGlwZXdpcmUw LjItMC4yLjdfMQogbGlicGlwZXdpcmUtMC4zLnNvLjAgbGlicGlwZXdpcmUtMC4zLjZfMQogbGli dm9say5zby4yLjUgdm9say0yLjUuMF8xCiBsaWJnbnVyYWRpby1ydW50aW1lLnNvLjMuMTAuMyBn bnVyYWRpby0zLjEwLjMuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnBpcGV3aXJlMC4yLWRl dmVsIGIvc3JjcGtncy9saWJwaXBld2lyZTAuMi1kZXZlbApkZWxldGVkIGZpbGUgbW9kZSAxMjAw MDAKaW5kZXggNDU2NjE2Zjg0ZWMwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9saWJwaXBl d2lyZTAuMi1kZXZlbAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWxpYnBpcGV3aXJlMC4y ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJwaXBl d2lyZTAuMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlicGlwZXdpcmUwLjIvdGVtcGxhdGUKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MzdhZGI0YjM3OS4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvbGlicGlwZXdpcmUwLjIvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwzNiAr MCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJwaXBld2lyZTAuMicKLXBrZ25hbWU9bGli cGlwZXdpcmUwLjIKLXZlcnNpb249MC4yLjcKLXJldmlzaW9uPTIKLXdya3NyYz1waXBld2lyZS0k e3ZlcnNpb259Ci1idWlsZF9zdHlsZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1EZ3N0cmVhbWVy PWRpc2FibGVkIC1EZG9jcz1mYWxzZSAtRHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBhbHNhLWxpYi1kZXZlbCBldWRl di1saWJ1ZGV2LWRldmVsIgotc2hvcnRfZGVzYz0iU2VydmVyIGFuZCB1c2VyIHNwYWNlIEFQSSB0 byBkZWFsIHdpdGggbXVsdGltZWRpYSBwaXBlbGluZXMgKHYwLjIpIgotbWFpbnRhaW5lcj0iQXJ0 dXIgU2luaWxhIDxvcGVuc291cmNlQGxvZ2FyaXRobXVzLmRldj4iCi1saWNlbnNlPSJNSVQiCi1o b21lcGFnZT0iaHR0cHM6Ly9waXBld2lyZS5vcmcvIgotY2hhbmdlbG9nPSJodHRwczovL2dpdGxh Yi5mcmVlZGVza3RvcC5vcmcvcGlwZXdpcmUvcGlwZXdpcmUvLS9yYXcvbWFzdGVyL05FV1MiCi1k aXN0ZmlsZXM9Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9waXBld2lyZS9waXBld2ly ZS8tL2FyY2hpdmUvJHt2ZXJzaW9ufS9waXBld2lyZS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNr c3VtPWJmYWEwZjZhZTZjMDc5MWUyZTBiNTkyMzRkMzk5NzUzYmYyNGYxYjMzZGJmNTg3NjgyMzYz YTg0NjNkZDhkZjEKLQotaWYgWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KLQlt YWtlZGVwZW5kcys9IiBsaWJhdG9taWMtZGV2ZWwiCi0JTERGTEFHUys9IiAtbGF0b21pYyIKLWZp Ci0KLXBvc3RfaW5zdGFsbCgpIHsKLQlybSAtciAke0RFU1RESVJ9L3tldGMsdXNyL2Jpbn0KLQl2 bGljZW5zZSBMSUNFTlNFCi19Ci0KLWxpYnBpcGV3aXJlMC4yLWRldmVsX3BhY2thZ2UoKSB7Ci0J ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVz Yys9IiAtIHBpcGV3aXJlIGFuZCBsaWJzcGEgZGV2ZWxvcG1lbnQgZmlsZXMiCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlCi0JCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCi0J CXZtb3ZlIHVzci9saWIvbGlicGlwZXdpcmUtMC4yLnNvCi0JfQotfQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2Vz L3RlbXBsYXRlCmluZGV4IDYwNjViNWU4ZDdiYS4uNTAzMmYzYTY3NGQxIDEwMDY0NAotLS0gYS9z cmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZW1vdmVkLXBh Y2thZ2VzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncmVt b3ZlZC1wYWNrYWdlcycKIHBrZ25hbWU9cmVtb3ZlZC1wYWNrYWdlcwogdmVyc2lvbj0wLjEKLXJl dmlzaW9uPTc0CityZXZpc2lvbj03NQogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRfZGVzYz0iVW5p bnN0YWxscyBwYWNrYWdlcyByZW1vdmVkIGZyb20gcmVwb3NpdG9yeSIKIG1haW50YWluZXI9IlBp b3RyIFfDs2pjaWsgPGNob2NpbWllckB0bGVuLnBsPiIKQEAgLTI2MCw2ICsyNjAsOCBAQCByZXBs YWNlcz0iCiAgbGlibXBkPD0xMS44LjE3XzMKICBsaWJvcGVuY3YtcHl0aG9uPD0zLjQuMTVfMQog IGxpYm9wZW5jdjQtcHl0aG9uPD00LjUuM18yCisgbGlicGlwZXdpcmUwLjI8PTAuMi43XzEKKyBs aWJwaXBld2lyZTAuMi1kZXZlbDw9MC4yLjdfMQogIGxpYnBuZzEyPD0xLjIuNTlfMQogIGxpYnB5 c2lkZS1weXRob24zPD01LjE1LjBfMgogIGxpYnFtYXRyaXhjbGllbnQtZGV2ZWw8PTAuNS4zLjJf MQo= --===============4762362549236311156==--