From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 21612 invoked from network); 8 Jun 2022 01:20:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 8 Jun 2022 01:20:45 -0000 Content-Type: multipart/mixed; boundary="===============9203997984090032047==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm14?= To: ml@inbox.vuxu.org From: prez Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 08 Jun 2022 03:20:45 +0200 List-Id: Message-ID: <20220608012045.PtbH-sNs_Snjs9Bk8jSOsLTMXYTXaRW1to9Zgthn-5g@z> GitHub notification mails are now in MIME to allow UTF8. --===============9203997984090032047== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHJleiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcHJlei92 b2lkLXBhY2thZ2VzIGxsdm0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM2OTYyCgpMbHZtMTQKU3VwZXJzZWRlcyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjksIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDgwMCAtIHRoYW5rIHlvdSBAbW90b3J0byBhbmQg QERCTG91aXMuDQoNClVwZGF0ZWQgcGF0Y2hlcywgcGluZyBAcTY2IC4NCg0KW2NpIHNraXBdCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMzY5NjIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============9203997984090032047== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm-36962.patch" RnJvbSAwNzY5MzcxYmQyOTJjYTEzMmJiMzU3ZDEyMmUyZDQyNDI1MzJiY2ZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yM10gTmV3IHBhY2thZ2U6IGxsdm0xNC0xNC4wLjMKCi0tLQogY29tbW9uL3NobGlicyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6 ZXIgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1l eHRyYSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmxsdm0xNCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVz LnBhdGNoICB8IDExMCArKysrKwogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1w YXRoLnBhdGNoIHwgIDEzICsKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYy LnBhdGNoICB8ICA0OCArKwogLi4uL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBh dGNoICAgIHwgIDM1ICsrCiAuLi4vcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wu cGF0Y2ggfCAgNjIgKysrCiBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNo ICAgICAgfCAgMjYgKysKIHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaCAg ICAgICB8ICAyMiArCiAuLi4vbGx2bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2ggfCAgMTEgKwogc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggICAg IHwgIDI1ICsrCiBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaCAgICAgICAg fCAgMzEgKysKIHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaCAgICB8 ICA1NyArKysKIC4uLi9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2ggICB8 ICAzMCArKwogLi4uL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCAgICAgIHwg IDExICsKIC4uLi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCAgICAgICB8ICAx OCArCiAuLi4vbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaCAgfCAgMzYg KysKIC4uLi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCAgICB8ICAyNSAr Kwogc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgNDI0ICsr KysrKysrKysrKysrKysrKwogc3JjcGtncy9sbHZtMTQvdXBkYXRlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAzICsKIDM3IGZpbGVzIGNoYW5nZWQsIDEwMTggaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJsbHZtMTQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9j bGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNo YXJlZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9sbGRiLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRj aGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJy aWRlLW9wdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xNC91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGli cwppbmRleCBlMDQwMzdhOWYyZjAuLjc2NThjMWQyNTMxZSAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzMsMTEgKzk3MywxMiBAQCBsaWJ1Y2hhcmRl dC5zby4wIHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtz b3VyY2V2aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVz ZS5zby4yIGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJj bGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5n LWNwcC0xMi4wLjBfMQorbGlibGxkYi5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJjbGFuZy5zby4x NCBsaWJjbGFuZy0xNC4wLjNfMQorbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQogbGliaXNv ZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8x CiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKQEAgLTQxNjUsMyArNDE2NiwxMiBAQCBs aWJUTVZBLnNvIHJvb3QtNi4yNC4wNl8xCiBsaWJNYXRoQ29yZS5zbyByb290LTYuMjQuMDZfMQog bGlibG93ZG93bi5zbyBsb3dkb3duLTAuMTEuMl8xCiBsaWJqYXlsaW5rLnNvLjAgbGliamF5bGlu ay0wLjIuMF8xCitsaWJvbXAuc28gbGlib21wLTE0LjAuM18xCitsaWJvbXB0YXJnZXQucnRsLmFt ZGdwdS5zbyBsaWJvbXAtMTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwuY3VkYS5zbyBsaWJvbXAt MTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwueDg2XzY0LnNvIGxpYm9tcC0xNC4wLjNfMQorbGli YXJjaGVyLnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0LnNvIGxpYm9tcC0xNC4wLjNf MQorbGlibGxkYkludGVsRmVhdHVyZXMuc28uMTQgbGxkYi0xNC4wLjNfMQorbGliTFRPLnNvLjE0 IGxsdm0xNC0xNC4wLjNfMQorbGliUmVtYXJrcy5zby4xNCBsbHZtMTQtMTQuMC4zXzEKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4u MWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nCisrKyBiL3NyY3BrZ3MvY2xh bmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0x NApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmct YW5hbHl6ZXIgYi9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0 MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCisrKyBiL3NyY3Br Z3MvY2xhbmctYW5hbHl6ZXIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEgYi9zcmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCmlu ZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5n LXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmcgYi9zcmNwa2dzL2xp YmNsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNw a2dzL2xpYmNsYW5nCisrKyBiL3NyY3BrZ3MvbGliY2xhbmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmctY3BwIGIvc3JjcGtncy9saWJjbGFu Zy1jcHAKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3Br Z3MvbGliY2xhbmctY3BwCisrKyBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCkBAIC0xICsxIEBACi1s bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eCBiL3NyY3BrZ3MvbGliY3h4 CmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xp YmN4eAorKysgYi9zcmNwa2dzL2xpYmN4eApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJjeHgtZGV2ZWwgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbAppbmRl eCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHgt ZGV2ZWwKKysrIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpIGIvc3JjcGtncy9saWJjeHhhYmkKaW5k ZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4 YWJpCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4YWJpLWRl dmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dz L2xpYmN4eGFiaS1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbApAQCAtMSArMSBA QAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZtMTQgYi9zcmNwa2dz L2xpYmxsdm0xNApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjFkNDJl ZDc2MzJhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTE0CkBAIC0wLDAgKzEg QEAKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGlib21wIGIvc3JjcGtncy9saWJvbXAKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMy YTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wCisrKyBiL3NyY3BrZ3MvbGlib21wCkBAIC0x ICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9tcC1kZXZlbCBi L3NyY3BrZ3MvbGlib21wLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEy MDAwMAotLS0gYS9zcmNwa2dzL2xpYm9tcC1kZXZlbAorKysgYi9zcmNwa2dzL2xpYm9tcC1kZXZl bApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGQgYi9z cmNwa2dzL2xsZAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEv c3JjcGtncy9sbGQKKysrIGIvc3JjcGtncy9sbGQKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkLWRldmVsIGIvc3JjcGtncy9sbGQtZGV2ZWwKaW5kZXgg Y2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkLWRldmVs CisrKyBiL3NyY3BrZ3MvbGxkLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsZGIgYi9zcmNwa2dzL2xsZGIKaW5kZXggY2Q2MGZkN2E5ODFiLi4x ZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9zcmNwa2dzL2xsZGIK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkYi1kZXZl bCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiLWRldmVsCisrKyBiL3NyY3BrZ3MvbGxkYi1kZXZlbApA QCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVu d2luZCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3 NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKKysrIGIvc3JjcGtncy9s bHZtLWxpYnVud2luZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtLWxpYnVud2luZC1kZXZlbCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwK aW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2 bS1saWJ1bndpbmQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbApAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNo ZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi43YjY0MGUxMDJiZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBAIC0w LDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAor KysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDgzLDcgKzIw ODMsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVm YXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxl c1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1s aW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGlu dXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJz W10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNb XSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IEFSTWViSEZUcmlwbGVzW10gPSB7CitAQCAtMjE1MSw4ICsyMTUyLDcgQEAgdm9pZCBHZW5lcmlj X0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAg ICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3Bl In07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIz MiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10g PSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVz bCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dl cnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IFBQQzY0VHJpcGxlc1tdID0geworQEAgLTIyMzEsNiArMjIzMSw4NyBAQCB2b2lk IEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZp eGVzKAorICAgICByZXR1cm47CisgICB9CisKKysgIGlmIChUYXJnZXRUcmlwbGUuaXNNdXNsKCkp IHsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRNdXNsVHJpcGxlc1tdID0g eyJhYXJjaDY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFS TUhGTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJhcm0tbGludXgtbXVzbGVhYmloZiIsICJh cm12N2wtbGludXgtbXVzbGVhYmloZiIKKysgICAgfTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7ImFybS1saW51eC1tdXNsZWFiaSJ9OworKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2XzY0TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0LWxp bnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlwbGVz W10gPSB7Imk2ODYtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg TUlQU011c2xUcmlwbGVzW10gPSB7CisrICAgICAgICAibWlwcy1saW51eC1tdXNsIiwgIm1pcHNl bC1saW51eC1tdXNsIiwKKysgICAgICAgICJtaXBzZWwtbGludXgtbXVzbGhmIiwgIm1pcHMtbGlu dXgtbXVzbGhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTXVz bFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBQUENMRU11c2xUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1tdXNsIn07 CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NE11c2xUcmlwbGVzW10gPSB7InBv d2VycGM2NC1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2 NExFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0bGUtbGludXgtbXVzbCJ9OworKworKyAgICBz d2l0Y2ggKFRhcmdldFRyaXBsZS5nZXRBcmNoKCkpIHsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6 OmFhcmNoNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBl bmQoQUFyY2g2NExpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihB QXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlh cmNoTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRp cnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVz bFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2UgbGx2bTo6VHJpcGxlOjphcm06CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQVJN TGliRGlycyksIGVuZChBUk1MaWJEaXJzKSk7CisrICAgICAgaWYgKFRhcmdldFRyaXBsZS5nZXRF bnZpcm9ubWVudCgpID09IGxsdm06OlRyaXBsZTo6TXVzbEVBQklIRikgeworKyAgICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNSEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11c2xU cmlwbGVzKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFSTU11c2xUcmlwbGVzKSwgZW5kKEFSTU11c2xUcmlwbGVzKSk7CisrICAgICAgfQor KyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2XzY0OgorKyAgICAgIExp YkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOwor KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5k KFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o WDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4NjoKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBl bmQoWDg2XzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJl Z2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjptaXBzOgorKyAgICAgIExpYkRpcnMuYXBw ZW5kKGJlZ2luKE1JUFNMaWJEaXJzKSwgZW5kKE1JUFNMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oTUlQU011c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjOgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJE aXJzKSwgZW5kKFBQQzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjbGU6CisrICAgICAgTGliRGly cy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVN dXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVM aWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisrICAg ICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykp OworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBl bmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2lu KFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorKyAgICAgIExp YkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7 CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwg ZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJl Z2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhUYXJnZXRUcmlwbGUuc3RyKCkpOwor KyAgICBpZiAoVGFyZ2V0VHJpcGxlLnN0cigpICE9IEJpYXJjaFRyaXBsZS5zdHIoKSkKKysgICAg ICBCaWFyY2hUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhCaWFyY2hUcmlwbGUuc3RyKCkpOworKyAg ICByZXR1cm47CisrICB9CisrCisgICAvLyBBbmRyb2lkIHRhcmdldHMgc2hvdWxkIG5vdCB1c2Ug R05VL0xpbnV4IHRvb2xzIG9yIGxpYnJhcmllcy4KKyAgIGlmIChUYXJnZXRUcmlwbGUuaXNBbmRy b2lkKCkpIHsKKyAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRBbmRyb2lkVHJp cGxlc1tdID0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv Y2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NzEyOGFmNzliN2YKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1w YXRoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5j cHAKK0BAIC00OTAsMTAgKzQ5MCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWljTGlu a2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKKyAgICAgTG9hZGVyID0gImxkLnNvLjEi OworICAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKy0gICAgTGliRGly ID0gImxpYjY0IjsKKy0gICAgTG9hZGVyID0KKy0gICAgICAgICh0b29sczo6cHBjOjpoYXNQUENB YmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKKy0gICAg YnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKKyAgICAgTGliRGlyID0gImxp YjY0IjsKKyAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv Y2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVz L2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMjFmYzgwMDNjNWYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaApAQCAtMCww ICsxLDQ4IEBACistLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorKysrIGIvY2xh bmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKK0BAIC00MTUsMTEgKzQxNSwxMCBAQCBwdWJsaWM6 CisgICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91YmxlKCk7 CisgICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxlOjpwcGM2 NGxlKSkgeworICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAg ICAgQUJJID0gImVsZnYyIjsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBEYXRhTGF5b3V0ID0gIkUt bTplLWk2NDo2NC1uMzI6NjQiOworLSAgICAgIEFCSSA9ICJlbGZ2MSI7CisgICAgIH0KKysgICAg QUJJID0gImVsZnYyIjsKKyAKKyAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8IFRyaXBs ZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgeworICAgICAgIExvbmdEb3VibGVX aWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OworLS0tIGEvY2xhbmcvbGliL0NvZGVHZW4vVGFy Z2V0SW5mby5jcHAKKysrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCitAQCAt MTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdlbk1vZHVs ZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7CisgICAgICAgcmV0dXJuIFNldENHSW5mbyhuZXcg QUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKKyAKKyAgICAg aWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKKy0gICAgICBQUEM2NF9TVlI0X0FCSUlu Zm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7CistICAgICAgaWYg KGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCistICAgICAgICBLaW5kID0gUFBDNjRf U1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFCSUtpbmQg S2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7CisrICAgICAgaWYgKGdldFRhcmdldCgp LmdldEFCSSgpID09ICJlbGZ2MSIpCisrICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZv OjpFTEZ2MTsKKyAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxvYXRBQkkg PT0gInNvZnQiOworIAorICAgICAgIHJldHVybiBTZXRDR0luZm8oCistLS0gYS9jbGFuZy9saWIv RHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xD aGFpbnMvQ2xhbmcuY3BwCitAQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6OkFkZFBQ Q1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKKyAgIGNvbnN0IGxsdm06OlRyaXBsZSAm VCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOworICAgaWYgKFQuaXNPU0JpbkZvcm1hdEVM RigpKSB7CisgICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7CistICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogeworLSAgICAgIGlmICgoVC5pc09TRnJlZUJTRCgpICYm IFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKy0gICAgICAgICAgVC5pc09TT3BlbkJT RCgpIHx8IFQuaXNNdXNsKCkpCistICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKy0gICAgICBl bHNlCistICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKKy0gICAgICBicmVhazsKKy0gICAgfQor KyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisgICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpw cGM2NGxlOgorICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworICAgICAgIGJyZWFrOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVy LXBwYzY0LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li40MTM1YmZkNDQ4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVz L2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAK Ky0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5j cHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51 eC5jcHAKK0BAIC03NCw2ICs3NCwxMCBAQAorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorICNl bmRpZgorCisrI2lmIFNBTklUSVpFUl9MSU5VWCAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisgI2lmIFNBTklUSVpFUl9MSU5VWCAm JiAhU0FOSVRJWkVSX0FORFJPSUQKKyAjaW5jbHVkZSA8c3lzL3BlcnNvbmFsaXR5Lmg+CisgI2Vu ZGlmCistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxh dGZvcm1fbGltaXRzX3Bvc2l4LmNwcAorKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9j b21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKK0BAIC05Miw3ICs5Miw3 IEBACisgIyBpbmNsdWRlIDx1dGltZS5oPgorICMgaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorICMg ICAgaWYgZGVmaW5lZChfX21pcHM2NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCistICAgICAgICBkZWZpbmVkKF9faGV4YWdvbl9fKSB8fCBTQU5JVEla RVJfUklTQ1Y2NAorKyAgICAgICAgZGVmaW5lZChfX2hleGFnb25fXykgfHwgZGVmaW5lZChfX3Bv d2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQKKyAjICAgICAgaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorICMgICAgICBpZmRlZiBfX2FybV9fCisgdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3Mg ZWxmX2ZwcmVnc2V0X3Q7CistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCisrKysgYi9jb21waWxlci1y dC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNk ZXAuY3BwCitAQCAtMzEsNyArMzEsNyBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9y IHBpZF90CisgI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCisgI2luY2x1ZGUgPGVs Zi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKKy0jaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNB TklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKKysjaWYgKGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAm JiAhU0FOSVRJWkVSX0FORFJPSUQKKyAvLyBHTElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBp bmNsdWRlIGFzbS9wdHJhY2UuaAorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorICNlbmRpZgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0 LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBj NjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQw YjYxYzgwYzg5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29t cGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKKy0tLSBhL2Nv bXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYworKysrIGIvY29tcGlsZXItcnQv bGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCitAQCAtMTIsNyArMTIsMTMgQEAKKyAKKyAjaW5j bHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8bXV0ZXg+CisrI2lmZGVmIF9fR0xJQkNfXworICNp bmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8Y2N0eXBlPgor KyNpbmNsdWRlIDxjc3RyaW5nPgorKyNpbmNsdWRlIDxjc3RkbGliPgorKyNlbmRpZgorIAorICNp bmNsdWRlICJ4cmF5X2RlZnMuaCIKKyAKK0BAIC0yMCwxMyArMjYsNDUgQEAgbmFtZXNwYWNlIF9f eHJheSB7CisgCisgQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4X3QgJkNQVSkg WFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIENQVSA9IDA7CisrI2lmZGVmIF9fR0xJQkNfXwor ICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOworKyNlbHNlCisrICByZXR1cm4gX19idWls dGluX3BwY19nZXRfdGltZWJhc2UoKTsKKysjZW5kaWYKKyB9CisgCisgaW5saW5lIHVpbnQ2NF90 IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CisgICBzdGF0aWMgc3Rk OjptdXRleCBNOworICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJkKE0pOworKyNp ZmRlZiBfX0dMSUJDX18KKyAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJlcSgpOworKyNl bHNlCisrICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAqLworKyAgc3Rh dGljIHVpbnQ2NF90IGJhc2U7CisrICBpZiAoIWJhc2UpIHsKKysgICAgRklMRSAqZiA9IGZvcGVu KCIvcHJvYy9jcHVpbmZvIiwgInJiIik7CisrICAgIGlmIChmKSB7CisrICAgICAgc3NpemVfdCBu cjsKKysgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgbGlu ZSAqLworKyAgICAgIGNoYXIgYnVmWzUxMl07CisrICAgICAgd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6 ZW9mKGJ1ZiksIGYpKSB7CisrICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVmLCAidGltZWJh c2UiKTsKKysgICAgICAgIGlmICghcmV0KSB7CisrICAgICAgICAgIGNvbnRpbnVlOworKyAgICAg ICAgfQorKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7CisrICAgICAgICBy ZXQgPSBzdHJjaHIocmV0LCAnOicpOworKyAgICAgICAgaWYgKCFyZXQpIHsKKysgICAgICAgICAg Y29udGludWU7CisrICAgICAgICB9CisrICAgICAgICBiYXNlID0gc3RydG91bChyZXQgKyAxLCBu dWxscHRyLCAxMCk7CisrICAgICAgICBicmVhazsKKysgICAgICB9CisrICAgICAgZmNsb3NlKGYp OworKyAgICB9CisrICB9CisrICByZXR1cm4gYmFzZTsKKysjZW5kaWYKKyB9CisgCisgaW5saW5l IGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2ggYi9z cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmJkMzFmZmMyY2IxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApAQCAtMCwwICsxLDI2IEBA CistLS0gYS9saWJjeHgvaW5jbHVkZS9sb2NhbGUKKysrKyBiL2xpYmN4eC9pbmNsdWRlL2xvY2Fs ZQorQEAgLTc0Miw3ICs3NDIsMTEgQEAgX19udW1fZ2V0X3NpZ25lZF9pbnRlZ3JhbChjb25zdCBj aGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCisgICAgICAgICB0eXBlbmFtZSByZW1vdmVf cmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0gZXJybm87Cisg ICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBjaGFyICpfX3AyOworKyNpZiBkZWZpbmVkKF9f bGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgbG9uZyBsb25nIF9fbGwg PSBzdHJ0b2xsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UKKyAgICAgICAgIGxvbmcgbG9u ZyBfX2xsID0gc3RydG9sbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NB TEUpOworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlw ZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9f Y3VycmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwor QEAgLTc4Miw3ICs3ODYsMTEgQEAgX19udW1fZ2V0X3Vuc2lnbmVkX2ludGVncmFsKGNvbnN0IGNo YXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9y ZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAg ICAgICAgIGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19s aW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICB1bnNpZ25lZCBsb25nIGxv bmcgX19sbCA9IHN0cnRvdWxsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UKKyAgICAgICAg IHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGxfbChfX2EsICZfX3AyLCBfX2Jhc2Us IF9MSUJDUFBfR0VUX0NfTE9DQUxFKTsKKysjZW5kaWYKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92 ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJu bzsKKyAgICAgICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKKyAgICAgICAgICAgICBlcnJu byA9IF9fc2F2ZV9lcnJubzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGli Y3h4LXBwYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdhOTJmODAwNGUxYwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaApA QCAtMCwwICsxLDIyIEBACitUaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5lZCBjb3Jy ZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMsCitpbmNsdWRpbmcgbXVzbCBhbmQgaXRz IDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19gCitpcyBu b3QgZGVmaW5lZCBvbiBnY2MuCisKKy0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cworKysrIGIv bGliY3h4L2luY2x1ZGUvbGltaXRzCitAQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Cisg ICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5 cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7 fQorICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQ UiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVOT1JNX01JTl9f O30KKyAKKy0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQorKyNp ZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2lmIChf X0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRfRElHX18g PT0gX19EQkxfTUFOVF9ESUdfXykKKysgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJs ZSBwcmVjaXNpb24gKi8KKysgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wg aXNfaWVjNTU5ID0gdHJ1ZTsKKysjZWxzZQorKyAgICAvKiAxMjgtYml0IElCTSBkb3VibGUtZG91 YmxlICovCisgICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1 OSA9IGZhbHNlOworKyNlbmRpZgorICNlbHNlCisgICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQ UiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcwMjkyYmViMmZjZAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKQEAgLTAs MCArMSwxMSBAQAorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysgYi9saWJjeHgvQ01h a2VMaXN0cy50eHQKK0BAIC03NjksNiArNzY5LDggQEAgZnVuY3Rpb24oY3h4X2xpbmtfc3lzdGVt X2xpYnJhcmllcyB0YXJnZXQpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0g UFJJVkFURSBhdG9taWMpCisgICBlbmRpZigpCisgCisrI3NzcCAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCisrCisgICBpZiAoTUlOR1cpCisg ICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSAiJHtNSU5HV19MSUJS QVJJRVN9IikKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhhYmktZGwu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYTE1ZjlkYjhj OTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitBbHNvIGxpbmsgdG8gLWxkbCB0byBwcmV2ZW50IHVu ZGVmaW5lZCByZWZlcmVuY2VzLgorCistLS0gYS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0 CisrKysgYi9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtNzMsNiArNzMsNyBAQAor ICAgZW5kaWYoKQorIAorICAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJ QiBjKQorKyAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJQiBkbCkKKyBl bmRpZigpCisgCisgaWYgKExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUikKKy0tLSBhL2xpYmN4 eC9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNzQ1LDYg Kzc0NSwxMCBAQAorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg bSkKKyAgIGVuZGlmKCkKKyAKKysgIGlmIChMSUJDWFhfSEFTX0NfTElCKQorKyAgICB0YXJnZXRf bGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgZGwpCisrICBlbmRpZigpCisrCisgICBp ZiAoTElCQ1hYX0hBU19SVF9MSUIpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rhcmdl dH0gUFJJVkFURSBydCkKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGxkYi1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbGRiLW11c2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MDFjMGQxMzg1 MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaApAQCAtMCwwICsxLDMxIEBACistLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3Mv TGludXgvUHJvY2ZzLmgKKysrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAorQEAgLTEwLDIxICsxMCwxMiBAQAorIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lk L0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCisgCisgI2luY2x1ZGUgPHN5 cy9wdHJhY2UuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorLSNpZmRlZiBfX0FORFJP SURfXworLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKy10 eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsKKy10eXBlZGVmIGVsZl9ncmVnX3QKKy0g ICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVs Zl9ncmVnX3QpKV07CistdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVn c2V0X3Q7CistI2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJG UFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbGlmIGRlZmluZWQoX19taXBzX18pCist I2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRworLSNl bmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbmRpZgorLSNlbHNlIC8vIF9fQU5EUk9JRF9fCisrI2lm ICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjZGVmaW5lIHB0 X3JlZ3MgbXVzbF9wdF9yZWdzCisrI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKysjdW5kZWYgcHRf cmVncworKyNlbHNlCisgI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKy0jZW5kaWYgLy8gX19BTkRS T0lEX18KKysjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0w MDEtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYyYTNmOGQ2MjgxMwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5w YXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIGZhY2EzZmJkMTVkMGMzMTA4NDkzYzNjNTRjZDkz MTM4ZTA0OWFjNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNh bGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MDM6MDIg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIG11c2wKKworLS0tCisgaW5jbHVkZS9sbHZtL0Fu YWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmggfCA5ICsrKysrKysrKworIGxpYi9TdXBwb3J0L0R5 bmFtaWNMaWJyYXJ5LmNwcCAgICAgICAgICAgIHwgMiArLQorIGxpYi9TdXBwb3J0L1VuaXgvU2ln bmFscy5pbmMgICAgICAgICAgICAgIHwgNiArKystLS0KKyB1dGlscy91bml0dGVzdC9nb29nbGV0 ZXN0L3NyYy9ndGVzdC5jYyAgICB8IDEgKworIDUgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGx2bS9BbmFseXNp cy9UYXJnZXRMaWJyYXJ5SW5mby5oIGIvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJh cnlJbmZvLmgKK2luZGV4IDM0YThhMWUzLi4xMjE0ZWNlNSAxMDA2NDQKKy0tLSBhL2xsdm0vaW5j bHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKKysrKyBiL2xsdm0vaW5jbHVk ZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKK0BAIC0xOCw2ICsxOCwxNSBAQAor ICNpbmNsdWRlICJsbHZtL0lSL1Bhc3NNYW5hZ2VyLmgiCisgI2luY2x1ZGUgImxsdm0vUGFzcy5o IgorIAorKyN1bmRlZiBmb3BlbjY0CisrI3VuZGVmIGZzZWVrbzY0CisrI3VuZGVmIGZzdGF0NjQK KysjdW5kZWYgZnN0YXR2ZnM2NAorKyN1bmRlZiBmdGVsbG82NAorKyN1bmRlZiBsc3RhdDY0Cisr I3VuZGVmIHN0YXQ2NAorKyN1bmRlZiB0bXBmaWxlNjQKKysKKyBuYW1lc3BhY2UgbGx2bSB7Cisg dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEFycmF5UmVmOworIGNsYXNzIFRyaXBsZTsKK2Rp ZmYgLS1naXQgYS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYyBiL2xpYi9TdXBw b3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCitpbmRleCBhMmEzNzk5Ni4uMmY4NmM0NzAgMTAw NjQ0CistLS0gYS9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCisrKysg Yi9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCitAQCAtMTAyLDcgKzEw Miw3IEBAIHN0YXRpYyB2b2lkICpEb1NlYXJjaChjb25zdCBjaGFyKiBTeW1ib2xOYW1lKSB7Cisg CisgLy8gVGhpcyBtYWNybyByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIGEgd2VsbC1rbm93biwgZXhw bGljaXQgc3ltYm9sCisgI2RlZmluZSBFWFBMSUNJVF9TWU1CT0woU1lNKSBcCistICAgaWYgKCFz dHJjbXAoU3ltYm9sTmFtZSwgI1NZTSkpIHJldHVybiAmU1lNCisrICAgaWYgKCFzdHJjbXAoU3lt Ym9sTmFtZSwgI1NZTSkpIHJldHVybiAodm9pZCAqKSZTWU0KKyAKKyAvLyBVbmRlciBnbGliYyB3 ZSBoYXZlIGEgd2VpcmQgc2l0dWF0aW9uLiBUaGUgc3RkZXJyL291dC9pbiBzeW1ib2xzIGFyZSBi b3RoCisgLy8gbWFjcm9zIGFuZCBnbG9iYWwgdmFyaWFibGVzIGJlY2F1c2Ugb2Ygc3RhbmRhcmRz IHJlcXVpcmVtZW50cy4gU28sIHdlCitkaWZmIC0tZ2l0IGEvdXRpbHMvdW5pdHRlc3QvZ29vZ2xl dGVzdC9zcmMvZ3Rlc3QuY2MgYi91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5j YworaW5kZXggZDg4MmFiMmUuLmYxZmIxMmQwIDEwMDY0NAorLS0tIGEvbGx2bS91dGlscy91bml0 dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYworKysrIGIvbGx2bS91dGlscy91bml0dGVzdC9n b29nbGV0ZXN0L3NyYy9ndGVzdC5jYworQEAgLTEyOCw2ICsxMjgsNyBAQAorIAorICNpZiBHVEVT VF9DQU5fU1RSRUFNX1JFU1VMVFNfCisgIyBpbmNsdWRlIDxhcnBhL2luZXQuaD4gIC8vIE5PTElO VAorKyMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxuZXRk Yi5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKKyAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPiAgLy8gTk9MSU5UCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xs dm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMDcxZDk2NGJkMzcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0 Y2gKQEAgLTAsMCArMSwzMCBAQAorVGhpcyBwYXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBw YzY0IHVuY29uZGl0aW9uYWxseSB1bmxlc3Mgb3ZlcnJpZGRlbi4gV2UKK25lZWQgdGhpcyBiZWNh dXNlIHVubGlrZSBtb3N0IGRpc3Ryb3Mgd2UgdXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBt dXNsCitvbiBiaWcgZW5kaWFuIHBwYzY0LgorCitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dl clBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1h Y2hpbmUuY3BwCitpbmRleCAwNjM0ODMzZS4uYjdjYmMyZTcgMTAwNjQ0CistLS0gYS9sbHZtL2xp Yi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorKysrIGIvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKK0BAIC0yMjIsOSArMjIyLDggQEAgc3Rh dGljIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ0FCSSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBs ZSAmVFQsCisgCisgICBzd2l0Y2ggKFRULmdldEFyY2goKSkgeworICAgY2FzZSBUcmlwbGU6OnBw YzY0bGU6CistICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAg Y2FzZSBUcmlwbGU6OnBwYzY0OgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FC SV9FTEZ2MTsKKysgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Cisg ICBkZWZhdWx0OgorICAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dO OworICAgfQorZGlmZiAtLWdpdCBhL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmku bGwgYi90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitpbmRleCA4YjFjZjZi NS4uMjk2YTJhZmEgMTAwNjQ0CistLS0gYS9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0 LWVsZi1hYmkubGwKKysrKyBiL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFi aS5sbAorQEAgLTEsNCArMSw1IEBACistOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMg LW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMg LWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5z dHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNr ICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGlu ZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxl Q2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1t YWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0 LWFiaSBlbGZ2MSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEK KyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5r bm93bi1saW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hl Y2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMg LW10cmlwbGU9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9w YXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRj aGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5iNWQxNTk3NDM3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKQEAgLTAsMCArMSwx MSBAQAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorKysr IGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorQEAgLTE2NSw3ICsx NjUsNyBAQCB2b2lkIFBQQ1N1YnRhcmdldDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1Jl ZiBDUFUsIFN0cmluZ1JlZiBGUykgeworIAorICAgaWYgKChUYXJnZXRUcmlwbGUuaXNPU0ZyZWVC U0QoKSAmJiBUYXJnZXRUcmlwbGUuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKyAgICAg ICBUYXJnZXRUcmlwbGUuaXNPU05ldEJTRCgpIHx8IFRhcmdldFRyaXBsZS5pc09TT3BlbkJTRCgp IHx8CistICAgICAgVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKQorKyAgICAgIGlzVGFyZ2V0TGludXgo KSkKKyAgICAgU2VjdXJlUGx0ID0gdHJ1ZTsKKyAKKyAgIGlmIChIYXNTUEUgJiYgSXNQUEM2NCkK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0 LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MWQwZTRiMzFiMzIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJy aWRlLW9wdC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitUaGlzIGFsbG93cyB1cyB0byBvdmVycmlk ZSB0aGUgb3B0aW1pemF0aW9uIGxldmVsIGFzIG5vdCBhbGwgcGxhdGZvcm1zIGNhbgorZGVhbCB3 aXRoIC1PMy4KKworLS0tIGEvbGx2bS9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGx2bS9DTWFrZUxp c3RzLnR4dAorQEAgLTkxOCw2ICs5MTgsMTIgQEAgaWYoIE1JTkdXIEFORCBOT1QgIiR7Q01BS0Vf Q1hYX0NPTVBJTEVSX0lEfSIgTUFUQ0hFUyAiQ2xhbmciICkKKyAgIGxsdm1fcmVwbGFjZV9jb21w aWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgIi1PMyIgIi1PMiIpCisgZW5kaWYo KQorIAorK3NldChWT0lEX0NYWF9PUFRfRkxBR1MgIiIgQ0FDSEUgU1RSSU5HICJPcHRpbWl6YXRp b24gbGV2ZWwgdG8gdXNlIikKKysKKytpZiAoTk9UIFZPSURfQ1hYX09QVF9GTEFHUyBTVFJFUVVB TCAiIikKKysgICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1Nf UkVMRUFTRSAiLU8zIiAiJHtWT0lEX0NYWF9PUFRfRkxBR1N9IikKKytlbmRpZigpCisrCisgIyBQ dXQgdGhpcyBiZWZvcmUgdGJsZ2VuLiBFbHNlIHdlIGhhdmUgYSBjaXJjdWxhciBkZXBlbmRlbmNl LgorIGFkZF9zdWJkaXJlY3RvcnkobGliL0RlbWFuZ2xlKQorIGFkZF9zdWJkaXJlY3RvcnkobGli L1N1cHBvcnQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1LXBw Yy1iaWdwaWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzMyNjg3 YjlkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1 LXBwYy1iaWdwaWMucGF0Y2gKQEAgLTAsMCArMSwzNiBAQAorRnJvbSBmM2RiZGQ0OWMwNmJmYWZj MWQ2MTM4MDk0Y2Y0Mjg4OWMxNGQzOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog U2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+CitEYXRlOiBTdW4sIDMgTm92IDIw MTkgMTA6NTc6MjcgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENdIEFzc3Vt ZSBCaWdQSUMgaWYgbm8gUElDIGxldmVsIGlzIHNwZWNpZmllZAorCistLS0KKyBsbHZtL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcCAgfCAyICstCisgbGx2bS9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50 ZXIuY3BwCitpbmRleCBjY2UyMWYzMi4uODdjYTVmOWIgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK0BAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBQUENBc21Q cmludGVyOjpFbWl0VGxzQ2FsbChjb25zdCBNYWNoaW5lSW5zdHIgKk1JLAorIAorICAgLy8gQWRk IDMyNzY4IG9mZnNldCB0byB0aGUgc3ltYm9sIHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0ZXN0IEdP VC9QTFQgQUJJLgorICAgaWYgKEtpbmQgPT0gTUNTeW1ib2xSZWZFeHByOjpWS19QTFQgJiYgU3Vi dGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmCistICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNM ZXZlbDo6QmlnUElDKQorKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxs UElDKQorICAgICBUbHNSZWYgPSBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZCgKKyAgICAgICAgIFRs c1JlZiwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91dENvbnRl eHQpOworICAgY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PID0gTUktPmdldE9wZXJhbmQoMik7Citk aWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCBiL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKK2luZGV4IDVjYzE4MGQ3Li5hNWIwMjU2 NSAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNw cAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitAQCAt MTE3LDcgKzExNyw3IEBAIHN0YXRpYyBNQ09wZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0IE1hY2hp bmVPcGVyYW5kICZNTywgY29uc3QgTUNTeW1ib2wgKlN5bWJvbCwKKyAgIGNvbnN0IE1DRXhwciAq RXhwciA9IE1DU3ltYm9sUmVmRXhwcjo6Y3JlYXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4KTsKKyAg IC8vIElmIC1tc2VjdXJlLXBsdCAtZlBJQywgYWRkIDMyNzY4IHRvIHN5bWJvbC4KKyAgIGlmIChT dWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYgVE0uaXNQb3NpdGlvbkluZGVwZW5kZW50KCkgJiYK Ky0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMgJiYKKysgICAgICBN LT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQyAmJgorICAgICAgIE1PLmdldFRh cmdldEZsYWdzKCkgPT0gUFBDSUk6Ok1PX1BMVCkKKyAgICAgRXhwciA9CisgICAgICAgICBNQ0Jp bmFyeUV4cHI6OmNyZWF0ZUFkZChFeHByLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBD dHgpLCBDdHgpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA2LWFh cmNoNjQtbWZfZXhlYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmEwMGFiZDIxNjY2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNo ZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0ZpeCBm YWlsdXJlcyBpbiBBbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC4qIG9uIGFhcmNoNjQ6 CisKKyAgICBGYWlsaW5nIFRlc3RzICg4KToKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQv Li9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuQWxsb2NBbmRS ZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxs b2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRHVwbGljYXRlTmVhci8zCisgICAgICAgIExM Vk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRN ZW1vcnlUZXN0LkVuYWJsZWRXcml0ZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Lk11bHRpcGxlQWxs b2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVz dHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuU3VjY2Vzc2l2ZU5lYXIvMworICAg ICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMv TWFwcGVkTWVtb3J5VGVzdC5VbmFsaWduZWROZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1 cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVy b05lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxv Y2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvU2l6ZU5lYXIvMworCitVcHN0cmVhbS1J c3N1ZTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OCNjMTAKKwor LS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKKysrKyBiL2xsdm0vbGliL1N1 cHBvcnQvVW5peC9NZW1vcnkuaW5jCitAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgaW50IGdldFBv c2l4UHJvdGVjdGlvbkZsYWdzKHVuc2lnbmVkIEZsYWdzKSB7CisgICAgIHJldHVybiBQUk9UX1JF QUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDOworICAgY2FzZSBsbHZtOjpzeXM6Ok1lbW9yeTo6 TUZfRVhFQzoKKyAjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19QT1dFUlBD X18pIHx8IGRlZmluZWQgKF9fcHBjX18pIHx8IFwKKy0gICAgIGRlZmluZWQoX1BPV0VSKSB8fCBk ZWZpbmVkKF9BUkNIX1BQQykpCisrICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChfQVJD SF9QUEMpIHx8IChkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykpKQor ICAgICAvLyBPbiBQb3dlclBDLCBoYXZpbmcgYW4gZXhlY3V0YWJsZSBwYWdlIHRoYXQgaGFzIG5v IHJlYWQgcGVybWlzc2lvbgorICAgICAvLyBjYW4gaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNl cy4gIFRoZSBmdW5jdGlvbiBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb24tCisgICAgIC8vIENhY2hlIHVz ZXMgaW5zdHJ1Y3Rpb25zIGRjYmYgYW5kIGljYmksIGJvdGggb2Ygd2hpY2ggYXJlIHRyZWF0ZWQg YnkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTQv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZTdlNmFi MmMwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpAQCAtMCww ICsxLDQyNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTE0JworcGtnbmFtZT1sbHZtMTQK K3ZlcnNpb249MTQuMC4zCityZXZpc2lvbj0xCit3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3ZlcnNp b259LnNyYyIKK2J1aWxkX3dya3NyYz1sbHZtCitidWlsZF9zdHlsZT1jbWFrZQorY29uZmlndXJl X2FyZ3M9IgorIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2CisgLURFTkFCTEVf TElOS0VSX0JVSUxEX0lEPVlFUworIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMKKyAtRExJQkNY WF9DWFhfQUJJPWxpYmN4eGFiaQorIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJBUlk9 WUVTCisgLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCisgLURMSUJDWFhBQklfRU5B QkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKKyAtRExJQk9NUF9FTkFCTEVfU0hBUkVEPVlFUworIC1E TElCT01QX0lOU1RBTExfQUxJQVNFUz1OTworIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCisgLURM TFZNX0JVSUxEX0RPQ1M9WUVTCisgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCisgLURTUEhJTlhf V0FSTklOR1NfQVNfRVJST1JTPU5PCisgLURMTFZNX0lOU1RBTExfVVRJTFM9WUVTCisgLURMTFZN X0JVSUxEX0xMVk1fRFlMSUI9WUVTCisgLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKKyAtRExM Vk1fRU5BQkxFX1JUVEk9WUVTCisgLURMTFZNX0VOQUJMRV9GRkk9WUVTCisgLURMTFZNX0JJTlVU SUxTX0lOQ0RJUj0vdXNyL2luY2x1ZGUiCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcHl0aG9uMyB6 bGliLWRldmVsIGxpYmZmaS1kZXZlbCBzd2lnIHB5dGhvbjMtU3BoaW54CisgcHl0aG9uMy1yZWNv bW1vbm1hcmsgcHl0aG9uMy1zcGhpbngtYXV0b21vZGFwaSIKK21ha2VkZXBlbmRzPSJweXRob24z LWRldmVsIHpsaWItZGV2ZWwgZWxmdXRpbHMtZGV2ZWwgbGliZmZpLWRldmVsIGxpYmVkaXQtZGV2 ZWwKKyBsaWJ4bWwyLWRldmVsIGJpbnV0aWxzLWRldmVsIGxpYmF0b21pYy1kZXZlbCIKK2RlcGVu ZHM9ImxpYmxsdm0xND49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IkxvdyBM ZXZlbCBWaXJ0dWFsIE1hY2hpbmUiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPiIKK2xpY2Vuc2U9IkFwYWNoZS0yLjAiCitob21lcGFnZT0iaHR0cHM6Ly93d3cubGx2bS5v cmciCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxl YXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0u c3JjLnRhci54eiIKK2NoZWNrc3VtPTQ0ZDNlN2E3ODRkNWNmODA1ZTcyODUzYmIwM2YyMThiZDEw NThkNDQ4YzAzY2E4ODNkYWJiZWJjOTkyMDRlMGMKK2xpYjMyZGlzYWJsZWQ9eWVzCitweXRob25f dmVyc2lvbj0zCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJ Y29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFTX01VU0xfTElCQz1ZRVMiCisJbWFrZWRlcGVu ZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCisJZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIK K2ZpCisKKyMgIm9wZXJhbmQgb3V0IG9mIHJhbmdlIiBhc3NlbWJsZXIgZmFpbHVyZXMKK2Nhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBjb25maWd1cmVf YXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OworZXNhYworCitfZW5hYmxlZF9w cm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7Y29tcGlsZXItcnQ7bGliY3h4O2xpYmN4 eGFiaTtsaWJ1bndpbmQ7bGxkIgorCitfbGxkYl9lbmFibGU9eWVzCitfbGlib21wX2VuYWJsZT1u bworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NGxlKikgOzsKKwlwcGMq fGk2ODYqKSBfbGxkYl9lbmFibGU9bm8gOzsKK2VzYWMKKworY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCisJeDg2XzY0KnxhYXJjaDY0KnxwcGM2NCopIF9saWJvbXBfZW5hYmxlPXllczs7 Citlc2FjCisKK3N1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSIKKworIyBtdXN0IGdvIGJl Zm9yZSBjbGFuZworaWYgWyAiJF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwlfZW5h YmxlZF9wcm9qZWN0cys9IjtvcGVubXAiCisJc3VicGFja2FnZXMrPSIgbGlib21wIGxpYm9tcC1k ZXZlbCIKKwkjIGJlY2F1c2Ugb2YgY21ha2Ugbm9uc2Vuc2UgcmVmZXJlbmNpbmcgbGlib21wdGFy Z2V0LnNvLioKKwlkZXBlbmRzKz0iIGxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Zp CisKK3N1YnBhY2thZ2VzKz0iIGNsYW5nIGNsYW5nLWFuYWx5emVyIGxpYmNsYW5nIGxpYmNsYW5n LWNwcAorIGxsdm0tbGlidW53aW5kIGxsdm0tbGlidW53aW5kLWRldmVsIGxpYmN4eCBsaWJjeHgt ZGV2ZWwKKyBsaWJjeHhhYmkgbGliY3h4YWJpLWRldmVsIGxpYmxsdm0xNCIKKworaWYgWyAiJF9s bGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJIyBYWFggZmFpbHMgdG8gY3Jvc3MgY29tcGls ZSBkdWUgdG8gcHl0aG9uCisJX2VuYWJsZWRfcHJvamVjdHMrPSI7bGxkYiIKKwlzdWJwYWNrYWdl cys9IiBsbGRiIGxsZGItZGV2ZWwiCitmaQorCitzdWJwYWNrYWdlcys9IiBsbGQgbGxkLWRldmVs IgorCitjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRf cHJvamVjdHN9IgorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInll cyIgXTsgdGhlbgorCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CQkJdnNlZCAtaSAnc3xfX3B0cmFjZV9yZXF1ZXN0fGludHxnJyBcCisJCQkJJHt3cmtzcmN9L2xs ZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9OYXRpdmVQcm9jZXNzTGludXguY3BwCisJ CWZpCisJCSMgZGlzYWJsZSBkb2NzIGZvciBsbGRiIGFzIHRoZXkgZmFpbCB0byBnZW5lcmF0ZQor CQl2c2VkIC1pICcvYWRkX3N1YmRpcmVjdG9yeShkb2NzKS9kJyBcCisJCQkke3dya3NyY30vbGxk Yi9DTWFrZUxpc3RzLnR4dAorCWZpCisKKwkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRl ciBwbGF0Zm9ybSBkZXRlY3Rpb24KKwljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29u ZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCisJCSR7d3Jrc3JjfS9sbHZtL2NtYWtlCisK KwkjIGZpeCBsaW5rZXIgZmFpbHVyZXMgb24gc29tZSBhcmNocworCXZzZWQgLWkgJ3MsY2hlY2tf bGlicmFyeV9leGlzdHMoZ2NjX3MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX1NfTElCIE9OKSwn IFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UKKwl2c2VkIC1p ICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjYyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfTElC IE9OKSwnIFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UKKwor CSMgbmVlZCBsaWJzc3Bfbm9uc2hhcmVkIG9uIHNvbWUgbXVzbCBwbGF0Zm9ybXMgKGJlY2F1c2Ug b2Ygbm9kZWZhdWx0bGlicykKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBj NjQqKSA7OworCQlwcGMqLW11c2x8aTY4Ni1tdXNsfG1pcHMqLW11c2wpCisJCQl2c2VkIC1pICdz LF4jIFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCisJ CQkJJHt3cmtzcmN9L2xpYnVud2luZC9zcmMvQ01ha2VMaXN0cy50eHQKKwkJCXZzZWQgLWkgJ3Ms XiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJ CQkke3dya3NyY30vbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncywj c3NwLCwnICR7d3Jrc3JjfS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJZXNhYworCisJ Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXg4Nl82NC1tdXNsKSAjIHNvbWUgc2Fu aXRpemVyIGN1cnJlbnRseSBvbmx5IG9uIHg4Nl82NCBzdHVmZiBuZWVkcyBiYWNrdHJhY2UKKwkJ CXZzZWQgLWkgJ3MsIyBTZXQgY29tbW9uIGxpbmsgZmxhZ3MuLGxpc3QoQVBQRU5EIFNBTklUSVpF Ul9DT01NT05fTElOS19MSUJTIGV4ZWNpbmZvKSwnIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXIt cnQvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJCWFybSotbXVzbHxpNjg2LW11c2wpICMgc2FuaXRp emVyIGNvZGUgaXMgYnJva2VuIHNpbmNlIGl0IGR1cGxpY2F0ZXMgc29tZSBsaWJjIGJpdHMKKwkJ CXZzZWQgLWkgJ3Mvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIFRSVUUpL3Nl dChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBGQUxTRSkvJyBcCisJCQkJJHt3cmtz cmN9L2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCQkJOzsKKwllc2FjCit9CisK K3ByZV9jb25maWd1cmUoKSB7CisJbG9jYWwgdHJpcGxldAorCisJIyBWYXN0bHkgcmVkdWNlIHNp emUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CisJQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8gLWcxfQorCUNY WEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CisKKwkjIHNpbmNlIGdjYzksIHRoZSBidWlsZCBs aWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJlY2F1c2UKKwkjIG9mIGNsYW5n IGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUgY2FsbCB0byB0aGUgUExULCBz bworCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCQlwcGM2NCopIDs7CisJCW1pcHMqLW11c2x8cHBjKikgY29uZmlndXJlX2FyZ3Mr PSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OworCWVzYWMKKworCWlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgorCQltc2dfbm9ybWFsICJCdWlsZGluZyBob3N0IHRibGdlblxuIgorCQlt a2RpciAtcCBidWlsZC9IT1NUCisJCWNkIGJ1aWxkL0hPU1QKKwkJQ0M9IiRCVUlMRF9DQyIgQ1hY PSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKKwkJCUNYWEZMQUdTPSIkQlVJ TERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCisJCQljbWFrZSAuLi8uLiAt RENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCisJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7 X2VuYWJsZWRfcHJvamVjdHN9CisJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4K KwkJbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgorCQlbICIk X2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRi L3V0aWxzL1RhYmxlR2VuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKKwkJY29uZmlndXJlX2FyZ3Mr PSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10 YmxnZW4iCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9 IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10Ymxn ZW4iCisJCWNkIC4uLy4uCisJZmkKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CQlpNjg2KikgX2FyY2g9Ilg4NiI7OworCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7CisJCWFybXY1 KikgX2FyY2g9IkFybXY1dGUiOzsKKwkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsKKwkJYXJtdjcq KSBfYXJjaD0iQXJtdjciOzsKKwkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7CisJCW1pcHMq KSBfYXJjaD0iTWlwcyI7OworCQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OworCQlyaXNjdjY0Kikg X2FyY2g9IlJJU0NWNjQiOzsKKwllc2FjCisKKwl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVU Oi0kWEJQU19UUklQTEVUfQorCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNI PSR7X2FyY2h9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBs ZXR9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0 cmlwbGV0fSIKK30KKworZG9faW5zdGFsbCgpIHsKKwljZCBidWlsZAorCWNtYWtlIC1EQ01BS0Vf SU5TVEFMTF9QUkVGSVg9JHtERVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5jbWFrZQorCisJ IyBSZXF1aXJlZCBmb3IgbXVsdGlsaWIuCisJaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g Ing4Nl82NCIgXTsgdGhlbgorCQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsgZG8KKwkJCW12 ICR7REVTVERJUn0vdXNyL2luY2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXssLTY0fS5oCisJ CQl2aW5zdGFsbCAke0ZJTEVTRElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9LmggNjQ0IFwKKwkJ CQl1c3IvaW5jbHVkZS9sbHZtL0NvbmZpZyAke19oZWFkZXJ9LmgKKwkJZG9uZQorCWZpCisKKwkj IFJlbW92ZSBsbHZtLWNvbmZpZy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KKwlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KKwkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhv c3QKKwlmaQorCisJIyBJbnN0YWxsIGxpYmN4eGFiaSBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtz cmN9L2xpYmN4eGFiaS9pbmNsdWRlL19fY3h4YWJpX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQor CXZpbnN0YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9jeHhhYmkuaCA2NDQgdXNyL2lu Y2x1ZGUKKworCSMgSW5zdGFsbCBsaWJ1bndpbmQgaGVhZGVycworCXZpbnN0YWxsICR7d3Jrc3Jj fS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaCA2NDQgdXNyL2luY2x1ZGUK Kwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvbGlidW53aW5kLmggNjQ0IHVz ci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL3Vud2luZC5o IDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9t YWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaCBcCisJCTY0NCB1c3IvaW5jbHVkZS9tYWNo LW8KK30KKworY2xhbmctYW5hbHl6ZXJfcGFja2FnZSgpIHsKKwlweWNvbXBpbGVfZGlycz0idXNy L3NoYXJlL3NjYW4tdmlldyIKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IHB5dGhvbjMgcGVybCIKKwlzaG9ydF9kZXNjKz0iIC0gQSBzb3VyY2UgY29kZSBhbmFseXNpcyBm cmFtZXdvcmsiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmctYW5hbHl6ZXIubGx2bS5vcmcvIgor CXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvc2Nhbi1idWlsZC4x CisJCXZtb3ZlICIvdXNyL2Jpbi9zY2FuLSoiCisJCXZtb3ZlICIvdXNyL3NoYXJlL3NjYW4tKiIK KwkJdm1vdmUgIi91c3IvbGliZXhlYy8qYW5hbHl6ZXIiCisJfQorfQorCitjbGFuZy10b29scy1l eHRyYV9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0iY2xhbmctJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBweXRob24zIgorCXNob3J0X2Rlc2MrPSIgLSBFeHRyYSBDbGFu ZyB0b29scyIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9leHRyYS8iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLXRpZHkKKwkJdm1vdmUgdXNy L2Jpbi9jbGFuZy1hcHBseS1yZXBsYWNlbWVudHMKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1xdWVy eQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLXJlbmFtZQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLXRp ZHkKKwkJdm1vdmUgdXNyL2Jpbi9kaWFndG9vbAorCQl2bW92ZSB1c3IvYmluL2ZpbmQtYWxsLXN5 bWJvbHMKKwkJdm1vdmUgdXNyL2Jpbi9obWFwdG9vbAorCQl2bW92ZSB1c3IvYmluL21vZHVsYXJp emUKKwkJdm1vdmUgdXNyL2Jpbi9wcC10cmFjZQorCQl2bW92ZSB1c3IvYmluL3NhbmNvdgorCQl2 bW92ZSAidXNyL2xpYi9saWJjbGFuZ0FwcGx5UmVwbGFjZW1lbnRzKiIKKwkJdm1vdmUgInVzci9s aWIvbGliY2xhbmdRdWVyeSoiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nVGlkeSoiCisJCXZt b3ZlICJ1c3Ivc2hhcmUvY2xhbmcvKnRpZHkqIgorCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5n LXRvb2xzCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQorCQl2 bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQorCX0KK30KKworY2xhbmdfcGFja2Fn ZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxpYnN0ZGMrKy1kZXZlbCBsaWJn Y2MtZGV2ZWwgIGJpbnV0aWxzICR7WEJQU19UQVJHRVRfTElCQ30tZGV2ZWwKKwkgbGliY2xhbmct JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1p bHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1c3IvaW5jbHVk ZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3ZlIHVzci9iaW4vYy1p bmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9j bGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVzci9saWIvbGli Y2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQorCX0KK30KKworbGli Y2xhbmdfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBydW50aW1lIGxp YnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLnNvLioi CisJfQorfQorCitsaWJjbGFuZy1jcHBfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQyBm cm9udGVuZCBydW50aW1lIGxpYnJhcnkgKEMrKyBpbnRlcmZhY2UpIgorCXBrZ19pbnN0YWxsKCkg eworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZy1jcHAuc28uKiIKKwl9Cit9CisKK2xsZF9wYWNr YWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKKwlo b21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl IHVzci9iaW4vbGxkKgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL2Jpbi9s ZC5sbGQqCisJCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mv bGxkCisJfQorfQorCitsbGQtZGV2ZWxfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcwor CXNob3J0X2Rlc2MrPSIgLSBsaW5rZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlob21lcGFnZT0i aHR0cHM6Ly9sbGQubGx2bS5vcmciCisJZGVwZW5kcz0ibGxkPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGQKKwkJdm1vdmUg dXNyL2xpYi9jbWFrZS9sbGQKKwkJdm1vdmUgInVzci9saWIvbGlibGxkKmEiCisJfQorfQorCits bGRiX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzKz0iIHB5dGhvbjMt c2l4IgorCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2VyIgorCWhvbWVwYWdlPSJodHRwczov L2xsZGIubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvYmluLypsbGRi KgorCQl2bW92ZSB1c3IvbGliL2xpYmxsZGIqc28uKgorCQl2bW92ZSAvdXNyL2xpYi9weXRob24q CisJfQorfQorCitsbGRiLWRldmVsX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlk ZXBlbmRzPSJsbGRiPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBM TERCIGRlYnVnZ2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9pbmNsdWRlL2xsZGIKKwkJdm1vdmUgInVzci9saWIvbGlibGxkYiouc28iCisJfQor fQorCitsbHZtLWxpYnVud2luZF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndp bmQiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYnVud2luZC5zby4qIgor CX0KK30KKworbGx2bS1saWJ1bndpbmQtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGx2bS1saWJ1bndp bmQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJY29uZmxpY3RzPSJsaWJ1bndpbmQtZGV2ZWw+ PTAiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLnNvCisJCXZt b3ZlIHVzci9saWIvbGlidW53aW5kLmEKKwkJdm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgor CQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJ1bndp bmQKKwl9Cit9CisKK2xpYmN4eGFiaV9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsb3cg bGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNy L2xpYi9saWJjKythYmkuc28uKiIKKwl9Cit9CisKK2xpYmN4eGFiaS1kZXZlbF9wYWNrYWdlKCkg eworCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIC0gZGV2ZWxv cG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGliY3h4YWJpPj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5zbworCQl2bW92 ZSB1c3IvbGliL2xpYmMrK2FiaS5hCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS8qY3h4YWJpKiIKKwl9 Cit9CisKK2xpYmN4eF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliYysrLnNvLioi CisJfQorfQorCitsaWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJjeHg+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9s aWIvbGliYysrLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrLmEKKwkJdm1vdmUgdXNyL2xpYi9s aWJjKytleHBlcmltZW50YWwuYQorCQl2bW92ZSB1c3IvaW5jbHVkZS9jKysKKwkJdm1vdmUgdXNy L3NoYXJlL2RvYy9saWJjeHgKKwl9Cit9CisKK2xpYm9tcF9wYWNrYWdlKCkgeworCXNob3J0X2Rl c2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxsKCkgewor CQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQu cnRsLiouc28iCisJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNvCisJCXZtb3ZlICJ1c3IvbGli L2xpYm9tcCouc28uKiIKKwl9Cit9CisKK2xpYm9tcC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0 X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19pbnN0 YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgorCQl2bW92ZSAidXNyL2xpYi9s aWJhcmNoZXIqIgorCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSAidXNyL2xp Yi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSB1c3Ivc2hhcmUvbWFu L21hbjEvbGx2bW9wZW5tcC4xCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCisJfQorfQor CitsaWJsbHZtMTRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJ5 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgorCX0K K30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTE0L3Vw ZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5NWNmMjZiMzU4 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3VwZGF0ZQpAQCAtMCwwICsxLDMg QEAKK3NpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcyIK K3BhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCitpZ25vcmU9IiotcmMq IgoKRnJvbSBiNGViZTZlNjJjZDhkMDNkMjJjZjViMDIwOTdiNWM0OTllMGY1OGExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFn ZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE2OjA3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMi8yM10gbGx2bTogdXBkYXRlIHRvIDE0LjAuMy4KCnN3aXRjaCB0byBydW50aW1lcyBidWls ZDoKaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL3JHYWM3MDMxYjJiMmZhCmh0dHBzOi8vcmV2aWV3 cy5sbHZtLm9yZy9EMTEwMzM4IzMwMjI5NTIKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQogc3JjcGtncy9sbHZtL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIC4uLi9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWct bGx2bS1jb25maWcuaCAgICB8ICA5ICsrKwogLi4ubGUtbXV0bGlhcmNoLWxheW91dC1vbi1tdXNs LWluLWNsYW5nLnBhdGNoIHwgMzEgKysrKysrKysrCiAuLi5jaC1sb2NhdGlvbnMtZm9yLWxpYnVu d2luZC1saWJjLWxpYmMucGF0Y2ggfCA2OCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrLS0tLQogNiBmaWxl cyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA1LWRpc2Fi bGUtbXV0bGlhcmNoLWxheW91dC1vbi1tdXNsLWluLWNsYW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNy1kaXNhYmxlLW11bHRpYXJjaC1s b2NhdGlvbnMtZm9yLWxpYnVud2luZC1saWJjLWxpYmMucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA3NjU4YzFkMjUzMWUuLjkxODBjNjhkODQx OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzQs NyArOTc0LDcgQEAgbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZpZXdtbS0z LjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIgY29uZnVz ZS0zLjIuMV8xCiBsaWJsbGRiLnNvLjE0IGxsZGItMTQuMC4zXzEKLWxpYmNsYW5nLnNvLjE0IGxp YmNsYW5nLTE0LjAuM18xCitsaWJjbGFuZy5zby4xMyBsaWJjbGFuZy0xNC4wLjNfMQogbGliY2xh bmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4wLjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZt MTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCkBAIC00MTcxLDcg KzQxNzEsOCBAQCBsaWJvbXB0YXJnZXQucnRsLmFtZGdwdS5zbyBsaWJvbXAtMTQuMC4zXzEKIGxp Ym9tcHRhcmdldC5ydGwuY3VkYS5zbyBsaWJvbXAtMTQuMC4zXzEKIGxpYm9tcHRhcmdldC5ydGwu eDg2XzY0LnNvIGxpYm9tcC0xNC4wLjNfMQogbGliYXJjaGVyLnNvIGxpYm9tcC0xNC4wLjNfMQot bGlib21wdGFyZ2V0LnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wZC5zbyBsaWJvbXAtZGV2ZWwt MTQuMC4zXzEKK2xpYm9tcHRhcmdldC5zbyBsaWJvbXAtZGV2ZWwtMTQuMC4zXzEKIGxpYmxsZGJJ bnRlbEZlYXR1cmVzLnNvLjE0IGxsZGItMTQuMC4zXzEKIGxpYkxUTy5zby4xNCBsbHZtMTQtMTQu MC4zXzEKIGxpYlJlbWFya3Muc28uMTQgbGx2bTE0LTE0LjAuM18xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTkyZGI2Zjk0 ZjlmLi5kMjI2YzYxYzczNGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9uPTE0LjAu MwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgotcmVwbGFj ZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYu MD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTE0IgorcmVwbGFjZXM9Imxsdm0xMz49MCBs bHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBs bHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQ dWJsaWMgRG9tYWluIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25m aWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTE0L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0t Y29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZmEwOGM5 YmU2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZp Zy1sbHZtLWNvbmZpZy5oCkBAIC0wLDAgKzEsOSBAQAorI2luY2x1ZGUgPGJpdHMvd29yZHNpemUu aD4KKworI2lmIF9fV09SRFNJWkUgPT0gMzIKKyNpbmNsdWRlICJsbHZtLWNvbmZpZy0zMi5oIgor I2VsaWYgX19XT1JEU0laRSA9PSA2NAorI2luY2x1ZGUgImxsdm0tY29uZmlnLTY0LmgiCisjZWxz ZQorI2Vycm9yICJVbmtub3duIHdvcmQgc2l6ZSIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDUtZGlzYWJsZS1tdXRsaWFyY2gtbGF5b3V0LW9uLW11 c2wtaW4tY2xhbmcucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwNS1kaXNh YmxlLW11dGxpYXJjaC1sYXlvdXQtb24tbXVzbC1pbi1jbGFuZy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM0OGQ5OWIxMGRlMgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA1LWRpc2FibGUtbXV0bGlhcmNoLWxh eW91dC1vbi1tdXNsLWluLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gY2ZmOTE3 Yzg1YjUwOTc4OWVjNzViMWUyMzQzODMxYzU3MjlhMTkzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2Vk LCA2IEFwciAyMDIyIDAwOjUyOjIzICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDUvMjJdIGRpc2Fi bGUgbXV0bGlhcmNoIGxheW91dCBvbiBtdXNsIGluIGNsYW5nCisKK1dlIGRvbid0IHVzZSBhIG11 bHRpYXJjaCBsYXlvdXQgYW5kIHdlIGRvbid0IHJlYWxseSBjYXJlIGZvcgorZGViaWFuaXNtcywg c28gZW11bGF0ZSB3aGF0ZXZlciBhIG5vbi1tdWx0aWFyY2ggZ2NjIHRvb2xjaGFpbgord291bGQg ZG8gYW5kIHVzZSBhbiBlbXB0eSB0aGluZy4KKy0tLQorIGNsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAgfCA1ICsrKysrCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcCBi L2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKK2luZGV4IGY4NWMwNGRmNC4u MTNjYmRiZGM3IDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTQ2 LDYgKzQ2LDExIEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXRNdWx0aWFyY2hUcmlwbGUoY29uc3Qg RHJpdmVyICZELAorICAgYm9vbCBJc01pcHNSNiA9IFRhcmdldFRyaXBsZS5nZXRTdWJBcmNoKCkg PT0gbGx2bTo6VHJpcGxlOjpNaXBzU3ViQXJjaF9yNjsKKyAgIGJvb2wgSXNNaXBzTjMyQWJpID0g VGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpHTlVBQklOMzI7 CisgCisrICAvKiB3ZSBhcmUgbm90IG11bHRpYXJjaCAqLworKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgeworKyAgICByZXR1cm4gIiI7CisrICB9CisrCisgICAvLyBGb3IgbW9zdCBhcmNo aXRlY3R1cmVzLCBqdXN0IHVzZSB3aGF0ZXZlciB3ZSBoYXZlIHJhdGhlciB0aGFuIHRyeWluZyB0 byBiZQorICAgLy8gY2xldmVyLgorICAgc3dpdGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7 CistLSAKKzIuMzUuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0t MDA3LWRpc2FibGUtbXVsdGlhcmNoLWxvY2F0aW9ucy1mb3ItbGlidW53aW5kLWxpYmMtbGliYy5w YXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDctZGlzYWJsZS1tdWx0aWFyY2gt bG9jYXRpb25zLWZvci1saWJ1bndpbmQtbGliYy1saWJjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2VmNzQ5OWQ2MDgyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNy1kaXNhYmxlLW11bHRpYXJjaC1sb2NhdGlv bnMtZm9yLWxpYnVud2luZC1saWJjLWxpYmMucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorRnJvbSA5 MmEzYjczZGZlYzljODVhNTM2ZWQ5OWM1NTcwMjMxYzMzM2FkMWU4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRl OiBXZWQsIDYgQXByIDIwMjIgMDA6NTc6NTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwOC8yMl0g ZGlzYWJsZSBtdWx0aWFyY2ggbG9jYXRpb25zIGZvcgorIGxpYnVud2luZC9saWJjKysvbGliYysr YWJpCisKKy0tLQorIGxpYmN4eC9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgIHwgMiArLQorIGxp YmN4eC9iZW5jaG1hcmtzL0NNYWtlTGlzdHMudHh0IHwgMiArLQorIGxpYmN4eGFiaS9DTWFrZUxp c3RzLnR4dCAgICAgICAgIHwgMiArLQorIGxpYnVud2luZC9DTWFrZUxpc3RzLnR4dCAgICAgICAg IHwgMiArLQorIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvbGliY3h4L0NNYWtlTGlzdHMudHh0IGIvbGliY3h4L0NNYWtlTGlz dHMudHh0CitpbmRleCAzNWMyY2U1MTUuLjE5ZjQyM2JmMCAxMDA2NDQKKy0tLSBhL2xpYmN4eC9D TWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNDMyLDcgKzQz Miw3IEBAIHNldChMSUJDWFhfSU5TVEFMTF9JTkNMVURFX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0lO Q0xVREVESVJ9L2MrKy92MSIgQ0FDSEUgUEFUSAorIHNldChMSUJDWFhfSU5TVEFMTF9SVU5USU1F X0RJUiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iIENBQ0hFIFBBVEgKKyAgICAgIlBhdGggd2hl cmUgYnVpbHQgbGliYysrIHJ1bnRpbWUgbGlicmFyaWVzIHNob3VsZCBiZSBpbnN0YWxsZWQuIikK KyAKKy1pZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElSIEFORCBOT1QgQVBQTEUp CisraWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBBTkQgTk9UIEFQUExFIEFO RCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiTGludXgiKQorICAgc2V0KExJQkNYWF9M SUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElSfS8ke0xMVk1fREVGQVVMVF9U QVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJDWFhfR0VORVJBVEVEX0lOQ0xVREVfRElSICIke0xM Vk1fQklOQVJZX0RJUn0vaW5jbHVkZS9jKysvdjEiKQorICAgc2V0KExJQkNYWF9HRU5FUkFURURf SU5DTFVERV9UQVJHRVRfRElSICIke0xMVk1fQklOQVJZX0RJUn0vaW5jbHVkZS8ke0xMVk1fREVG QVVMVF9UQVJHRVRfVFJJUExFfS9jKysvdjEiKQorZGlmZiAtLWdpdCBhL2xpYmN4eC9iZW5jaG1h cmtzL0NNYWtlTGlzdHMudHh0IGIvbGliY3h4L2JlbmNobWFya3MvQ01ha2VMaXN0cy50eHQKK2lu ZGV4IDk1ZTI4NjE4Yi4uOTA2YWJkYjRlIDEwMDY0NAorLS0tIGEvbGliY3h4L2JlbmNobWFya3Mv Q01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9iZW5jaG1hcmtzL0NNYWtlTGlzdHMudHh0CitA QCAtMjYsNyArMjYsNyBAQCBzZXQoQkVOQ0hNQVJLX0xJQkNYWF9DT01QSUxFX0ZMQUdTCisgICAg IC1XbCwtcnBhdGgsJHtMSUJDWFhfTElCUkFSWV9ESVJ9CisgICAgICR7U0FOSVRJWkVSX0ZMQUdT fQorICAgICApCistaWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBBTkQgTk9U IEFQUExFKQorK2lmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRfUlVOVElNRV9ESVIgQU5EIE5PVCBB UFBMRSBBTkQgTk9UIENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkxpbnV4IikKKyAgIGxpc3Qo QVBQRU5EIEJFTkNITUFSS19MSUJDWFhfQ09NUElMRV9GTEFHUworICAgICAtaXN5c3RlbSAiJHtM SUJDWFhfR0VORVJBVEVEX0lOQ0xVREVfVEFSR0VUX0RJUn0iKQorIGVuZGlmKCkKK2RpZmYgLS1n aXQgYS9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQgYi9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQK K2luZGV4IDhlOGNkZjhhZC4uOTRlNjI1ZjQ0IDEwMDY0NAorLS0tIGEvbGliY3h4YWJpL0NNYWtl TGlzdHMudHh0CisrKysgYi9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQKK0BAIC0yMjYsNyArMjI2 LDcgQEAgc2V0KENNQUtFX01PRFVMRV9QQVRICisgc2V0KExJQkNYWEFCSV9JTlNUQUxMX1JVTlRJ TUVfRElSICIke0NNQUtFX0lOU1RBTExfQklORElSfSIgQ0FDSEUgUEFUSAorICAgICAiUGF0aCB3 aGVyZSBidWlsdCBsaWJjKythYmkgcnVudGltZSBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxl ZC4iKQorIAorLWlmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRfUlVOVElNRV9ESVIgQU5EIE5PVCBB UFBMRSkKKytpZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElSIEFORCBOT1QgQVBQ TEUgQU5EIE5PVCBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJMaW51eCIpCisgICBzZXQoTElC Q1hYQUJJX0hFQURFUl9ESVIgJHtMTFZNX0JJTkFSWV9ESVJ9KQorICAgc2V0KExJQkNYWEFCSV9M SUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElSfS8ke0xMVk1fREVGQVVMVF9U QVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJDWFhBQklfSU5TVEFMTF9MSUJSQVJZX0RJUiBsaWIk e0xMVk1fTElCRElSX1NVRkZJWH0vJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0gQ0FDSEUg UEFUSAorZGlmZiAtLWdpdCBhL2xpYnVud2luZC9DTWFrZUxpc3RzLnR4dCBiL2xpYnVud2luZC9D TWFrZUxpc3RzLnR4dAoraW5kZXggNjUyM2ZiMGQzLi5hNjNiODhmMzEgMTAwNjQ0CistLS0gYS9s aWJ1bndpbmQvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYnVud2luZC9DTWFrZUxpc3RzLnR4dAor QEAgLTE1OCw3ICsxNTgsNyBAQCBzZXQoTElCVU5XSU5EX0lOU1RBTExfSU5DTFVERV9ESVIgIiR7 Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfSIgQ0FDSEUgUEFUSAorIHNldChMSUJVTldJTkRfSU5T VEFMTF9SVU5USU1FX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iIENBQ0hFIFBBVEgKKyAg ICAgIlBhdGggd2hlcmUgYnVpbHQgbGlidW53aW5kIHJ1bnRpbWUgbGlicmFyaWVzIHNob3VsZCBi ZSBpbnN0YWxsZWQuIikKKyAKKy1pZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElS IEFORCBOT1QgQVBQTEUpCisraWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBB TkQgTk9UIEFQUExFIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiTGludXgiKQor ICAgc2V0KExJQlVOV0lORF9MSUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElS fS8ke0xMVk1fREVGQVVMVF9UQVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJVTldJTkRfSU5TVEFM TF9MSUJSQVJZX0RJUiBsaWIke0xMVk1fTElCRElSX1NVRkZJWH0vJHtMTFZNX0RFRkFVTFRfVEFS R0VUX1RSSVBMRX0gQ0FDSEUgUEFUSAorICAgICAgICJQYXRoIHdoZXJlIGJ1aWx0IGxpYnVud2lu ZCBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4iKQorLS0gCisyLjM1LjEKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpp bmRleCAzZTdlNmFiMmMwMGIuLjgxMDdjMWQzMzllMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZt MTQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKQEAgLTE1LDYgKzE1LDcg QEAgY29uZmlndXJlX2FyZ3M9IgogIC1ETElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9 WUVTCiAgLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1ZRVMKICAtRExJQk9NUF9JTlNUQUxMX0FMSUFT RVM9Tk8KKyAtRENPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX09OTFk9WUVTCiAgLURMTFZNX0lO Q0xVREVfRE9DUz1ZRVMKICAtRExMVk1fQlVJTERfRE9DUz1ZRVMKICAtRExMVk1fRU5BQkxFX1NQ SElOWD1ZRVMKQEAgLTM4LDYgKzM5LDcgQEAgZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v bGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnMKIGNoZWNr c3VtPTQ0ZDNlN2E3ODRkNWNmODA1ZTcyODUzYmIwM2YyMThiZDEwNThkNDQ4YzAzY2E4ODNkYWJi ZWJjOTkyMDRlMGMKIGxpYjMyZGlzYWJsZWQ9eWVzCiBweXRob25fdmVyc2lvbj0zCitub3BpZV9m aWxlcz0iL3Vzci9iaW4vbGx2bS1vbXAtZGV2aWNlLWluZm8iCiAKIGlmIFsgIiRYQlBTX1RBUkdF VF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFT X01VU0xfTElCQz1ZRVMiCkBAIC01MSw3ICs1Myw4IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1P RkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRy YTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCitfZW5hYmxlZF9w cm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7bGxkIgorX2VuYWJsZWRfcnVudGltZXM9 ImNvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kIgogCiBfbGxkYl9lbmFibGU9 eWVzCiBfbGlib21wX2VuYWJsZT1ubwpAQCAtNjcsOSArNzAsOCBAQCBlc2FjCiAKIHN1YnBhY2th Z2VzPSJjbGFuZy10b29scy1leHRyYSIKIAotIyBtdXN0IGdvIGJlZm9yZSBjbGFuZwogaWYgWyAi JF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQlfZW5hYmxlZF9wcm9qZWN0cys9Ijtv cGVubXAiCisJX2VuYWJsZWRfcnVudGltZXMrPSI7b3Blbm1wIgogCXN1YnBhY2thZ2VzKz0iIGxp Ym9tcCBsaWJvbXAtZGV2ZWwiCiAJIyBiZWNhdXNlIG9mIGNtYWtlIG5vbnNlbnNlIHJlZmVyZW5j aW5nIGxpYm9tcHRhcmdldC5zby4qCiAJZGVwZW5kcys9IiBsaWJvbXA+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCkBAIC04OCw2ICs5MCw3IEBAIGZpCiBzdWJwYWNrYWdlcys9IiBsbGQgbGxkLWRl dmVsIgogCiBjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJs ZWRfcHJvamVjdHN9IgorY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9SVU5USU1FUz0k e19lbmFibGVkX3J1bnRpbWVzfSIKIAogcG9zdF9wYXRjaCgpIHsKIAlpZiBbICIkX2xsZGJfZW5h YmxlIiA9ICJ5ZXMiIF07IHRoZW4KQEAgLTEzNSw4ICsxMzgsNyBAQCBwb3N0X3BhdGNoKCkgewog fQogCiBwcmVfY29uZmlndXJlKCkgewotCWxvY2FsIHRyaXBsZXQKLQorCWxvY2FsIHRyaXBsZXQ9 JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CiAJIyBWYXN0bHkgcmVkdWNlIHNp emUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CiAJQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8gLWcxfQogCUNY WEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CkBAIC0xNTYsNyArMTU4LDggQEAgcHJlX2NvbmZp Z3VyZSgpIHsKIAkJQ0M9IiRCVUlMRF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlM RF9DRkxBR1MiIFwKIAkJCUNYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlM RF9MREZMQUdTIiBcCiAJCQljbWFrZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBc Ci0JCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9CisJCQktRExM Vk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9IFwKKwkJCS1ETExWTV9FTkFC TEVfUlVOVElNRVM9JHtfZW5hYmxlZF9ydW50aW1lc30KIAkJbWFrZSAke21ha2Vqb2JzfSAtQyB1 dGlscy9UYWJsZUdlbgogCQltYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2NsYW5nL3V0aWxzL1Rh YmxlR2VuCiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBtYWtlICR7bWFrZWpvYnN9 IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KQEAgLTE3OCw4ICsxODEsNiBAQCBwcmVfY29u ZmlndXJlKCkgewogCQlyaXNjdjY0KikgX2FyY2g9IlJJU0NWNjQiOzsKIAllc2FjCiAKLQl0cmlw bGV0PSR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfQotCiAJY29uZmlndXJlX2Fy Z3MrPSIgLURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1E TExWTV9IT1NUX1RSSVBMRT0ke3RyaXBsZXR9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9E RUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0cmlwbGV0fSIKQEAgLTI0OSw3ICsyNTAsNyBAQCBjbGFu Zy10b29scy1leHRyYV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5 KiIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKIAkJdm1vdmUgInVzci9zaGFyZS9j bGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUg dXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nLXRvb2xzCiAJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9leHRyYWNsYW5ndG9vbHMuMQogCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wu MQogCX0KQEAgLTI3MSw3ICsyNzIsNyBAQCBjbGFuZ19wYWNrYWdlKCkgewogCQl2bW92ZSAidXNy L2xpYi9saWJjbGFuZyouYSIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgogCQl2bW92 ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL0xMVk0vY2xhbmcKIAkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5n LjEKIAl9CiB9CkBAIC0yOTksNyArMzAwLDcgQEAgbGxkX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVz ci9iaW4vd2FzbS1sZAogCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKIAkJdm1vdmUgdXNyL2Jpbi9s ZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9MTFZNL2xsZAogCX0KIH0KIApAQCAtMzUzLDcgKzM1NCw2IEBAIGxsdm0tbGlidW53aW5kLWRl dmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLmEKIAkJdm1vdmUgInVz ci9pbmNsdWRlLyp1bndpbmQqIgogCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KLQkJdm1vdmUg dXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKIAl9CiB9CiAKQEAgLTM4OSw3ICszODksNiBAQCBsaWJj eHgtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQogCQl2bW92ZSB1 c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCiAJCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2 bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAogCX0KIH0KIApAQCAtMzk5LDcgKzM5OCw2IEBAIGxp Ym9tcF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbwogCQl2bW92ZSAidXNy L2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNv Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28uKiIKIAl9CiB9CiAKQEAgLTQxMSw4ICs0MDks NiBAQCBsaWJvbXAtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvbGliYXJjaGVy KiIKIAkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKIAkJdm1vdmUgInVzci9saWIvY2xhbmcv JHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2xs dm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5tcAogCX0KIH0KIAoKRnJvbSAx MGVkZGNiNTRmNDU1ZTM1OGM0Yjc0ZWYyMTI0OGZhYzk4NjE4MzY0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0 ZTogTW9uLCAyIE1heSAyMDIyIDIxOjM2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yM10g bGx2bTEyOiBkcm9wIG5vbi1sbHZtIGNvbXBvbmVudHMKCi0tLQogLi4uY2xhbmctMDAxLWZpeC11 bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0IC0tLQogLi4uL3BhdGNoZXMvY2xhbmct MDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2ggIHwgMTEwIC0tLS0tLS0KIC4uLi9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyAtCiAuLi4vcGF0Y2hlcy9jbGFu Zy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCAgfCAgNDggLS0tCiAuLi4vY29tcGlsZXItcnQt YWFyY2g2NC11Y29udGV4dC5wYXRjaCAgICAgICAgfCAgMTEgLQogLi4uL2NvbXBpbGVyLXJ0LXNh bml0aXplci1wcGM2NC1tdXNsLnBhdGNoICAgIHwgIDM1IC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMv Y29tcGlsZXItcnQtc2l6ZV90LnBhdGNoICAgfCAgMTAgLQogLi4uL3BhdGNoZXMvY29tcGlsZXIt cnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyIC0tLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGliY3h4LW11c2wucGF0Y2ggICAgICB8ICAyNiAtLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoICAgICAgIHwgIDIyIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvbGli Y3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggfCAgMTEgLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHhhYmktZGwucGF0Y2ggICAgIHwgIDI1IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xp YnVud2luZC1wcGMzMi5wYXRjaCAgfCAgNjMgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvcHBjMzIt Y29tcGlsZXItcnQucGF0Y2ggICAgfCAgMjEgLS0KIHNyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0KIDE2IGZpbGVzIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA4MzIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBw YzY0LW11c2wtZWxmdjIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1t dXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21w aWxlci1ydC1zaXplX3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmkt ZGwucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVu d2luZC1wcGMzMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGxkYi1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZWFhNzc4M2U3YS4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQt Y2hhaW4taW5jbHVzaW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJv bSAzNTI5NzQxNjlmMGQyYjVkYTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgot RGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjE0OjU3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi83 XSBmaXggdW53aW5kIGNoYWluIGluY2x1c2lvbgotCi0tLS0KLSBsaWIvSGVhZGVycy91bndpbmQu aCB8IDkgKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIvbGliL0hlYWRl cnMvdW53aW5kLmgKLWluZGV4IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0Ci0tLS0gYS9jbGFuZy9s aWIvSGVhZGVycy91bndpbmQuaAotKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKLUBA IC05LDkgKzksNiBAQAotIAotIC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3Mi IGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCi0gCi0tI2lmbmRlZiBfX0NMQU5HX1VOV0lO RF9ICi0tI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0tCi0gI2lmIGRlZmluZWQoX19BUFBMRV9f KSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikKLSAvKiBEYXJ3aW4gKGZyb20gMTEu eCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKLSAgKiB1c2Ug aXQuIGxpYnVud2luZCB3cmFwcyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAjaWZkZWYgX0dO VV9TT1VSQ0UsCi1AQCAtMzksNiArMzYsOSBAQAotICMgZW5kaWYKLSAjZWxzZQotIAotKyNpZm5k ZWYgX19DTEFOR19VTldJTkRfSAotKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAotKwotICNpbmNs dWRlIDxzdGRpbnQuaD4KLSAKLSAjaWZkZWYgX19jcGx1c3BsdXMKLUBAIC0zMjIsNiArMzIyLDcg QEAgX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250 ZXh0ICopOwotIH0KLSAjZW5kaWYKLSAKLSsjZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwot KwotICNlbmRpZgotIAotLSNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0tLSAKLTIuNS4x CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wt dHJpcGxlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2ODhkNDBkYmMy Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRk LW11c2wtdHJpcGxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0tLS0g YS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAotKysrIGIvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKLUBAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVy aWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAot ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgt Z251ZWFiaWhmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNl LWxpbnV4LWdudWVhYmkifTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Ci0g ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKLSAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgt Z251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07Ci1AQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBH ZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhl cygKLSAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxp bnV4c3BlIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7 Ii9saWIzMiIsICIvbGliIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlw bGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGlu dXgtbXVzbCJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKLSAKLSAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKLUBAIC0yMjM1LDYgKzIyMzUsODcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKLSAgICAgcmV0dXJuOwotICAgfQotIAotKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlw bGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgImFybS1saW51eC1tdXNsZWFi aWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgotKyAgICB9OwotKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07 Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4 ODZfNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVz bFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKLSsgICAgICAgICJtaXBzLWxpbnV4LW11c2wi LCAibWlwc2VsLWxpbnV4LW11c2wiLAotKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAi bWlwcy1saW51eC1tdXNsaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4 LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Ci0r Ci0rICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgewotKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6YWFyY2g2NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGli RGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsg ICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFB cmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVh azsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKLSsgICAgICBpZiAoVGFyZ2V0VHJp cGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7Ci0rICAg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFS TUhGTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKLSsg ICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJE aXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBs ZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgotKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11 c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5h cHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsK LSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Ci0rICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011 c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6 Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBl bmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVz KSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKLSsgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7 Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVu ZChQUENMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o UFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11 c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRM aWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJp cGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxp YkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwotKyAgICAgIEJp YXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBD TEVNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIGJy ZWFrOwotKyAgICB9Ci0rICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5z dHIoKSk7Ci0rICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigp KQotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIo KSk7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsKLSAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQg bm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgotICAgaWYgKFRhcmdldFRyaXBs ZS5pc0FuZHJvaWQoKSkgewotICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFu ZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkNjQxMmQxZTZjLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0 aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLSBhL2NsYW5nL2xpYi9E cml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAKLUBAIC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4Ojpn ZXREeW5hbWljTGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAgICAgTG9hZGVy ID0gImxkLnNvLjEiOwotICAgICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoK LS0gICAgTGliRGlyID0gImxpYjY0IjsKLS0gICAgTG9hZGVyID0KLS0gICAgICAgICh0b29sczo6 cHBjOjpoYXNQUENBYmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5z by4xIjsKLS0gICAgYnJlYWs7Ci0gICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAg TGliRGlyID0gImxpYjY0IjsKLSAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAyMWZjODAwM2M1ZjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMv UFBDLmgKLSsrKyBiL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi1AQCAtNDE1LDExICs0 MTUsMTAgQEAgcHVibGljOgotICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBGbG9h dDo6SUVFRWRvdWJsZSgpOwotICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxs dm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKLSAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2NDo2 NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MiI7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAg RGF0YUxheW91dCA9ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkgPSAiZWxmdjEi OwotICAgICB9Ci0rICAgIEFCSSA9ICJlbGZ2MiI7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0Zy ZWVCU0QoKSB8fCBUcmlwbGUuaXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsKLSAg ICAgICBMb25nRG91YmxlV2lkdGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKLS0tLSBhL2NsYW5n L2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCi0rKysgYi9jbGFuZy9saWIvQ29kZUdlbi9UYXJn ZXRJbmZvLmNwcAotQEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdlbklu Zm8gJkNvZGVHZW5Nb2R1bGU6OmdldFRhcmdldENvZGVHZW5JbmZvKCkgewotICAgICAgIHJldHVy biBTZXRDR0luZm8obmV3IEFJWFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQqLyB0 cnVlKSk7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7Ci0tICAgICAg UFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVM RnYxOwotLSAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQotLSAgICAg ICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgUFBDNjRfU1ZSNF9B QklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOwotKyAgICAg IGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEiKQotKyAgICAgICAgS2luZCA9IFBQ QzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0gICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENvZGVH ZW5PcHRzLkZsb2F0QUJJID09ICJzb2Z0IjsKLSAKLSAgICAgICByZXR1cm4gU2V0Q0dJbmZvKAot LS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotKysrIGIvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotQEAgLTE5MjAsMTQgKzE5MjAsNyBAQCB2 b2lkIENsYW5nOjpBZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCi0gICBjb25z dCBsbHZtOjpUcmlwbGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKLSAgIGlmIChU LmlzT1NCaW5Gb3JtYXRFTEYoKSkgewotICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdldEFy Y2goKSkgewotLSAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKLS0gICAgICBpZiAoKFQu aXNPU0ZyZWVCU0QoKSAmJiBULmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0tICAgICAg ICAgIFQuaXNPU09wZW5CU0QoKSB8fCBULmlzTXVzbCgpKQotLSAgICAgICAgQUJJTmFtZSA9ICJl bGZ2MiI7Ci0tICAgICAgZWxzZQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7Ci0tICAgICAg YnJlYWs7Ci0tICAgIH0KLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotICAgICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLSAgICAg ICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQt YWFyY2g2NC11Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ODkzYzA1OWQ3YjhkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC1hYXJjaDY0LXVjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEg KzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVy X2xpbnV4LmNwcC5vcmlnCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfbGludXguY3BwCi1AQCAtMTc5OSw3ICsxNzk5LDcgQEAKLSAKLSBzdGF0aWMgYm9v bCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikgewotICAgc3Rh dGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOwotLSAgdTggKmF1eCA9IHVjb250 ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOwotKyAgdTggKmF1eCA9IHJlaW50ZXJwcmV0X2Nh c3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOwotICAgd2hpbGUgKHRy dWUpIHsKLSAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICopYXV4OwotICAg ICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZjE2ZDI0ZjM0MC4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11 c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0gYS9jb21waWxlci1y dC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi0rKysgYi9jb21waWxl ci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtNzQsNiAr NzQsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSAjZW5kaWYKLSAKLSsjaWYgU0FO SVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18pCi0rI2luY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KLSsjZW5kaWYKLSsKLSAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5E Uk9JRAotICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4KLSAjZW5kaWYKLS0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9z aXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJf cGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAotQEAgLTkyLDcgKzkyLDcgQEAKLSAjIGluY2x1ZGUg PHV0aW1lLmg+Ci0gIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmluZWQoX19taXBz NjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICBTQU5JVElaRVJfUklTQ1Y2NAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVEla RVJfUklTQ1Y2NAotICMgIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjICBpZmRlZiBfX2FybV9f Ci0gdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7Ci0tLS0gYS9jb21w aWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4 X2xpYmNkZXAuY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5p dGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi1AQCAtMzEsNyArMzEsNyBAQAot ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9yIHBpZF90Ci0gI2luY2x1ZGUgPHN5cy91aW8u aD4gLy8gZm9yIGlvdmVjCi0gI2luY2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKLS0j aWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJ WkVSX0FORFJPSUQKLSsjaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSAvLyBH TElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2UuaAotICMgaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NvbXBpbGVyLXJ0LXNpemVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MmM2MzA2M2E1ZTllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC1zaXplX3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0t LS0gYS9jb21waWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAub3JpZwot KysrIGIvY29tcGlsZXItcnQvbGliL2Z1enplci9GdXp6ZXJJbnRlcmNlcHRvcnMuY3BwCi1AQCAt MjUsNiArMjUsNyBAQAotICAgfQotIAotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRlIDxj c3RkZGVmPgotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxkbGZjbi5oPiAvLyBmb3Ig ZGxzeW0oKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC14cmF5LXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVy LXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZDBiNjFjODBjODk3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiAr MCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKLSsr KyBiL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotQEAgLTEyLDcgKzEy LDEzIEBACi0gCi0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG11dGV4PgotKyNpZmRl ZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgotKyNlbHNlCi0rI2lu Y2x1ZGUgPGNjdHlwZT4KLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4K LSsjZW5kaWYKLSAKLSAjaW5jbHVkZSAieHJheV9kZWZzLmgiCi0gCi1AQCAtMjAsMTMgKzI2LDQ1 IEBAIG5hbWVzcGFjZSBfX3hyYXkgewotIAotIEFMV0FZU19JTkxJTkUgdWludDY0X3QgcmVhZFRT Qyh1aW50OF90ICZDUFUpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBDUFUgPSAwOwotKyNp ZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZWxzZQot KyAgcmV0dXJuIF9fYnVpbHRpbl9wcGNfZ2V0X3RpbWViYXNlKCk7Ci0rI2VuZGlmCi0gfQotIAot IGlubGluZSB1aW50NjRfdCBnZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQg ewotICAgc3RhdGljIHN0ZDo6bXV0ZXggTTsKLSAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4 PiBHdWFyZChNKTsKLSsjaWZkZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNfZ2V0X3RpbWVi YXNlX2ZyZXEoKTsKLSsjZWxzZQotKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBpbXBsZW1lbnRh dGlvbj8gKi8KLSsgIHN0YXRpYyB1aW50NjRfdCBiYXNlOwotKyAgaWYgKCFiYXNlKSB7Ci0rICAg IEZJTEUgKmYgPSBmb3BlbigiL3Byb2MvY3B1aW5mbyIsICJyYiIpOwotKyAgICBpZiAoZikgewot KyAgICAgIHNzaXplX3QgbnI7Ci0rICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBiaWcgZW5vdWdo IHRvIGhvbGQgdGhlIGxpbmUgKi8KLSsgICAgICBjaGFyIGJ1Zls1MTJdOwotKyAgICAgIHdoaWxl IChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkgewotKyAgICAgICAgY2hhciAqcmV0ID0gc3Ry c3RyKGJ1ZiwgInRpbWViYXNlIik7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAgICAgICAgICBj b250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldCArPSBzaXplb2YoInRpbWViYXNlIikg LSAxOwotKyAgICAgICAgcmV0ID0gc3RyY2hyKHJldCwgJzonKTsKLSsgICAgICAgIGlmICghcmV0 KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgYmFzZSA9IHN0 cnRvdWwocmV0ICsgMSwgbnVsbHB0ciwgMTApOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQot KyAgICAgIGZjbG9zZShmKTsKLSsgICAgfQotKyAgfQotKyAgcmV0dXJuIGJhc2U7Ci0rI2VuZGlm Ci0gfQotIAotIGlubGluZSBib29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygpIFhSQVlfTkVW RVJfSU5TVFJVTUVOVCB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4 eC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkMzFmZmMyY2IxLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQotKysrIGIv bGliY3h4L2luY2x1ZGUvbG9jYWxlCi1AQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2ln bmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKLSAgICAg ICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3Nh dmVfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAgIGNoYXIgKl9f cDI7Ci0rI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCi0rICAg ICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxz ZQotICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNl LCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBlbmFtZSByZW1v dmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJy bm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAgICAgICAgZXJy bm8gPSBfX3NhdmVfZXJybm87Ci1AQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWdu ZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAg ICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2 ZV9lcnJubyA9IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19w MjsKLSsjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAg ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNl KTsKLSsjZWxzZQotICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9s KF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNlbmRpZgotICAg ICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9f Y3VycmVudF9lcnJubyA9IGVycm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAw KQotICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTkyZjgw MDRlMWMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIGVuc3VyZXMgYGlz X2llYzU1OWAgaXMgZGVmaW5lZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMs Ci1pbmNsdWRpbmcgbXVzbCBhbmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBj X19gIG9yIGBfX3BwYzY0X19gCi1pcyBub3QgZGVmaW5lZCBvbiBnY2MuCi0KLS0tLSBhL2xpYmN4 eC9pbmNsdWRlL2xpbWl0cwotKysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCi1AQCAtNDI2LDgg KzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3Rh dGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0 dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7fQotICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZ IHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3Jl dHVybiBfX0xEQkxfREVOT1JNX01JTl9fO30KLSAKLS0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9f KSB8fCAoX19MREJMX01BTlRfRElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKLSsgICAgLyogSUVF RSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJsZSBwcmVjaXNpb24gKi8KLSsgICAgc3RhdGljIF9MSUJD UFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSsjZWxzZQotKyAgICAv KiAxMjgtYml0IElCTSBkb3VibGUtZG91YmxlICovCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNU RVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IGZhbHNlOwotKyNlbmRpZgotICNlbHNlCi0gICAg IHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7Ci0g I2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9u c2hhcmVkLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJl ZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAyOTJiZWIyZmNkLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJl ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmN4eC9DTWFr ZUxpc3RzLnR4dAotKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzY5LDYgKzc2OSw4 IEBAIGZ1bmN0aW9uKGN4eF9saW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQotICAgICB0YXJn ZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQotICAgZW5kaWYoKQot IAotKyNzc3AgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9u c2hhcmVkKQotKwotICAgaWYgKE1JTkdXKQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0 YXJnZXR9IFBSSVZBVEUgIiR7TUlOR1dfTElCUkFSSUVTfSIpCi0gICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzYTE1ZjlkYjhjOTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAK LUFsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCi0KLS0t LSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eGFiaS9zcmMvQ01h a2VMaXN0cy50eHQKLUBAIC03Myw2ICs3Myw3IEBACi0gICBlbmRpZigpCi0gCi0gICBhZGRfbGli cmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCi0rICBhZGRfbGlicmFyeV9mbGFn c19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQotIGVuZGlmKCkKLSAKLSBpZiAoTElCQ1hYQUJJ X1VTRV9MTFZNX1VOV0lOREVSKQotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci0rKysgYi9s aWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NDUsNiArNzQ1LDEwIEBACi0gICAgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQotICAgZW5kaWYoKQotIAotKyAgaWYg KExJQkNYWF9IQVNfQ19MSUIpCi0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0g UFJJVkFURSBkbCkKLSsgIGVuZGlmKCkKLSsKLSAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikKLSAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQotICAgZW5kaWYo KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhYTc1NzZlY2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2MyArMCwwIEBACi1UaGlzIGZpeGVzIGJ1aWxkIGF0IGxlYXN0IHdpdGggZ2NjOSB3 aGljaCBkb2VzIG5vdCBkZWZpbmUgYF9fcHBjX19gLgotCi0tLS0gYS9saWJ1bndpbmQvaW5jbHVk ZS9fX2xpYnVud2luZF9jb25maWcuaAotKysrIGIvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndp bmRfY29uZmlnLmgKLUBAIC00OSw3ICs0OSw3IEBACi0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09O VEVYVF9TSVpFIDE2NwotICMgIGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDE3OQotICMg IGRlZmluZSBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZfUkVHSVNURVIgX0xJQlVOV0lORF9ISUdI RVNUX0RXQVJGX1JFR0lTVEVSX1BQQzY0Ci0tIyBlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjIGVs aWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9UQVJHRVRfUFBD IDEKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUgMTE3Ci0gIyAgZGVmaW5lIF9M SUJVTldJTkRfQ1VSU09SX1NJWkUgMTI0Ci0tLS0gYS9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lz dGVyc1Jlc3RvcmUuUwotKysrIGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3Jl LlMKLUBAIC0zOTIsNyArMzkyLDcgQEAgTG5vdmVjOgotICAgUFBDNjRfTFIoMykKLSAgIGJjdHIK LSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykK LSAKLSBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9aTjlsaWJ1bndpbmQxM1JlZ2lzdGVyc19w cGM2anVtcHRvRXYpCi0gLy8KLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2 ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwotQEAgLTU1NCw3 ICs1NTQsNyBAQCBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9fdW53X2dldGNvbnRleHQpCi0g ICBibHIKLSAKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGNfXykKLSAKLSAvLwotIC8vIGV4dGVybiBpbnQgdW53X2dldGNvbnRleHQodW53X2NvbnRl eHRfdCogdGhyZWFkX3N0YXRlKQotLS0tIGEvbGlidW53aW5kL3NyYy9jb25maWcuaAotKysrIGIv bGlidW53aW5kL3NyYy9jb25maWcuaAotQEAgLTk1LDEyICs5NSwxMiBAQAotICNkZWZpbmUgX0xJ QlVOV0lORF9CVUlMRF9TSkxKX0FQSVMKLSAjZW5kaWYKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICNkZWZpbmUgX0xJQlVOV0lORF9TVVBQT1JUX0ZSQU1FX0FQ SVMKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgICBkZWZpbmVkKF9f cHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8 ICAgICAgICBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgKCFkZWZpbmVkKF9fQVBQ TEVfXykgJiYgZGVmaW5lZChfX2FybV9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICAoZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pKSB8 fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIGRlZmluZWQoX19taXBzX18pCi0t LS0gYS9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKLSsrKyBiL2xpYnVud2luZC9zcmMvbGli dW53aW5kLmNwcAotQEAgLTQyLDcgKzQyLDcgQEAgX0xJQlVOV0lORF9ISURERU4gaW50IF9fdW53 X2luaXRfbG9jYWwodW53X2N1cnNvcl90ICpjdXJzb3IsCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lO RCBSZWdpc3RlcnNfeDg2XzY0Ci0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICMgZGVm aW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYzY0Ci0tI2VsaWYgZGVmaW5lZChfX3BwY19f KQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBS ZWdpc3RlcnNfcHBjCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAjIGRlZmluZSBSRUdJ U1RFUl9LSU5EIFJlZ2lzdGVyc19hcm02NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAxYzBkMTM4NTIzLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0tLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nl c3MvTGludXgvUHJvY2ZzLmgKLSsrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51 eC9Qcm9jZnMuaAotQEAgLTEwLDIxICsxMCwxMiBAQAotIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRy b2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCi0gCi0gI2luY2x1ZGUg PHN5cy9wdHJhY2UuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotLSNpZmRlZiBfX0FO RFJPSURfXwotLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykK LS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsKLS10eXBlZGVmIGVsZl9ncmVnX3QK LS0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9m KGVsZl9ncmVnX3QpKV07Ci0tdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2Zw cmVnc2V0X3Q7Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRf UFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbGlmIGRlZmluZWQoX19taXBzX18p Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwot LSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbmRpZgotLSNlbHNlIC8vIF9fQU5EUk9JRF9fCi0r I2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjZGVmaW5l IHB0X3JlZ3MgbXVzbF9wdF9yZWdzCi0rI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLSsjdW5kZWYg cHRfcmVncwotKyNlbHNlCi0gI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLS0jZW5kaWYgLy8gX19B TkRST0lEX18KLSsjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBj MzItY29tcGlsZXItcnQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBp bGVyLXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBhOWE3NzlkMWIu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVy LXJ0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotY29tbWl0IGJhNGVkZTU5 NWZmOTU5OTIzMmY1ZGQyYjQzODRjMjQzMTM3YjUzZmMKLUF1dGhvcjogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSAr MDIwMAotCi0gICAgZW5hYmxlIGNvbXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCi0KLWRpZmYg LS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVy LXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1pbmRleCAxZWRhYjQzLi41YzBjOGEyIDEw MDY0NAotLS0tIGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLSsrKyBi L2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1AQCAtMTgyLDkgKzE4Miw3 IEBAIG1hY3JvKHRlc3RfdGFyZ2V0cykKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFV TFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjNjRsZSIpCi0gICAgICAgdGVzdF90YXJn ZXRfYXJjaChwb3dlcnBjNjRsZSAiIiAiLW02NCIpCi0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9S VF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93ZXJwYyIpCi0tICAgICAgaWYoQ01B S0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiQUlYIikKLS0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2go cG93ZXJwYyAiIiAiLW0zMiIpCi0tICAgICAgZW5kaWYoKQotKyAgICAgIHRlc3RfdGFyZ2V0X2Fy Y2gocG93ZXJwYyAiIiAiLW0zMiIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQg IiIgIi1tNjQiKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJD SH0iIE1BVENIRVMgInMzOTB4IikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIi KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMi90 ZW1wbGF0ZQppbmRleCA3Y2UxODAyOGU0YTMuLjdiMzYxYmJiZjViYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9sbHZtMTIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKQEAgLTEs MjUgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25hbWU9bGx2bTEy CiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJsbHZtLXBy b2plY3QtJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSIKICAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRl dgogIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAtRExMREJfVVNFX1NZU1RFTV9TSVg9 WUVTCi0gLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKLSAtRExJQkNYWF9FTkFCTEVfU1RBVElD X0FCSV9MSUJSQVJZPVlFUwotIC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUwotIC1E TElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVTCi0gLURMSUJPTVBfRU5BQkxFX1NI QVJFRD1ZRVMKLSAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9Tk8KICAtRExMVk1fSU5DTFVERV9E T0NTPVlFUwogIC1ETExWTV9CVUlMRF9ET0NTPVlFUwogIC1ETExWTV9FTkFCTEVfU1BISU5YPVlF UwogIC1EU1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9JTlNUQUxMX1VUSUxT PVlFUwogIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUwogIC1ETExWTV9MSU5LX0xMVk1fRFlM SUI9WUVTCiAgLURMTFZNX0VOQUJMRV9SVFRJPVlFUwpAQCAtNTEsODcgKzQzLDEwIEBAIGNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xB TkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFu ZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2lu ZDtsbGQiCi0KLV9sbGRiX2VuYWJsZT15ZXMKLV9saWJvbXBfZW5hYmxlPW5vCi0KLWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyp8aTY4NiopIF9sbGRi X2VuYWJsZT1ubyA7OwotZXNhYwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4 ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKLWVzYWMKLQotc3Vi cGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgotCi0jIG11c3QgZ28gYmVmb3JlIGNsYW5nCi1p ZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgotCV9lbmFibGVkX3Byb2plY3Rz Kz0iO29wZW5tcCIKLQlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgotCSMgYmVj YXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgotCWRl cGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotZmkKLQotc3VicGFja2Fn ZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCi0gbGx2bS1s aWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAotIGxpYmN4 eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTEyIgotCi1pZiBbICIkX2xsZGJfZW5hYmxlIiA9 ICJ5ZXMiIF07IHRoZW4KLQkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRo b24KLQlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgotCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxk Yi1kZXZlbCIKLWZpCi0KLXN1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCi0KLWNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCi0K IHBvc3RfcGF0Y2goKSB7Ci0JaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0J CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JCQl2c2VkIC1pICdz fF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKLQkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1 Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKLQkJZmkKLQkJIyBkaXNh YmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCi0JCXZzZWQgLWkgJy9h ZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKLQkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMu dHh0Ci0JZmkKLQogCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRl dGVjdGlvbgogCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21h a2UvY29uZmlnLmd1ZXNzIFwKIAkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLQotCSMgZml4IGxpbmtl ciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0 cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAotCQkke3dya3Ny Y30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCXZzZWQgLWkgJ3MsY2hlY2tfbGli cmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAotCQkk e3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCi0JIyBuZWVkIGxpYnNz cF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRs aWJzKQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCXBw YyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKLQkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxh Z3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKLQkJCQkke3dya3NyY30v bGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFn cy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9s aWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtz cmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQllc2FjCi0KLQljYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KLQkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVu dGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQotCQkJdnNlZCAtaSAncywj IFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5L X0xJQlMgZXhlY2luZm8pLCcgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3Rz LnR4dAotCQkJOzsKLQkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBi cm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cwotCQkJdnNlZCAtaSAncy9z ZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JU X0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKLQkJCQkke3dya3NyY30vY29tcGlsZXIt cnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JCQk7OwotCWVzYWMKIH0KIAogcHJlX2NvbmZpZ3Vy ZSgpIHsKQEAgLTE1OCwxMCArNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4v Li4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNU Uz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxl R2VuCi0JCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJ WyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMv bGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49 JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCWNvbmZpZ3VyZV9h cmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xh bmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2Fy Z3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGIt dGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0yMDIsMjE4ICsxMTUsNiBAQCBkb19pbnN0YWxs KCkgewogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCQlybSAtZiAke0RFU1RESVJ9L3Vz ci9iaW4vbGx2bS1jb25maWctaG9zdAogCWZpCi0KLQkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRl cnMKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmln LmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRl L2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQotCi0JIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJz Ci0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZp Zy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53 aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9 L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKLQkJ NjQ0IHVzci9pbmNsdWRlL21hY2gtbwotfQotCi1jbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgewot CXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgotCWRlcGVuZHM9ImNsYW5nLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgotCXNob3J0X2Rlc2MrPSIgLSBBIHNv dXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1h bmFseXplci5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9zY2FuLWJ1aWxkLjEKLQkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIKLQkJdm1vdmUg Ii91c3Ivc2hhcmUvc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKLQl9 Ci19Ci0KLWNsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMK LQlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCi0Jc2hvcnRf ZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxs dm0ub3JnL2V4dHJhLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xh bmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cwotCQl2bW92 ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5Ci0JCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCi0JCXZt b3ZlIHVzci9iaW4vY2xhbmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCi0JCXZtb3Zl IHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwotCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCi0JCXZt b3ZlIHVzci9iaW4vbW9kdWxhcml6ZQotCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCi0JCXZtb3Zl IHVzci9iaW4vc2FuY292Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVu dHMqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUgInVzci9saWIv bGliY2xhbmdUaWR5KiIKLQkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3Zl IHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4 dHJhY2xhbmd0b29scy4xCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCi0J fQotfQotCi1jbGFuZ19wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0i bGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJD fS1kZXZlbAotCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2Mr PSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFu Zy5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5n Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKLQkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIK LQkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKLQkJdm1vdmUgdXNyL2xpYi9jbGFuZwotCQl2 bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgot CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS9jbGFuZwot CQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9j bGFuZy4xCi0JfQotfQotCi1saWJjbGFuZ19wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD IGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVz ci9saWIvbGliY2xhbmcuc28uKiIKLQl9Ci19Ci0KLWxpYmNsYW5nLWNwcF9wYWNrYWdlKCkgewot CXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFj ZSkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4q IgotCX0KLX0KLQotbGxkX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlzaG9ydF9k ZXNjKz0iIC0gbGlua2VyIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi9sbGQqCi0JCXZtb3ZlIHVzci9iaW4vd2FzbS1s ZAotCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKLQkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJ dm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKLQl9Ci19Ci0KLWxsZC1kZXZlbF9wYWNrYWdlKCkgewot CWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50 IGZpbGVzIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlkZXBlbmRzPSJsbGQ+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9p bmNsdWRlL2xsZAotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAotCQl2bW92ZSAidXNyL2xpYi9s aWJsbGQqYSIKLQl9Ci19Ci0KLWxsZGJfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwot CWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIi Ci0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0J CXZtb3ZlIHVzci9iaW4vKmxsZGIqCi0JCXZtb3ZlIHVzci9saWIvbGlibGxkYipzby4qCi0JCXZt b3ZlIC91c3IvbGliL3B5dGhvbioKLQl9Ci19Ci0KLWxsZGItZGV2ZWxfcGFja2FnZSgpIHsKLQls aWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlw a2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgotCQl2bW92ZSAidXNyL2xp Yi9saWJsbGRiKi5zbyIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9s aWIvbGlidW53aW5kLnNvLioiCi0JfQotfQotCi1sbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdl KCkgewotCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlk ZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQljb25mbGlj dHM9ImxpYnVud2luZC1kZXZlbD49MCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xp Yi9saWJ1bndpbmQuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQotCQl2bW92ZSAidXNy L2luY2x1ZGUvKnVud2luZCoiCi0JCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbwotCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL2xpYnVud2luZAotCX0KLX0KLQotbGliY3h4YWJpX3BhY2thZ2UoKSB7Ci0J c2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgotCX0KLX0KLQotbGliY3h4 YWJpLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0 IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIv bGliYysrYWJpLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEKLQkJdm1vdmUgInVzci9p bmNsdWRlLypjeHhhYmkqIgotCX0KLX0KLQotbGliY3h4X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAi dXNyL2xpYi9saWJjKysuc28uKiIKLQl9Ci19Ci0KLWxpYmN4eC1kZXZlbF9wYWNrYWdlKCkgewot CXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVz IgotCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFs bCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKysu YQotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCi0JCXZtb3ZlIHVzci9pbmNs dWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAotCX0KLX0KLQotbGlib21wX3Bh Y2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnki Ci0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKLQkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIu c28KLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgotCX0KLX0KLQotbGlib21wLWRldmVs X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJh cnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28i Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAq LmgiCi0JCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCi0J CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1wLjEKLQkJdm1vdmUgdXNyL3NoYXJl L2RvYy9vcGVubXAKLQl9CiB9CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewoKRnJvbSBlOTljOWNl ZmRjZDg5MmM2OGRlOGIzOGFkMmM2YzIzNmRlZmFmMzYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2Vk LCA0IE1heSAyMDIyIDE0OjAwOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yM10gTmV3IHBh Y2thZ2VzOiBjbGFuZzEyLCBsaWJjbGFuZzEyLCBsaWJjbGFuZzEyLWNwcCwKIGxsZDEyLCBsbGQx Mi1kZXZlbC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyY3BrZ3MvY2xhbmcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmNwa2dzL2xpYmNsYW5nMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjcGtncy9saWJjbGFuZzEyLWNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyY3BrZ3MvbGxkMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmNwa2dzL2xsZDEyLWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0ICsr KysrKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDEx MCArKysrKysrKysrKysrKysrKysKIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXIt cGF0aC5wYXRjaCB8ICAxMyArKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVs ZnYyLnBhdGNoICB8ICA0OCArKysrKysrKwogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgICAgIHwgIDcxICsrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyOTMg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvY2xhbmcxMgogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3Br Z3MvbGliY2xhbmcxMi1jcHAKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xsZDEyCiBjcmVh dGUgbW9kZSAxMjAwMDAgc3JjcGtncy9sbGQxMi1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9u LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0w MDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1t dXNsLWVsZnYyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxp YnMKaW5kZXggOTE4MGM2OGQ4NDE5Li4zMzMzNzQwYjI4ODEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTczLDYgKzk3Myw4IEBAIGxpYnVjaGFyZGV0 LnNvLjAgdWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3Nv dXJjZXZpZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNl LnNvLjIgY29uZnVzZS0zLjIuMV8xCitsaWJjbGFuZy5zby4xMiBsaWJjbGFuZzEyLTEyLjAuMF8x CitsaWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmcxMi1jcHAtMTIuMC4wXzEKIGxpYmxsZGIuc28u MTQgbGxkYi0xNC4wLjNfMQogbGliY2xhbmcuc28uMTMgbGliY2xhbmctMTQuMC4zXzEKIGxpYmNs YW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAtMTQuMC4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2xhbmcxMiBiL3NyY3BrZ3MvY2xhbmcxMgpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAw MDAwMDAwMDAuLmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2xhbmcx MgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYmNsYW5nMTIgYi9zcmNwa2dzL2xpYmNsYW5nMTIKbmV3IGZpbGUg bW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpYmNsYW5nMTIKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZzEyLWNwcCBi L3NyY3BrZ3MvbGliY2xhbmcxMi1jcHAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAw MDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmNsYW5n MTItY3BwCkBAIC0wLDAgKzEgQEAKK2xsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkMTIgYi9zcmNwa2dzL2xsZDEyCm5ldyBmaWxlIG1vZGUg MTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uY2Q2MGZkN2E5ODFiCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9sbGQxMgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZDEyLWRldmVsIGIvc3JjcGtncy9sbGQx Mi1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdh OTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGxkMTItZGV2ZWwKQEAgLTAsMCArMSBA QAorbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWlu Y2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0 ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xh bmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAK K0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNv bT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVjdDogW1BBVENI IDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hlYWRlcnMvdW53 aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9I ZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAorLS0tIGEvY2xh bmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5nL2xpYi9IZWFkZXJzL3Vud2luZC5o CitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdj Y19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYgX19DTEFOR19V TldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZpbmVkKF9fQVBQ TEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFyd2luIChmcm9t IDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCisgICog dXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVm IF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vsc2UKKyAKKysj aWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKysKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAtMzIyLDYgKzMy Miw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRf Q29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0gg Ki8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLworLS0gCisy LjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11 c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1t dXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTEwIEBACistLS0g YS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVy aWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAor ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgt Z251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNl LWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Cisg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKKyAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgt Z251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBH ZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhl cygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxp bnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7 Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlw bGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGlu dXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAKKyAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKKyAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKK0BAIC0yMjM1LDYgKzIyMzUsODcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAorKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlw bGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFi aWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07 CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4 ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVz bFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wi LCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAi bWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4 LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Cisr CisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGli RGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysg ICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFB cmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJp cGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFS TUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysg ICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJE aXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBs ZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5h cHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6 CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBl bmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVz KSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7 CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVu ZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o UFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRM aWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJp cGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxp YkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJp YXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBD TEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5z dHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigp KQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIo KSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQg bm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBs ZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFu ZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRhZDY0MTJkMWU2YwotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMt bGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZl ci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5z L0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5 bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAi bGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAg ICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6 Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEi OworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJE aXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNo CkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisr KysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBA IHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVk b3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlw bGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0 IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlv dXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAg fQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkg fHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9u Z0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29k ZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5j cHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2Rl R2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJ bmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOwor IAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NW UjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0g ICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQg PSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6 QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0 VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0 X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5G bG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2 ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFu Zzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6 VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmlu Rm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsK Ky0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVl QlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlz T1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwor LSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOwor LSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpU cmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3Rl bXBsYXRlCmluZGV4IDdiMzYxYmJiZjViYy4uMjc0YjU3MTgzNjU0IDEwMDY0NAotLS0gYS9zcmNw a2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtNDMs NiArNDMsMTIgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAorX2VuYWJs ZWRfcHJvamVjdHM9ImNsYW5nO2xsZCIKKworc3VicGFja2FnZXMrPSIgY2xhbmcxMiBsaWJjbGFu ZzEyIGxpYmNsYW5nMTItY3BwIGxpYmxsdm0xMiBsbGQxMiBsbGQxMi1kZXZlbCIKKworY29uZmln dXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIK KwogcG9zdF9wYXRjaCgpIHsKIAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRlciBwbGF0 Zm9ybSBkZXRlY3Rpb24KIAljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29uZmlndXJl L2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCkBAIC03Myw4ICs3OSwxMCBAQCBwcmVfY29uZmlndXJl KCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURM TFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpv YnN9IC1DIHV0aWxzL1RhYmxlR2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcv dXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHtt YWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9 IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10Ymxn ZW4iCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0v YnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMi IF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1 aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0xMTcsNiArMTI1 LDY5IEBAIGRvX2luc3RhbGwoKSB7CiAJZmkKIH0KIAorY2xhbmcxMl9wYWNrYWdlKCkgeworCWNv bmZsaWN0cz0iY2xhbmciCisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCisJ IGxpYmNsYW5nMTItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBs YW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5v cmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92 ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3Zl IHVzci9iaW4vYy1pbmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNy L2xpYi9jbWFrZS9jbGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUg InVzci9saWIvbGliY2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUg dXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQor CX0KK30KKworbGliY2xhbmcxMl9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250 ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIv bGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nMTItY3BwX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCisJ fQorfQorCitsbGQxMl9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkIgorCWxpYjMyZGlzYWJs ZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKKwlob21lcGFnZT0iaHR0cHM6Ly9sbGQu bGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vbGxkKgorCQl2bW92 ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCisJCXZtb3ZlIHVzci9i aW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGxkCisJfQorfQorCitsbGQxMi1k ZXZlbF9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkLWRldmVsIgorCWxpYjMyZGlzYWJsZWQ9 eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVw YWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQxMj49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCisJ CXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0K K30KKwogbGlibGx2bTEyX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGli cmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKCkZyb20gNDczMjI1YzU4MmQzMDU1MzljYjFlYThjNzQ4 MDhkMGJiNjU0ZDY1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBu YXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzo0 MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjNdIGNocm9taXVtOiB1cGRhdGUgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggZmU0 MDBiNzRjMTI5Li42MGI2ZjVjZDM4MjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBr Z25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHBzOi8vY2hyb21pdW1kYXNoLmFwcHNwb3QuY29tL3Jl bGVhc2VzP3BsYXRmb3JtPUxpbnV4IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24KIHZlcnNpb249MTAy LjAuNTAwNS42MQotcmV2aXNpb249MQorcmV2aXNpb249MgogYXJjaHM9Imk2ODYqIHg4Nl82NCog YWFyY2g2NCogYXJtdjdsKiBwcGM2NGxlKiIKIHNob3J0X2Rlc2M9Ikdvb2dsZSdzIGF0dGVtcHQg YXQgY3JlYXRpbmcgYSBzYWZlciwgZmFzdGVyLCBhbmQgbW9yZSBzdGFibGUgYnJvd3NlciIKIG1h aW50YWluZXI9IkR1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0yMCw3ICsyMCw3 IEBAIGRlc2Nfb3B0aW9uX2RlYnVnPSJCdWlsZCB3aXRoIGRlYnVnIHN5bWJvbHMiCiBkZXNjX29w dGlvbl9qc19vcHRpbWl6ZT0iT3B0aW1pemUgdGhlIEpTIHVzZWQgZm9yIENocm9taXVtJ3MgVUki CiBkZXNjX29wdGlvbl9waXBld2lyZT0iRW5hYmxlIHN1cHBvcnQgZm9yIHNjcmVlbiBzaGFyaW5n IGZvciBXZWJSVEMgdmlhIFBpcGVXaXJlIgogCi1ob3N0bWFrZWRlcGVuZHM9IiQodm9wdF9pZiBj bGFuZyAiY2xhbmcgbGxkIGxsdm0xMiIpIHB5dGhvbiBweXRob24zIHBrZ2NvbmYgcGVybCBncGVy ZiBiaXNvbiBuaW5qYSBub2RlanMgaHdpZHMKK2hvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNs YW5nICJjbGFuZyBsbGQgbGx2bTE0IikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJsIGdwZXJm IGJpc29uIG5pbmphIG5vZGVqcyBod2lkcwogIGxpYmF0b21pYy1kZXZlbCBsaWJldmVudC1kZXZl bCBsaWJnbGliLWRldmVsICQodm9wdF9pZiBqc19vcHRpbWl6ZSBvcGVuamRrKSB3YXlsYW5kLWRl dmVsIGxpYmVwb3h5LWRldmVsIGdpdCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1k ZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwKICBsaWJYaS1kZXZlbCBs aWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5cmluZy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxz LWRldmVsCkBAIC0yNjcsNyArMjY3LDcgQEAgZG9fY29uZmlndXJlKCkgewogCiAJCSdpc19vZmZp Y2lhbF9idWlsZD10cnVlJwogCi0JCSMgc2VnZmF1bHRzIHdpdGggbGx2bS0xMi4wLjEKKwkJIyBk aXNhYmxlZCBkdWUgdG8gY29uc3RyYWluZWQgcmVzb3VyY2VzCiAJCSdpc19jZmk9ZmFsc2UnCiAJ CSd1c2VfdGhpbl9sdG89ZmFsc2UnCiAJCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwoKRnJvbSA3YzNk ZjI0ZDVlYTRkYmFiYzBjMjdjNGRiNTNmNjFkNWVlMWU5NzI5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTog TW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yM10gZ2hk bDogdXBkYXRlIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9naGRsL3BhdGNoZXMve2xsdm0xMi5w YXRjaCA9PiBsbHZtLnBhdGNofSB8IDIgKysKIHNyY3BrZ3MvZ2hkbC90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogcmVuYW1lIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL3tsbHZtMTIu cGF0Y2ggPT4gbGx2bS5wYXRjaH0gKDgyJSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2doZGwvcGF0 Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtLnBhdGNoCnNpbWls YXJpdHkgaW5kZXggODIlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0xMi5w YXRjaApyZW5hbWUgdG8gc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bS5wYXRjaAppbmRleCA4ZDJm NzZiZmRhMDYuLjkyMDE4MTZhZTA1MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9naGRsL3BhdGNoZXMv bGx2bTEyLnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0ucGF0Y2gKQEAgLTcs NiArNyw4IEBAIGluZGV4IGMxYzFhNmQuLmRhZDdjMzggMTAwNzU1CiAgICAgICAgIGNoZWNrX3Zl cnNpb24gMTAuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTEuMCAk bGx2bV92ZXJzaW9uIHx8CiArICAgICAgIGNoZWNrX3ZlcnNpb24gMTIuMCAkbGx2bV92ZXJzaW9u IHx8CisrICAgICAgIGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAg IGNoZWNrX3ZlcnNpb24gMTQuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGZhbHNlOyB0aGVu CiAgICAgIGVjaG8gIkRlYnVnZ2luZyBpcyBlbmFibGVkIHdpdGggbGx2bSAkbGx2bV92ZXJzaW9u IgogICAgZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3RlbXBsYXRlIGIvc3JjcGtncy9n aGRsL3RlbXBsYXRlCmluZGV4IGU3NTZkOGMzY2Q4Ny4uOWNhMTE2OWIyMmJkIDEwMDY0NAotLS0g YS9zcmNwa2dzL2doZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCkBAIC03 LDcgKzcsNyBAQAogcGtnbmFtZT1naGRsCiByZXZlcnRzPSIyMDE4MTEyOV8xIgogdmVyc2lvbj0x LjAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBjb25m aWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzciAtLXNyY2Rpcj0uLiAtLWluY2Rpcj1saWIvZ2hkbC9p bmNsdWRlIgogbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwiCgpGcm9tIDNlMjk3NGUwNDEzOWY0ZDM5 NzFmMDJiMjg4N2YxNDMyNTExODU5MDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHBy ZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBXZWQsIDQgTWF5IDIw MjIgMTQ6MDc6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzIzXSB6aWc6IHVwZGF0ZSBmb3Ig bGx2bTE0CgotLS0KIHNyY3BrZ3MvemlnL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy96aWcv dGVtcGxhdGUgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQppbmRleCA3MjhjNWE2NGU5ZGYuLmMxNzVk ZTYyYzVmNyAxMDA2NDQKLS0tIGEvc3JjcGtncy96aWcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy96 aWcvdGVtcGxhdGUKQEAgLTUsNyArNSw3IEBAIHJldmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFh cmNoNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIG1ha2VfY21kPW1ha2UKLW1ha2VkZXBlbmRzPSJj bGFuZyBsbHZtMTIgbGxkLWRldmVsIgorbWFrZWRlcGVuZHM9ImNsYW5nMTIgbGx2bTEyIGxsZDEy LWRldmVsIgogc2hvcnRfZGVzYz0iUHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZGVzaWduZWQgZm9yIHJv YnVzdG5lc3MsIG9wdGltYWxpdHksIGFuZCBjbGFyaXR5IgogbWFpbnRhaW5lcj0iSXNhYWMgRnJl dW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNlbnNlPSJNSVQiCgpGcm9tIDY3NWE4NDNm ZjY3NDJjMDUwYzliNDU3OGQ2YjE3NDIxMDEyZjUxN2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24s IDIgTWF5IDIwMjIgMTk6MDc6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzIzXSBxdDU6IHJl YnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggZWU3ODhmYWQy MDE5Li4yNWYxNTU4M2E0MmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC0zLDcgKzMsNyBAQCBwa2duYW1lPXF0NQogdmVyc2lv bj01LjE1LjMrMjAyMjAyMjIKICMgY29tbWl0IGZjY2E4MmNhNDBhNWQ4YTAyYTRkZGQ5MDg0NmQw NzBmMmM1OGNmYWQKICMgYmFzZSByZXBvOiBodHRwczovL2ludmVudC5rZGUub3JnL3F0L3F0L3F0 NQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBl bmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCiAgcHl0aG9u IHJlMmMgcnVieSB3aGljaCIKCkZyb20gNjA1NzRmZjliZjk3NmFlMDcxZDZjMjhhY2YyYzQ3ZTk2 MTVlNWVkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25h bC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMjNdIHNoaWJva2VuMjogcmVidWlsZCBmb3IgbGx2bTE0Cgot LS0KIHNyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zaGlib2tl bjIvdGVtcGxhdGUgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQppbmRleCBiNTY2MTMyMjlj MTMuLmFiOWQyYzRjYjhmOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdzaGlib2tlbjInCiBwa2duYW1lPXNoaWJva2VuMgogdmVyc2lvbj01LjE1 LjIKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAtb3BlbnNv dXJjZS1zcmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtnbmFtZS8lNS4xNC4yLjEvNS4xNC4y fSIKIGJ1aWxkX3dya3NyYz0ic291cmNlcy9zaGlib2tlbjIiCgpGcm9tIGJhYzU1YTNlMjMwOTdi MmE4OTA3ZjI2NzYwM2NkMzBlMjZiMmEzMTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5 IDIwMjIgMTk6MDc6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzIzXSBnbm9tZS1idWlsZGVy OiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRl IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDkzNTU5YjIxNzc0Zi4uNWE1YTUxODkzYWU4IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9t ZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgogdmVyc2lvbj00MS4zCi1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPXFlbXUK IGNvbmZpZ3VyZV9hcmdzPSItRGhlbHA9dHJ1ZSAtRG5ldHdvcmtfdGVzdHM9ZmFsc2UiCgpGcm9t IDMwMjM0Mzc2ZjAzZGZjOTgyZGQ3NzVhMGI3YzU3YWVkZWVmMDU1ZDMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzIz XSBiY2M6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2JjYy90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvYmNjL3RlbXBsYXRlIGIvc3JjcGtncy9iY2MvdGVtcGxhdGUKaW5kZXgg NTQ1MDliNjNkNWE3Li4yY2ZhMGEyOTc3ZDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmNjL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnYmNjJwogcGtnbmFtZT1iY2MKIHZlcnNpb249MC4yNC4wCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiB3cmtzcmM9ImJjYyIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVf YXJncz0iLURSRVZJU0lPTj0ke3ZlcnNpb259IC1ERU5BQkxFX0xMVk1fU0hBUkVEPTEiCgpGcm9t IGZhYmFjY2UwZWRmN2NhYjgwMTlmYzU1MGVlMWQzZjgzMDNiZmFmOTYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzIz XSBtZXNhOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9tZXNhL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9tZXNhL3RlbXBsYXRlIGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCmlu ZGV4IGM5MDUwMGRlNzQxNi4uOGYwODI2MmZiMTM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL21lc2Ev dGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbWVzYScKIHBrZ25hbWU9bWVzYQogdmVyc2lvbj0yMS4zLjcKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0i LURnbHZuZD10cnVlIC1Ec2hhcmVkLWdsYXBpPWVuYWJsZWQgLURnYm09ZW5hYmxlZCAtRGVnbD1l bmFibGVkCiAgLURvc21lc2E9dHJ1ZSAtRGdsZXMxPWVuYWJsZWQgLURnbGVzMj1lbmFibGVkIC1E Z2x4PWRyaSAtRGRyaTM9ZW5hYmxlZAoKRnJvbSAyYzZjZDlmZGUyNGJlNGJmYWZiMWVjMmI5NTY2 ZDA3N2VhZWIxYjg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5h dGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQw ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8yM10ganVDaSsrOiByZWJ1aWxkIGZvciBsbHZtMTQK Ci0tLQogc3JjcGtncy9qdUNpKysvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2p1Q2krKy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCmluZGV4IDFhNzYwNGI0NGEwMC4uNTEw MzMyNGRlYzIwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2p1Q2krKy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2p1Q2krKycKIHBrZ25hbWU9anVDaSsrCiB2ZXJzaW9uPTEuNi4yCi1yZXZpc2lvbj0yCityZXZp c2lvbj0zCiBfbGliY2xhbmdtbV9jb21taXQ9ImIzNDJmNGRkNmRlNGZlNTA5YTY5MmE0YjRmY2Zj N2UyNGFhZTk1OTAiCiBfdGlueV9jb21taXQ9ImM5YzhiZjgxMGRkYWQ4Y2QxNzg4MmI5YTllZTYy OGE2OTBlNzc5ZjUiCiB3cmtzcmM9Imp1Y2lwcC12JHt2ZXJzaW9ufSIKCkZyb20gMTU2ZDhiMzU3 ZjQ1MmQ0YmQ0NWE4MTA5OWE5ZmMzYTRhZTI4OTg4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwg MiBNYXkgMjAyMiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjNdIGNvZGVsaXRl OiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3RlbXBs YXRlCmluZGV4IDNhOTkzYTJjMGNmYi4uMjRlMmM4NzlkZDQ1IDEwMDY0NAotLS0gYS9zcmNwa2dz L2NvZGVsaXRlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29kZWxp dGUKIHZlcnNpb249MTUuMC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1j bWFrZQogYnVpbGRfaGVscGVyPWNtYWtlLXd4V2lkZ2V0cy1ndGszCiBjb25maWd1cmVfYXJncz0i LURXSVRIX1BDSD0wIC1EV0lUSF9XWF9DT05GSUc9d3gtY29uZmlnLWd0azMKCkZyb20gYzMyY2My MmMzMDg3ZDI2OTJmODQ2ZTBkMjk1ZDZhYzkyMDM5MjIxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1v biwgMiBNYXkgMjAyMiAxOTowNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjNdIGNjbHM6 IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2NjbHMvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2NjbHMvdGVtcGxhdGUgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKaW5kZXggZmJi N2M2ODQ3YmMxLi40MGFiYTNiNTViZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdjY2xzJwogcGtnbmFtZT1jY2xzCiB2ZXJzaW9uPTAuMjAyMTAzMzAKLXJldmlz aW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImNs YW5nLXRvb2xzLWV4dHJhIgogbWFrZWRlcGVuZHM9Imxsdm0gbmN1cnNlcy1kZXZlbCByYXBpZGpz b24gemxpYi1kZXZlbCBjbGFuZy10b29scy1leHRyYSIKCkZyb20gNzUzNTQ5OGQ1YTMwYjFkYTIx MDc3Njc2ZDhmYWEwYzA2MzQ2ZjdmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJl eiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAy MiAxOTowNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjNdIGNsYXp5OiByZWJ1aWxkIGZv ciBsbHZtMTQKCi0tLQogc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2xhenkvdGVtcGxhdGUgYi9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCmluZGV4IDExZjNiYWI1NWFl Zi4uZjgxZGUwOGFiODM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdjbGF6eScKIHBrZ25hbWU9Y2xhenkKIHZlcnNpb249MS4xMQotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1xZW11CiBob3N0bWFrZWRl cGVuZHM9Imxsdm0iCgpGcm9tIDA4ZmYzZTMyZDRkMmQyOTAzZDMzNWQ4OTQ3YTc3ZDcxMDYzMzQy MWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hp dHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6NDEgKzAyMDAKU3Vi amVjdDogW1BBVENIIDE3LzIzXSBicGZ0cmFjZTogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNy Y3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JwZnRyYWNlL3RlbXBs YXRlIGIvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZQppbmRleCAxOTBjZWJiOGUzYmMuLmExMzIy NGI4MmIwOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2JwZnRyYWNlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnYnBmdHJhY2UnCiBwa2duYW1lPWJwZnRyYWNlCiB2ZXJzaW9uPTAuMTUuMAotcmV2aXNpb249 MQorcmV2aXNpb249MgogYXJjaHM9Ing4Nl82NCogYWFyY2g2NCogcHBjNjQqIgogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIiAgIyBuZWVkcyBy b290IHRvIHJ1bgoKRnJvbSAzMzRmMGFiNDFmZTczMjRjMjhmZTZmYTNmN2E4YWI0YzBiMzhjODkx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRw b3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAxOC8yM10gcnRhZ3M6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dz L3J0YWdzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydGFncy90ZW1wbGF0ZSBiL3NyY3Br Z3MvcnRhZ3MvdGVtcGxhdGUKaW5kZXggYjQ5NmExYjBlNzIxLi45YjE2MWU2OTBkNzYgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0 ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3J0YWdzJwogcGtnbmFtZT1y dGFncwogdmVyc2lvbj0yLjM4Ci1yZXZpc2lvbj01CityZXZpc2lvbj02CiBidWlsZF9zdHlsZT1j bWFrZQogIyBEb24ndCBydW4gdGVzdHMgaW4gZG9faW5zdGFsbCwgcGxlYXNlLgogY29uZmlndXJl X2FyZ3M9Ii1EU0tJUF9DVEVTVD1UUlVFIgoKRnJvbSA0YzE2OGFmMjIzOGRmM2YzZTFkMmI4NTZk ZDRjZmJkMGQ3NzAyNGM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6 QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjA3 OjE5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS8yM10gYmVpZ25ldDogcmVtb3ZlIHBhY2thZ2UK Ci0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaCAgICAgICAgIHwgIDIy IC0KIC4uLjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaCB8IDEzNCAt LS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCAgICAgICAgICB8ICAzMyAt CiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2ggICAgICAgICAgfCAgNTYgLS0K IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaCAgICAgICAgICB8IDExMSAtLS0K IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaCAgICAgICAgICB8IDM0NyAtLS0t LS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2ggICAgICAgICAgfCA5Mzcg LS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gg ICAgICAgICAgfCAxMTUgLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoICAg ICAgICAgICAgfCAgMTEgLQogc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgIHwgIDIyIC0KIHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSAtCiBzcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgICAgICAgICAg ICAgfCAgIDMgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTc5MCBkZWxl dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91 aW50LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvZTFi MjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2JlaWduZXQvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xf dWludC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YmEwMGYwNGU5NS4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwyMiArMCwwIEBACi0tLS0gYS9zcmMvY2xfYXBpX2tlcm5lbC5jCTIwMTctMDktMjIgMTA6MDU6 MjIuMDAwMDAwMDAwICswMjAwCi0rKysgYi9zcmMvY2xfYXBpX2tlcm5lbC5jCTIwMjAtMDMtMjQg MTg6Mjc6NDAuMTg2NDg1ODg3ICswMTAwCi1AQCAtMTUxLDcgKzE1MSw3IEBACi0gICAgICAgICBm aXhlZF9sb2NhbF9zelswXSA9IDE2OwotICAgICAgICAgZml4ZWRfbG9jYWxfc3pbMV0gPSAxOwot ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICB1aW50IGosIG1heERpbVNpemUgPSA2NCAvKiBmcm9t IDY0PyAqLywgbWF4R3JvdXBTaXplID0gMjU2OyAvL01BWF9XT1JLX0dST1VQX1NJWkUgbWF5IHRv byBsYXJnZQotKyAgICAgICAgY2xfdWludCBqLCBtYXhEaW1TaXplID0gNjQgLyogZnJvbSA2ND8g Ki8sIG1heEdyb3VwU2l6ZSA9IDI1NjsgLy9NQVhfV09SS19HUk9VUF9TSVpFIG1heSB0b28gbGFy Z2UKLSAgICAgICAgIHNpemVfdCByZWFsR3JvdXBTaXplID0gMTsKLSAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCB3b3JrX2RpbTsgaSsrKSB7Ci0gICAgICAgICAgIGZvciAoaiA9IG1heERpbVNpemU7 IGogPiAxOyBqLS0pIHsKLS0tLSBhL3NyYy9jbF9lbnF1ZXVlLmMJMjAxNy0wOS0yMiAxMDowNToy Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9jbF9lbnF1ZXVlLmMJMjAyMC0wMy0yNCAxODoz MDoxMi4wMzE0Nzk4MzMgKzAxMDAKLUBAIC00OTQsNyArNDk0LDcgQEAKLSBjbF9pbnQgY2xfZW5x dWV1ZV9zdm1fZnJlZShlbnF1ZXVlX2RhdGEgKmRhdGEsIGNsX2ludCBzdGF0dXMpIHsKLSAgIGlu dCBpOwotICAgdm9pZCAqKnBvaW50ZXJzID0gZGF0YS0+cG9pbnRlcnM7Ci0tICB1aW50IG51bV9z dm1fcHRycyA9IGRhdGEtPnNpemU7Ci0rICBjbF91aW50IG51bV9zdm1fcHRycyA9IGRhdGEtPnNp emU7Ci0gICBjbF9pbnQgZXJyID0gQ0xfU1VDQ0VTUzsKLSAKLSAgIGlmIChzdGF0dXMgIT0gQ0xf Q09NUExFVEUpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAw MDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRlOWU2ZTJmMDkzLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3 NGU5ZmJhMDg0Yi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi1Gcm9tIGUx YjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiAiUmViZWNjYSBOLiBQYWxtZXIiIDxyZWJlY2NhX3BhbG1lckB6b2hvLmNv bT4KLURhdGU6IFNhdCwgMjEgSnVsIDIwMTggMjA6MDU6NTQgKzAxMDAKLVN1YmplY3Q6IEFkZCBw cmVsaW1pbmFyeSBMTFZNIDcgc3VwcG9ydAotCi1UaGlzIGlzIHByZWxpbWluYXJ5IGJlY2F1c2Ug TExWTSA3IGhhcyBub3QgYmVlbiByZWxlYXNlZCB5ZXQ6Ci1pdCB3YXMgdGVzdGVkIHdpdGggdGhl IHNuYXBzaG90IGZyb20gRGViaWFuIGV4cGVyaW1lbnRhbCAoc3ZuMzM2ODk0KS4KLQotMS5DaGFu Z2UgbGlua2luZyBvcmRlciwgYXMgY2xhbmdDb2RlR2VuIG5vdyBsaW5rcyB0byBjbGFuZ0Zyb250 ZW5kCi0yLlBhc3MgcmVmZXJlbmNlcyBub3QgcG9pbnRlcnMgdG8gV3JpdGVCaXRjb2RlVG9GaWxl IGFuZCBDbG9uZU1vZHVsZQotMy5BZGQgdGhlIGhlYWRlcnMgdGhhdCBMb29wU2ltcGxpZnlJRCwg TENTU0FJRCBhbmQKLXNvbWUgY3JlYXRlKlBhc3MgaGF2ZSBtb3ZlZCB0bwotNC5EZWZpbmUgb3Vy IERFQlVHIHdoZXRoZXIgb3Igbm90IHdlIGp1c3QgdW5kZWZpbmVkIExMVk0ncwotKHRoZWlycyBp cyBub3cgTExWTV9ERUJVRywgYnV0IHdlIG5ldmVyIGFjdHVhbGx5IHVzZSBpdCkKLQotU2lnbmVk LW9mZi1ieTogUmViZWNjYSBOLiBQYWxtZXIgPHJlYmVjY2FfcGFsbWVyQHpvaG8uY29tPgotUmV2 aWV3ZWQtYnk6IFlhbmcgUm9uZyA8cm9uZy5yLnlhbmdAaW50ZWwuY29tPgotLS0tCi0gQ01ha2Uv RmluZExMVk0uY21ha2UgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KLSBiYWNrZW5kL3NyYy9i YWNrZW5kL2dlbl9wcm9ncmFtLmNwcCAgICAgIHwgOCArKysrKysrKwotIGJhY2tlbmQvc3JjL2Jh Y2tlbmQvcHJvZ3JhbS5jcHAgICAgICAgICAgfCA0ICsrKysKLSBiYWNrZW5kL3NyYy9sbHZtL0V4 cGFuZExhcmdlSW50ZWdlcnMuY3BwIHwgMiArLQotIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRj b2RlX2xpbmsuY3BwICAgfCA0ICsrKysKLSBiYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMu aHBwICAgICAgIHwgNCArKysrCi0gNiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvQ01ha2UvRmluZExMVk0uY21ha2UgYi9DTWFr ZS9GaW5kTExWTS5jbWFrZQotaW5kZXggNTQ1N2YyNC4uZjg4MjU4OSAxMDA2NDQKLS0tLSBhL0NN YWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTExMywx MCArMTEzLDEwIEBAIG1hY3JvKGFkZF9vbmVfbGliIG5hbWUpCi0gZW5kbWFjcm8oKQotIAotICNB c3N1bWUgY2xhbmcgbGliIHBhdGggc2FtZSBhcyBsbHZtIGxpYiBwYXRoCi0rYWRkX29uZV9saWIo ImNsYW5nQ29kZUdlbiIpCi0gYWRkX29uZV9saWIoImNsYW5nRnJvbnRlbmQiKQotIGFkZF9vbmVf bGliKCJjbGFuZ1NlcmlhbGl6YXRpb24iKQotIGFkZF9vbmVfbGliKCJjbGFuZ0RyaXZlciIpCi0t YWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0g YWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJGcm9udGVuZCIpCi0gYWRkX29uZV9saWIo ImNsYW5nU3RhdGljQW5hbHl6ZXJDaGVja2VycyIpCi1kaWZmIC0tZ2l0IGEvYmFja2VuZC9zcmMv YmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFt LmNwcAotaW5kZXggMjc0Yzk5Yy4uNDE1OTIzNCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2Jh Y2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9n cmFtLmNwcAotQEAgLTQ1NCw3ICs0NTQsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmZGVmIEdC RV9DT01QSUxFUl9BVkFJTEFCTEUKLSAgICAgICBzdGQ6OnN0cmluZyBzdHI7Ci0gICAgICAgbGx2 bTo6cmF3X3N0cmluZ19vc3RyZWFtIE9TKHN0cik7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+ PSA3Ci0rICAgICAgbGx2bTo6V3JpdGVCaXRjb2RlVG9GaWxlKCooKGxsdm06Ok1vZHVsZSopcHJv Zy0+bW9kdWxlKSwgT1MpOwotKyNlbHNlCi0gICAgICAgbGx2bTo6V3JpdGVCaXRjb2RlVG9GaWxl KChsbHZtOjpNb2R1bGUqKXByb2ctPm1vZHVsZSwgT1MpOwotKyNlbmRpZgotICAgICAgIHN0ZDo6 c3RyaW5nJiBiaW5fc3RyID0gT1Muc3RyKCk7Ci0gICAgICAgaW50IGxsc3ogPSBiaW5fc3RyLnNp emUoKTsKLSAgICAgICAqYmluYXJ5ID0gKGNoYXIgKiltYWxsb2Moc2l6ZW9mKGNoYXIpICogKGxs c3orMSkgKTsKLUBAIC01NDUsNyArNTQ5LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtb2RSZWYpOwotICAgICAgICAgc3JjID0gbGx2 bTo6dW53cmFwKG1vZFJlZik7Ci0gICAgICAgfQotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0g NwotKyAgICAgIGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9uZU1vZHVsZSgqc3JjKS5y ZWxlYXNlKCk7Ci0rI2Vsc2UKLSAgICAgICBsbHZtOjpNb2R1bGUqIGNsb25lID0gbGx2bTo6Q2xv bmVNb2R1bGUoc3JjKS5yZWxlYXNlKCk7Ci0rI2VuZGlmCi0gICAgICAgaWYgKExMVk1MaW5rTW9k dWxlczIod3JhcChkc3QpLCB3cmFwKGNsb25lKSkpIHsKLSAjZWxpZiBMTFZNX1ZFUlNJT05fTUFK T1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNwotICAgICAgIGlmIChMTFZNTGlua01v ZHVsZXMod3JhcChkc3QpLCB3cmFwKHNyYyksIExMVk1MaW5rZXJQcmVzZXJ2ZVNvdXJjZV9SZW1v dmVkLCAmZXJyTXNnKSkgewotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3Jh bS5jcHAgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1pbmRleCBjMzdjNTk1Li5i MzZmN2I0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotKysr IGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotQEAgLTc5NCw3ICs3OTQsMTEgQEAg bmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgbGx2bTo6cmF3X2ZkX29zdHJlYW0gb3N0cmVhbSAoZHVt cFNQSVJCaW5hcnlOYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXJyLCBsbHZtOjpzeXM6OmZzOjpGX05vbmUpOwotICAgICAgIGlmICghZXJyKQotKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1I8NwotICAgICAgICAgbGx2bTo6V3JpdGVCaXRjb2RlVG9GaWxl KCpvdXRfbW9kdWxlLCBvc3RyZWFtKTsKLSsjZWxzZQotKyAgICAgICAgbGx2bTo6V3JpdGVCaXRj b2RlVG9GaWxlKCoqb3V0X21vZHVsZSwgb3N0cmVhbSk7Ci0rI2VuZGlmCi0gICAgIH0KLSAjZW5k aWYKLSAgICAgcmV0dXJuIHRydWU7Ci1kaWZmIC0tZ2l0IGEvYmFja2VuZC9zcmMvbGx2bS9FeHBh bmRMYXJnZUludGVnZXJzLmNwcCBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vy cy5jcHAKLWluZGV4IDg1MTVkYzEuLjRhZWM0NGUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFu ZExhcmdlSW50ZWdlcnMuY3BwCi1AQCAtOTksOCArOTksOCBAQCB1c2luZyBuYW1lc3BhY2UgbGx2 bTsKLSAKLSAjaWZkZWYgREVCVUcKLSAgICN1bmRlZiBERUJVRwotLSAgI2RlZmluZSBERUJVRygu Li4pCi0gI2VuZGlmCi0rI2RlZmluZSBERUJVRyguLi4pCi0gLy8gQnJlYWsgaW5zdHJ1Y3Rpb25z IHVwIGludG8gbm8gbGFyZ2VyIHRoYW4gNjQtYml0IGNodW5rcy4KLSBzdGF0aWMgY29uc3QgdW5z aWduZWQga0NodW5rQml0cyA9IDY0OwotIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrQ2h1bmtCeXRl cyA9IGtDaHVua0JpdHMgLyBDSEFSX0JJVDsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fYml0Y29kZV9saW5rLmNwcCBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xp bmsuY3BwCi1pbmRleCBlZjU2ZTRjLi40YzNlMjBlIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9i aXRjb2RlX2xpbmsuY3BwCi1AQCAtMzQwLDcgKzM0MCwxMSBAQCBuYW1lc3BhY2UgZ2JlCi0gICAg IC8qIFdlIHVzZSBiZWlnbmV0J3MgYml0Y29kZSBhcyBkc3QgYmVjYXVzZSBpdCB3aWxsIGhhdmUg YSBsb3Qgb2YKLSAgICAgICAgbGF6eSBmdW5jdGlvbnMgd2hpY2ggd2lsbCBub3QgYmUgbG9hZGVk LiAqLwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSAzOQotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyAgICBsbHZtOjpNb2R1bGUgKiBs aW5rZWRfbW9kdWxlID0gbGx2bTo6Q2xvbmVNb2R1bGUoKihsbHZtOjpNb2R1bGUqKW1vZCkucmVs ZWFzZSgpOwotKyNlbHNlCi0gICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtlZF9tb2R1bGUgPSBsbHZt OjpDbG9uZU1vZHVsZSgobGx2bTo6TW9kdWxlKiltb2QpLnJlbGVhc2UoKTsKLSsjZW5kaWYKLSAg ICAgaWYoTExWTUxpbmtNb2R1bGVzMih3cmFwKGNsb25lZExpYiksIHdyYXAobGlua2VkX21vZHVs ZSkpKSB7Ci0gI2Vsc2UKLSAgICAgY2hhciogZXJyb3JNc2c7Ci1kaWZmIC0tZ2l0IGEvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcCBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNs dWRlcy5ocHAKLWluZGV4IDE4NDU1M2EuLmZmY2NmMDIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5j bHVkZXMuaHBwCi1AQCAtODksNiArODksMTAgQEAKLSAjaW5jbHVkZSAibGx2bS9Db2RlR2VuL0lu dHJpbnNpY0xvd2VyaW5nLmgiCi0gCi0gI2luY2x1ZGUgImxsdm0vVHJhbnNmb3Jtcy9TY2FsYXIu aCIKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsjaW5jbHVkZSAibGx2bS9UcmFuc2Zv cm1zL1V0aWxzLmgiCi0rI2luY2x1ZGUgImxsdm0vVHJhbnNmb3Jtcy9JbnN0Q29tYmluZS9JbnN0 Q29tYmluZS5oIgotKyNlbmRpZgotICNpbmNsdWRlICJsbHZtL01DL01DQXNtSW5mby5oIgotICNp bmNsdWRlICJsbHZtL01DL01DQ29udGV4dC5oIgotICNpbmNsdWRlICJsbHZtL01DL01DSW5zdHJJ bmZvLmgiCi0tLSAKLWNnaXQgdjEuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9sbHZtMDYucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzODllNjZjODJkZi4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMzICswLDAgQEAKLVNvdXJjZTogQXJjaCBMaW51eAotVXBzdHJlYW06IHVua25vd24K LVJlYXNvbjogZml4ZXMgbGx2bTYgY29tcGlsYXRpb24KLQotLS0tIGEvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX3RvX2dlbi5jcHAJMjAxNy0xMC0yNCAwOTowNDo0OC4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCTIwMTgtMDMtMTYgMTY6MDg6NTQu NjY5OTYzODI0ICswMjAwCi1AQCAtMzIyLDcgKzMyMiwxMSBAQCBuYW1lc3BhY2UgZ2JlCi0gICAg IERhdGFMYXlvdXQgREwoJm1vZCk7Ci0gICAgIAotICAgICBnYmVEaWFnbm9zdGljQ29udGV4dCBk YzsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDYKLSsgICAgbW9kLmdldENvbnRleHQoKS5z ZXREaWFnbm9zdGljSGFuZGxlckNhbGxCYWNrKCZnYmVEaWFnbm9zdGljSGFuZGxlciwmZGMpOwot KyNlbHNlCi0gICAgIG1vZC5nZXRDb250ZXh0KCkuc2V0RGlhZ25vc3RpY0hhbmRsZXIoJmdiZURp YWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2VuZGlmCi0gCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgIG1vZC5zZXREYXRhTGF5b3V0 KERMKTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJvbGwuY3BwCTIwMTctMTAtMjQg MDk6MDQ6NDguMDAwMDAwMDAwICswMzAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdW5y b2xsLmNwcAkyMDE4LTAzLTE2IDE2OjA5OjQ3LjczNjQwMzU1NyArMDIwMAotQEAgLTIwNSw3ICsy MDUsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgaWYgKHBhcmVudFRyaXBDb3VudCAh PSAwICYmIGN1cnJUcmlwQ291bnQgKiBwYXJlbnRUcmlwQ291bnQgPiAzMikgewotICAgICAgICAg ICAgIC8vRG9uJ3QgY2hhbmdlIHRoZSB1bnJvbGxJRCBpZiBkb2Vzbid0IGZvcmNlIHVucm9sbC4K LSAgICAgICAgICAgICAvL3NldFVucm9sbElEKHBhcmVudEwsIGZhbHNlKTsKLS0jaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSsjaWYgTExWTV9W RVJTSU9OX01BSk9SID49IDYKLSsgICAgICAgICAgICBsb29wSW5mby5lcmFzZShwYXJlbnRMKTsK LSsjZWxpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAz OAotICAgICAgICAgICAgIGxvb3BJbmZvLm1hcmtBc1JlbW92ZWQocGFyZW50TCk7Ci0gI2Vsc2UK LSAgICAgICAgICAgICBMUE0uZGVsZXRlTG9vcEZyb21RdWV1ZShwYXJlbnRMKTsKLU9ubHkgaW4g QmVpZ25ldC0xLjMuMi1Tb3VyY2U6IGJ1aWxkCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25l dC9wYXRjaGVzL2xsdm0wOC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBjNWU3YTdjNGY3Li4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTYgKzAsMCBAQAotRnJvbSA3NWMxNTI1OTlhN2MxNzM5ZTZkYWRjZGI5YjM3 N2FjZjdlNDRkOWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEJlaWNoIDxq YmVpY2hARnJlZUJTRC5vcmc+Ci1EYXRlOiBXZWQsIDMwIEphbiAyMDE5IDEyOjQyOjM0ICswMDAw Ci1TdWJqZWN0OiBbUEFUQ0hdIGxhbmcvYmVpZ25ldDogdW5icmVhayB3aXRoIGxsdm04MAotCi1S ZWdyZXNzZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2NvbW1pdC83 MjFkOTU3MTNhOWUKLQotdW5hYmxlIHRvIGxvYWQgL3Vzci9sb2NhbC9saWIvYmVpZ25ldC8vbGli Z2JlaW50ZXJwLnNvIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGRyaXZlciwgcGxlYXNlIGNoZWNrIQot bGQtZWxmLnNvLjE6IC91c3IvbG9jYWwvbGliL2JlaWduZXQvL2xpYmdiZWludGVycC5zbzogVW5k ZWZpbmVkIHN5bWJvbCAiX1pONGxsdm0yNERpc2FibGVBQklCcmVha2luZ0NoZWNrc0UiCi0KLVJl Z3Jlc3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0LzRh MmQ1OGUxNmFjYwotCi1iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwOjMwNzY6 NTogZXJyb3I6Ci0gICAgICB1bmtub3duIHR5cGUgbmFtZSAnVGVybWluYXRvckluc3QnCi0gICAg VGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotICAgIF4KLWJhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA4Mzo1OiBlcnJvcjoKLSAgICAgIHVu a25vd24gdHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJtaW5hdG9ySW5zdCAqdGVy bSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotCi0tLS0gYS9iYWNrZW5kL3NyYy9DTWFr ZUxpc3RzLnR4dAkyMDE3LTA5LTIyIDA4OjA1OjIyIFVUQwotKysrIGIvYmFja2VuZC9zcmMvQ01h a2VMaXN0cy50eHQKLUBAIC0xNjgsNiArMTY4LDcgQEAgYWRkX2RlcGVuZGVuY2llcyhnYmUgYmVp Z25ldF9iaXRjb2RlKQotIGVuZGlmIChOT1QgKFVTRV9TVEFOREFMT05FX0dCRV9DT01QSUxFUiBT VFJFUVVBTCAidHJ1ZSIpKQotIAotIGFkZF9saWJyYXJ5KGdiZWludGVycCBTSEFSRUQgZ2JlX2Jp bl9pbnRlcnByZXRlci5jcHApCi0rdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGdiZWludGVycCAke0xM Vk1fTU9EVUxFX0xJQlN9KQotIAotIGlmIChMTFZNX1ZFUlNJT05fTk9ET1QgVkVSU0lPTl9FUVVB TCAzNCkKLSAgIGZpbmRfbGlicmFyeShURVJNSU5GTyBOQU1FUyB0aW5mbyBuY3Vyc2VzKQotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAkyMDE3LTEwLTI0IDA2OjA0 OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotQEAg LTMwNzMsMTQgKzMwNzMsMjIgQEAgbmFtZXNwYWNlIGdiZQotIAotIAotICAgc3RhdGljIHVuc2ln bmVkIGdldENoaWxkTm8oQmFzaWNCbG9jayAqYmIpIHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9S IDwgOAotICAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0r I2Vsc2UKLSsgICAgSW5zdHJ1Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNl bmRpZgotICAgICByZXR1cm4gdGVybS0+Z2V0TnVtU3VjY2Vzc29ycygpOwotICAgfQotIAotICAg Ly8gcmV0dXJuIE5VTEwgaWYgaW5kZXggb3V0LXJhbmdlIG9mIGNoaWxkcmVuIG51bWJlcgotICAg c3RhdGljIEJhc2ljQmxvY2sgKmdldENoaWxkUG9zc2libGUoQmFzaWNCbG9jayAqYmIsIHVuc2ln bmVkIGluZGV4KSB7Ci0gCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDgKLSAgICAgVGVybWlu YXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNlbHNlCi0rICAgIEluc3Ry dWN0aW9uICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZW5kaWYKLSAgICAgdW5zaWdu ZWQgY2hpbGRObyA9IHRlcm0tPmdldE51bVN1Y2Nlc3NvcnMoKTsKLSAgICAgQmFzaWNCbG9jayAq Y2hpbGQgPSBOVUxMOwotICAgICBpZihpbmRleCA8IGNoaWxkTm8pIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0wOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNhZWNlYWJi NmRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLVNvdXJjZTogRnJlZUJTRCArIHE2 NgotCi1Nb3N0bHkgRnJlZUJTRCBvdGhlciB0aGFuIEZpbmRMTFZNLmNtYWtlIGNoYW5nZXMuCi1M aW5raW5nIGFnYWluc3QgY2xhbmctY3BwIGRvZXMgbm90IHdvcmsgZm9yIHVzLgotCi0tLS0gYS9D TWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBAIC0xNDAs NiArMTQwLDcgQEAgYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJDb3JlIikKLSBhZGRf b25lX2xpYigiY2xhbmdBbmFseXNpcyIpCi0gYWRkX29uZV9saWIoImNsYW5nRWRpdCIpCi0gYWRk X29uZV9saWIoImNsYW5nQVNUIikKLSthZGRfb25lX2xpYigiY2xhbmdBU1RNYXRjaGVycyIpCi0g YWRkX29uZV9saWIoImNsYW5nUGFyc2UiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotIGFk ZF9vbmVfbGliKCJjbGFuZ0xleCIpCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmlu c2ljX2xvd2VyaW5nLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLUBAIC03Nyw3ICs3NywxMSBAQCBu YW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFR5cGUgKj4gUGFyYW1UeXM7Ci0g ICAgICAgICBmb3IgKFZhbHVlKiogSSA9IEFyZ0JlZ2luOyBJICE9IEFyZ0VuZDsgKytJKQotICAg ICAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2soKCpJKS0+Z2V0VHlwZSgpKTsKLSsjaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgIEZ1 bmN0aW9uQ2FsbGVlIEZDYWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4sCi0rI2Vs c2UKLSAgICAgICAgIENvbnN0YW50KiBGQ2FjaGUgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKE5l d0ZuLAotKyNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG dW5jdGlvblR5cGU6OmdldChSZXRUeSwgUGFyYW1UeXMsIGZhbHNlKSk7Ci0gCi0gICAgICAgICBJ UkJ1aWxkZXI8PiBCdWlsZGVyKENJLT5nZXRQYXJlbnQoKSwgQmFzaWNCbG9jazo6aXRlcmF0b3Io Q0kpKTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAxNy0x MC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2Zp eC5jcHAKLUBAIC04Miw3ICs4MiwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWYgTExWTV9WRVJT SU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgICAgTW9k dWxlICpNID0gSS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKTsKLSAjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAg ICAgICAgRnVuY3Rpb25DYWxsZWUgc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24o Il9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRU eXBlKCkpOwotKyNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJ bnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9w ZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgICAgICAgVmFsdWUq IHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90 b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpLCBudWxscHRyKTsKLSAj ZW5kaWYKLUBAIC0xMjQsNyArMTI4LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgICBN b2R1bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotICNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAg ICAgICAgICBGdW5jdGlvbkNhbGxlZSBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlv bigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdl dFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRP ckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0 T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAjZWxzZQotICAgICAgICAgICBWYWx1 ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVy X3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCksIG51bGxwdHIpOwot ICNlbmRpZgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAxNy0x MC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcu Y3BwCi1AQCAtMTYzLDEwICsxNjMsMTggQEAgbmFtZXNwYWNlIGdiZQotICAgICAgIC8vIF9fZ2Vu X29jbF9zdG9yZV90aW1lc3RhbXAoaW50IG50aCwgaW50IHR5cGUpOwotICAgICAgIFZhbHVlICpB cmdzWzJdID0ge0NvbnN0YW50SW50OjpnZXQoaW50VHksIHBvaW50TnVtKyspLCBDb25zdGFudElu dDo6Z2V0KGludFR5LCBwcm9maWxpbmdUeXBlKX07Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAq IDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAq IDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgYnVpbGRlci0+Q3JlYXRlQ2Fs bChtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vsc2UKLSAgICAgICBidWlsZGVyLT5D cmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlv bigKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICJfX2dlbl9vY2xfY2FsY190aW1lc3RhbXAiLCBU eXBlOjpnZXRWb2lkVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotICAgICAgICAgICAgICAgSW50 ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotKyNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgICAg ICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKSwKLSsjZWxz ZQotICAgICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250 ZXh0KCkpKSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgICBBcnJheVJlZjxWYWx1ZSo+KEFyZ3Mp KTsKLSAjZWxzZQotICAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlv bj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotQEAgLTE4NSwxMCArMTkzLDE4IEBAIG5h bWVzcGFjZSBnYmUKLSAgICAgVmFsdWUgKkFyZ3MyWzJdID0ge3Byb2ZpbGluZ0J1ZiwgQ29uc3Rh bnRJbnQ6OmdldChpbnRUeSwgcHJvZmlsaW5nVHlwZSl9OwotIAotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICBidWlsZGVyLT5DcmVh dGVDYWxsKG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZWxzZQotICAgICBidWlsZGVy LT5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbigKLSsjZW5kaWYKLSAgICAgICAgICAgICAiX19nZW5fb2NsX3N0b3JlX3Byb2ZpbGluZyIs IFR5cGU6OmdldFZvaWRUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0gICAgICAgICAgICAgcHRy VHksCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDkwCi0rICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250 ZXh0KCkpKSwKLSsjZWxzZQotICAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1v ZHVsZS0+Z2V0Q29udGV4dCgpKSkpLAotKyNlbmRpZgotICAgICAgICAgICAgIEFycmF5UmVmPFZh bHVlKj4oQXJnczIpKTsKLSAjZWxzZQotICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2 bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAKLUBAIC0zOTgs OCArMzk4LDEzIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8 VHlwZSAqPiBQYXJhbVR5czsKLSAgICAgICAgICAgICAgIGZvciAoVmFsdWUqKiBpdGVyID0gYXJn cy5iZWdpbigpOyBpdGVyICE9IGFyZ3MuZW5kKCk7ICsraXRlcikKLSAgICAgICAgICAgICAgICAg UGFyYW1UeXMucHVzaF9iYWNrKCgqaXRlciktPmdldFR5cGUoKSk7Ci0rI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAgICBD YWxsSW5zdCogbmV3Q0kgPSBidWlsZGVyLkNyZWF0ZUNhbGwobW9kLT5nZXRPckluc2VydEZ1bmN0 aW9uKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2dlbl9lbnF1ZXVlX2tlcm5l bF9zbG0iLCBGdW5jdGlvblR5cGU6OmdldChpbnRUeSwgUGFyYW1UeXMsIGZhbHNlKSksIGFyZ3Mp OwotKyNlbHNlCi0gICAgICAgICAgICAgICBDYWxsSW5zdCogbmV3Q0kgPSBidWlsZGVyLkNyZWF0 ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kLT5nZXRPckluc2VydEZ1bmN0aW9uKAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2dlbl9lbnF1ZXVlX2tlcm5lbF9zbG0iLCBG dW5jdGlvblR5cGU6OmdldChpbnRUeSwgUGFyYW1UeXMsIGZhbHNlKSkpLCBhcmdzKTsKLSsjZW5k aWYKLSAgICAgICAgICAgICAgIENJLT5yZXBsYWNlQWxsVXNlc1dpdGgobmV3Q0kpOwotICAgICAg ICAgICAgICAgZGVhZEluc25TZXQuaW5zZXJ0KENJKTsKLSAgICAgICAgICAgICB9CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2ggYi9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhh YWZlNDhhMjQwZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xs dm0xMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0NyArMCwwIEBACi1kaWZmIC0tZ2l0IENN YWtlL0ZpbmRMTFZNLmNtYWtlIENNYWtlL0ZpbmRMTFZNLmNtYWtlCi1pbmRleCAwYTU5ZTQ3Li42 ZTkwOTIzIDEwMDY0NAotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0Zp bmRMTFZNLmNtYWtlCi1AQCAtMTA0LDI4ICsxMDQsMTYgQEAgc3RyaW5nKFJFR0VYIFJFUExBQ0Ug IiAqXG4iICIiIExMVk1fU1lTVEVNX0xJQlMgJHtMTFZNX1NZU1RFTV9MSUJTX09SSUd9KQotIGVu ZGlmIChMTFZNX1NZU1RFTV9MSUJTX09SSUcpCi0gZW5kaWYgKExMVk1fVkVSU0lPTl9OT0RPVCBW RVJTSU9OX0dSRUFURVIgMzQpCi0gCi0rI3NvbWV0aGluZyBoYXJtbGVzcyBiZWNhdXNlIHdoaXRl c3BhY2UgYXQgc3RhcnQgaXMgYW4gZXJyb3IKLStzZXQoQ0xBTkdfTElCUkFSSUVTICItbGRsIikK LSBtYWNybyhhZGRfb25lX2xpYiBuYW1lKQotICAgRklORF9MSUJSQVJZKENMQU5HX0xJQgotICAg ICBOQU1FUyAke25hbWV9Ci0gICAgIFBBVEhTICR7TExWTV9MSUJSQVJZX0RJUn0gTk9fREVGQVVM VF9QQVRIKQotLSAgc2V0KENMQU5HX0xJQlJBUklFUyAke0NMQU5HX0xJQlJBUklFU30gJHtDTEFO R19MSUJ9KQotKyAgc2V0KENMQU5HX0xJQlJBUklFUyAiJHtDTEFOR19MSUJSQVJJRVN9ICR7Q0xB TkdfTElCfSIpCi0rICBtZXNzYWdlKFNUQVRVUyAiY2xhbmdsaWJzIG5hbWUgJHtuYW1lfSB0aGlz ICR7Q0xBTkdfTElCfSBhbGwgJHtDTEFOR19MSUJSQVJJRVN9ICIpCi0gCXVuc2V0KENMQU5HX0xJ QiBDQUNIRSkKLSBlbmRtYWNybygpCi0gCi0gI0Fzc3VtZSBjbGFuZyBsaWIgcGF0aCBzYW1lIGFz IGxsdm0gbGliIHBhdGgKLS1hZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLS1hZGRfb25lX2xp YigiY2xhbmdGcm9udGVuZCIpCi0tYWRkX29uZV9saWIoImNsYW5nU2VyaWFsaXphdGlvbiIpCi0t YWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLS1h ZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckZyb250ZW5kIikKLS1hZGRfb25lX2xpYigi Y2xhbmdTdGF0aWNBbmFseXplckNoZWNrZXJzIikKLS1hZGRfb25lX2xpYigiY2xhbmdTdGF0aWNB bmFseXplckNvcmUiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0FuYWx5c2lzIikKLS1hZGRfb25lX2xp YigiY2xhbmdFZGl0IikKLS1hZGRfb25lX2xpYigiY2xhbmdBU1QiKQotLWFkZF9vbmVfbGliKCJj bGFuZ0FTVE1hdGNoZXJzIikKLS1hZGRfb25lX2xpYigiY2xhbmdQYXJzZSIpCi0tYWRkX29uZV9s aWIoImNsYW5nU2VtYSIpCi0tYWRkX29uZV9saWIoImNsYW5nTGV4IikKLS1hZGRfb25lX2xpYigi Y2xhbmdCYXNpYyIpCi0rYWRkX29uZV9saWIoImNsYW5nLWNwcCIpCi1kaWZmIC0tZ2l0IENNYWtl TGlzdHMudHh0IENNYWtlTGlzdHMudHh0Ci1pbmRleCBjMTFhY2JiLi4wOGY0MjdkIDEwMDY0NAot LS0tIGEvQ01ha2VMaXN0cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0Ci1AQCAtNzksNyArNzks NyBAQCBlbHNlaWYgKENPTVBJTEVSIFNUUkVRVUFMICJDTEFORyIpCi0gZWxzZWlmIChDT01QSUxF UiBTVFJFUVVBTCAiSUNDIikKLSAgIHNldCAoQ01BS0VfQ19DWFhfRkxBR1MgIiR7Q01BS0VfQ19D WFhfRkxBR1N9ICAtd2QyOTI4IC1XYWxsIC1mUElDIC1mc3RyaWN0LWFsaWFzaW5nIC1mcC1tb2Rl bCBmYXN0IC1tc3NlNC4xIC1XbCwtRSIpCi0gZW5kaWYgKCkKLS1zZXQgKENNQUtFX0NYWF9GTEFH UyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1zdGQ9YysrMHggLVdu by1pbnZhbGlkLW9mZnNldG9mIikKLStzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhf RkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIpCi0gc2V0 IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IikK LSBzZXQgKENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgICAgICAiLU8wIC1nIC1ER0JFX0RFQlVH PTEiKQotIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZPICItTzIgLWcgLURHQkVf REVCVUc9MSIpCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAgYmFj a2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotaW5kZXggYjM2ZjdiNC4uZTY2NjAzMSAxMDA2 NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLSsrKyBiL2JhY2tlbmQv c3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLUBAIC02OTQsOSArNjk0LDkgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gI2VuZGlmCi0gICAgICAgICAgICAgICAgICk7Ci0gCi0rICAgIGxsdm06OmNsOjpSZXNl dEFsbE9wdGlvbk9jY3VycmVuY2VzKCk7Ci0gICAgIGNsYW5nOjpDb21waWxlckludm9jYXRpb246 OkNyZWF0ZUZyb21BcmdzKCpDSSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmFyZ3NbMF0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhcmdzWzBdICsgYXJncy5zaXplKCksCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpBcnJheVJlZjxjb25zdCBjaGFyKj4o YXJncyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERp YWdzKTsKLSAgICAgLy8gQ3JlYXRlIHRoZSBjb21waWxlciBpbnN0YW5jZQotICAgICBjbGFuZzo6 Q29tcGlsZXJJbnN0YW5jZSBDbGFuZzsKLUBAIC0xMjQyLDggKzEyNDIsNyBAQCBFWFRFTkRfUVVP VEU6Ci0gICAgICAgLy8gQ3JlYXRlIHRoZSBjb21waWxlciBpbnZvY2F0aW9uCi0gICAgICAgc3Rk Ojp1bmlxdWVfcHRyPGNsYW5nOjpDb21waWxlckludm9jYXRpb24+IENJKG5ldyBjbGFuZzo6Q29t cGlsZXJJbnZvY2F0aW9uKTsKLSAgICAgICByZXR1cm4gY2xhbmc6OkNvbXBpbGVySW52b2NhdGlv bjo6Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0gKyBhcmdzLnNpemUoKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihhcmdzKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlhZ3MpOwotICAgICB9Ci0gI2Vu ZGlmCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAgYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotaW5kZXggYzZmYzMwZC4uODI0NDFk OCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLSsr KyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLUBAIC01NzUsMTAgKzU3 NSwxMiBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgICBoYXNfZXJyb3JzKGZhbHNlKSwKLSAgICAg ICAgIGxlZ2FjeU1vZGUodHJ1ZSkKLSAgICAgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAx MAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAz NwotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1dyYXBwZXJQYXNzUGFzcygqUGFzc1JlZ2lzdHJ5 OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0gI2Vsc2UKLSAgICAgICBpbml0aWFsaXplTG9vcEluZm9Q YXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYK LSAgICAgICBwYXNzID0gUEFTU19FTUlUX1JFR0lTVEVSUzsKLSAgICAgfQotZGlmZiAtLWdpdCBi YWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwIGJhY2tlbmQvc3JjL2xsdm0vbGx2 bV9nZW5fYmFja2VuZC5ocHAKLWluZGV4IGI0NzE1YjEuLjhlNzRmN2EgMTAwNjQ0Ci0tLS0gYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi1AQCAtMTMwLDEwICsxMzAsMTAgQEAgbmFtZXNwYWNl IGdiZQotICAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVHZW5QYXNzKGlyOjpVbml0ICZ1bml0 KTsKLSAKLSAgIC8qISBSZW1vdmUgdGhlIEdFUCBpbnN0cnVjdGlvbnMgKi8KLS0gIGxsdm06OkJh c2ljQmxvY2tQYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KTsK LSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5p dCAmdW5pdCk7Ci0gCi0gICAvKiEgTWVyZ2UgbG9hZC9zdG9yZSBpZiBwb3NzaWJsZSAqLwotLSAg bGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKTsK LSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygp OwotIAotICAgLyohIFNjYWxhcml6ZSBhbGwgdmVjdG9yIG9wIGluc3RydWN0aW9ucyAqLwotICAg bGx2bTo6RnVuY3Rpb25QYXNzKiBjcmVhdGVTY2FsYXJpemVQYXNzKCk7Ci1AQCAtMTQxLDcgKzE0 MSw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgIGxsdm06Ok1vZHVsZVBhc3MqIGNyZWF0ZUJhcnJpZXJO b2R1cFBhc3MoYm9vbCk7Ci0gCi0gICAvKiEgQ29udmVydCB0aGUgSW50cmluc2ljIGNhbGwgdG8g Z2VuIGZ1bmN0aW9uICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlSW50cmluc2lj TG93ZXJpbmdQYXNzKCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUludHJpbnNpY0xv d2VyaW5nUGFzcygpOwotIAotICAgLyohIFBhc3NlciB0aGUgcHJpbnRmIGZ1bmN0aW9uIGNhbGwu ICovCi0gICBsbHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0ZVByaW50ZlBhcnNlclBhc3MoaXI6OlVu aXQgJnVuaXQpOwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2ljX2xv d2VyaW5nLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAot aW5kZXggOTRmMGNlNi4uYjU1MzllOSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50 cmluc2ljX2xvd2VyaW5nLmNwcAotQEAgLTI5LDEyICsyOSwxMiBAQAotIHVzaW5nIG5hbWVzcGFj ZSBsbHZtOwotIAotIG5hbWVzcGFjZSBnYmUgewotLSAgICBjbGFzcyBJbnN0cmluc2ljTG93ZXJp bmcgOiBwdWJsaWMgQmFzaWNCbG9ja1Bhc3MKLSsgICAgY2xhc3MgSW5zdHJpbnNpY0xvd2VyaW5n IDogcHVibGljIEZ1bmN0aW9uUGFzcwotICAgICB7Ci0gICAgIHB1YmxpYzoKLSAgICAgICBzdGF0 aWMgY2hhciBJRDsKLSAgICAgICBJbnN0cmluc2ljTG93ZXJpbmcoKSA6Ci0tICAgICAgICBCYXNp Y0Jsb2NrUGFzcyhJRCkge30KLSsgICAgICAgIEZ1bmN0aW9uUGFzcyhJRCkge30KLSAKLSAgICAg ICB2b2lkIGdldEFuYWx5c2lzVXNhZ2UoQW5hbHlzaXNVc2FnZSAmQVUpIGNvbnN0IHsKLSAKLUBA IC05Myw5ICs5Myw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgQ0ktPmVyYXNlRnJvbVBh cmVudCgpOwotICAgICAgICAgcmV0dXJuIE5ld0NJOwotICAgICAgIH0KLS0gICAgICB2aXJ0dWFs IGJvb2wgcnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sgJkJCKQotKyAgICAgIHZpcnR1YWwgYm9v bCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKQotICAgICAgIHsKLS0gICAgICAgIGJvb2wgY2hh bmdlZEJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgTW9kdWxlICpNID0gQkIuZ2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotIAotICAg ICAgICAgRGF0YUxheW91dCBURChNKTsKLUBAIC0xNTksMTMgKzE1OSwxNCBAQCBuYW1lc3BhY2Ug Z2JlIHsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLS0gICAgICAg IHJldHVybiBjaGFuZ2VkQmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgICByZXR1cm4gdHJ1ZTsK LSAgICAgICB9Ci0gICAgIH07Ci0gCi0gICAgIGNoYXIgSW5zdHJpbnNpY0xvd2VyaW5nOjpJRCA9 IDA7Ci0gCi0tICAgIEJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3Mo KSB7Ci0rICAgIEZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCkgewot ICAgICAgIHJldHVybiBuZXcgSW5zdHJpbnNpY0xvd2VyaW5nKCk7Ci0gICAgIH0KLSB9IC8vIGVu ZCBuYW1lc3BhY2UKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9v cHRpbWl6YXRpb24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0 aW9uLmNwcAotaW5kZXggNWFhMzhiZS4uZTMxNDMwMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1AQCAtMjYsMTMgKzI2LDEzIEBA Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gbmFtZXNwYWNlIGdiZSB7Ci0tICBjbGFzcyBH ZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24gOiBwdWJsaWMgQmFzaWNCbG9ja1Bhc3MgewotKyAgY2xh c3MgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uIDogcHVibGljIEZ1bmN0aW9uUGFzcyB7Ci0gCi0g ICBwdWJsaWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBTY2FsYXJFdm9sdXRpb24gKlNF OwotICAgICBjb25zdCBEYXRhTGF5b3V0ICpURDsKLS0gICAgR2VuTG9hZFN0b3JlT3B0aW1pemF0 aW9uKCkgOiBCYXNpY0Jsb2NrUGFzcyhJRCkge30KLSsgICAgR2VuTG9hZFN0b3JlT3B0aW1pemF0 aW9uKCkgOiBGdW5jdGlvblBhc3MoSUQpIHt9Ci0gCi0gICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2Fn ZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzOAotQEAgLTQ1LDcgKzQ1LDkgQEAgbmFtZXNwYWNl IGdiZSB7Ci0gICAgICAgQVUuc2V0UHJlc2VydmVzQ0ZHKCk7Ci0gICAgIH0KLSAKLS0gICAgdmly dHVhbCBib29sIHJ1bk9uQmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikgewotKyAgICB2aXJ0dWFs IGJvb2wgcnVuT25GdW5jdGlvbihGdW5jdGlvbiAmRikgewotKyAgICAgICAgYm9vbCBjaGFuZ2Vk QW55QmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g I2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0g ICAgICAgU0UgPSAmZ2V0QW5hbHlzaXM8U2NhbGFyRXZvbHV0aW9uV3JhcHBlclBhc3M+KCkuZ2V0 U0UoKTsKLSAjZWxzZQotQEAgLTU5LDcgKzYxLDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAg I2Vsc2UKLSAgICAgICAgIFREID0gZ2V0QW5hbHlzaXNJZkF2YWlsYWJsZTxEYXRhTGF5b3V0Pigp OwotICAgICAgICNlbmRpZgotLSAgICAgIHJldHVybiBvcHRpbWl6ZUxvYWRTdG9yZShCQik7Ci0r ICAgICAgICAgICBjaGFuZ2VkQW55QmxvY2sgPSBvcHRpbWl6ZUxvYWRTdG9yZShCQikgfCBjaGFu Z2VkQW55QmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgICByZXR1cm4gY2hhbmdlZEFueUJsb2Nr OwotICAgICB9Ci0gICAgIFR5cGUgICAgKmdldFZhbHVlVHlwZShWYWx1ZSAqaW5zbik7Ci0gICAg IFZhbHVlICAgKmdldFBvaW50ZXJPcGVyYW5kKFZhbHVlICpJKTsKLUBAIC0xNDgsNyArMTUyLDcg QEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgdmFsdWVzLnB1c2hfYmFjayhtZXJnZWRbaV0pOwot ICAgICB9Ci0gICAgIExvYWRJbnN0ICpsZCA9IGNhc3Q8TG9hZEluc3Q+KG1lcmdlZFswXSk7Ci0t ICAgIHVuc2lnbmVkIGFsaWduID0gbGQtPmdldEFsaWdubWVudCgpOwotKyAgICBNYXliZUFsaWdu IGFsaWduID0gbGQtPmdldEFsaWduKCk7Ci0gICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9IGxkLT5n ZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUgZmlyc3QgbG9h ZAotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KGxkKTsKLUBAIC0yMzEsNyArMjM1LDcgQEAg bmFtZXNwYWNlIGdiZSB7Ci0gCi0gICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9IHN0LT5nZXRQb2lu dGVyQWRkcmVzc1NwYWNlKCk7Ci0gCi0tICAgIHVuc2lnbmVkIGFsaWduID0gc3QtPmdldEFsaWdu bWVudCgpOwotKyAgICBNYXliZUFsaWduIGFsaWduID0gc3QtPmdldEFsaWduKCk7Ci0gICAgIC8v IGluc2VydCBiZWZvcmUgdGhlIGxhc3Qgc3RvcmUKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2lu dChtZXJnZWRbc2l6ZS0xXSk7Ci0gCi1AQCAtMzI1LDcgKzMyOSw3IEBAIG5hbWVzcGFjZSBnYmUg ewotICAgICByZXR1cm4gY2hhbmdlZDsKLSAgIH0KLSAKLS0gIEJhc2ljQmxvY2tQYXNzICpjcmVh dGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCkgewotKyAgRnVuY3Rpb25QYXNzICpjcmVhdGVM b2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCkgewotICAgICByZXR1cm4gbmV3IEdlbkxvYWRTdG9y ZU9wdGltaXphdGlvbigpOwotICAgfQotIH07Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0v bGx2bV9wYXNzZXMuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCi1pbmRleCAx MDc1MmEzLi5iOGYyMjgyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nl cy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCi1AQCAtMzcsNyAr MzcsNyBAQAotICNpbmNsdWRlICJzeXMvbWFwLmhwcCIKLSAKLSB1c2luZyBuYW1lc3BhY2UgbGx2 bTsKLS0KLSt0ZW1wbGF0ZSBjbGFzcyBjZmc6OlVwZGF0ZTxCYXNpY0Jsb2NrICo+OwotIG5hbWVz cGFjZSBnYmUKLSB7Ci0gICBib29sIGlzS2VybmVsRnVuY3Rpb24oY29uc3QgbGx2bTo6RnVuY3Rp b24gJkYpIHsKLUBAIC0yMTksMTMgKzIxOSwxMyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIHJldHVy biBvZmZzZXQ7Ci0gICB9Ci0gCi0tICBjbGFzcyBHZW5SZW1vdmVHRVBQYXNzcyA6IHB1YmxpYyBC YXNpY0Jsb2NrUGFzcwotKyAgY2xhc3MgR2VuUmVtb3ZlR0VQUGFzc3MgOiBwdWJsaWMgRnVuY3Rp b25QYXNzCi0gICB7Ci0gCi0gICAgcHVibGljOgotICAgICBzdGF0aWMgY2hhciBJRDsKLSAgICAg R2VuUmVtb3ZlR0VQUGFzc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIDoKLS0gICAgICBCYXNpY0Js b2NrUGFzcyhJRCksCi0rICAgICAgRnVuY3Rpb25QYXNzKElEKSwKLSAgICAgICB1bml0KHVuaXQp IHt9Ci0gICAgIGNvbnN0IGlyOjpVbml0ICZ1bml0OwotICAgICB2b2lkIGdldEFuYWx5c2lzVXNh Z2UoQW5hbHlzaXNVc2FnZSAmQVUpIGNvbnN0IHsKLUBAIC0yNDIsMTYgKzI0MiwxOCBAQCBuYW1l c3BhY2UgZ2JlCi0gCi0gICAgIGJvb2wgc2ltcGxpZnlHRVBJbnN0cnVjdGlvbnMoR2V0RWxlbWVu dFB0ckluc3QqIEdFUEluc3QpOwotIAotLSAgICB2aXJ0dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2Nr KEJhc2ljQmxvY2sgJkJCKQotKyAgICB2aXJ0dWFsIGJvb2wgcnVuT25GdW5jdGlvbihGdW5jdGlv biAmRikKLSAgICAgewotLSAgICAgIGJvb2wgY2hhbmdlZEJsb2NrID0gZmFsc2U7Ci0rICAgICAg Ym9vbCBjaGFuZ2VkQW55QmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgaXBsaXN0PEluc3RydWN0aW9uPjo6aXRlcmF0b3IgSSA9IEJCLmdl dEluc3RMaXN0KCkuYmVnaW4oKTsKLSAgICAgICBmb3IgKGF1dG8gbmV4dEkgPSBJLCBFID0gLS1C Qi5nZXRJbnN0TGlzdCgpLmVuZCgpOyBJICE9IEU7IEkgPSBuZXh0SSkgewotICAgICAgICAgaXBs aXN0PEluc3RydWN0aW9uPjo6aXRlcmF0b3IgSSA9IG5leHRJKys7Ci0gICAgICAgICBpZihHZXRF bGVtZW50UHRySW5zdCogZ2VwID0gZHluX2Nhc3Q8R2V0RWxlbWVudFB0ckluc3Q+KCYqSSkpCi0t ICAgICAgICAgIGNoYW5nZWRCbG9jayA9IChzaW1wbGlmeUdFUEluc3RydWN0aW9ucyhnZXApIHx8 IGNoYW5nZWRCbG9jayk7Ci0rICAgICAgICAgIGNoYW5nZWRBbnlCbG9jayA9IChzaW1wbGlmeUdF UEluc3RydWN0aW9ucyhnZXApIHwgY2hhbmdlZEFueUJsb2NrKTsKLSAgICAgICB9Ci0tICAgICAg cmV0dXJuIGNoYW5nZWRCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICByZXR1cm4gY2hhbmdlZEFu eUJsb2NrOwotICAgICB9Ci0gICB9OwotIAotQEAgLTM2Nyw3ICszNjksNyBAQCBuYW1lc3BhY2Ug Z2JlCi0gICAgIHJldHVybiB0cnVlOwotICAgfQotIAotLSAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0 ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIHsKLSsgIEZ1bmN0aW9uUGFzcyAq Y3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkgewotICAgICByZXR1cm4g bmV3IEdlblJlbW92ZUdFUFBhc3NzKHVuaXQpOwotICAgfQotIH0gLyogbmFtZXNwYWNlIGdiZSAq LwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwIGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLWluZGV4IDJhMDk3YzguLjg2M2JlNmQg MTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi1AQCAtMzMsMTAgKzMzLDEy IEBAIG5hbWVzcGFjZSBnYmUgewotICAgY2xhc3MgU2FtcGxlckZpeCA6IHB1YmxpYyBGdW5jdGlv blBhc3MgewotICAgcHVibGljOgotICAgICBTYW1wbGVyRml4KCkgOiBGdW5jdGlvblBhc3MoSUQp IHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9S ICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUKLSAgICAgICBpbml0aWFsaXplRG9taW5h dG9yVHJlZVdyYXBwZXJQYXNzUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7 Ci0gI2Vsc2UKLSAgICAgICBpbml0aWFsaXplRG9taW5hdG9yVHJlZVBhc3MoKlBhc3NSZWdpc3Ry eTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICB9Ci0gCi1kaWZm IC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwIGJhY2tlbmQvc3JjL2xs dm0vbGx2bV9zY2FsYXJpemUuY3BwCi1pbmRleCBlOWEyYTY2Li5lOWQyZWU0IDEwMDY0NAotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLSsrKyBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi1AQCAtOTYsMTAgKzk2LDEyIEBAIG5hbWVzcGFjZSBn YmUgewotIAotICAgICBTY2FsYXJpemUoKSA6IEZ1bmN0aW9uUGFzcyhJRCkKLSAgICAgewotKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVl V3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxz ZQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQ YXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2VuZGlmCi0gICAgIH0KLSAKLWRpZmYgLS1naXQg dXRlc3RzL0NNYWtlTGlzdHMudHh0IHV0ZXN0cy9DTWFrZUxpc3RzLnR4dAotaW5kZXggMzAwZDg3 YS4uNjQxNzljNyAxMDA2NDQKLS0tLSBhL3V0ZXN0cy9DTWFrZUxpc3RzLnR4dAotKysrIGIvdXRl c3RzL0NNYWtlTGlzdHMudHh0Ci1AQCAtMjYsOCArMjYsOCBAQCBpZiAoTk9UIE5PVF9CVUlMRF9T VEFORF9BTE9ORV9VVEVTVCkKLSAgICMgVGhyZWFkcwotICAgRmluZF9QYWNrYWdlKFRocmVhZHMp Ci0gCi0tICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Q01BS0Vf Q19DWFhfRkxBR1N9IC1zdGQ9YysrMHggLVduby1pbnZhbGlkLW9mZnNldG9mIikKLS0gIHNldCAo Q01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSIpCi0r ICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Q01BS0VfQ19DWFhf RkxBR1N9IC1Xbm8taW52YWxpZC1vZmZzZXRvZiAtZmZsb2F0LXN0b3JlIC1mbm8tc3RyaWN0LWFs aWFzaW5nIikKLSsgIHNldCAoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtF X0NfQ1hYX0ZMQUdTfSAtZmZsb2F0LXN0b3JlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIikgI2NvbXBp bGVyX3tkZWdyZWVzLHJhZGlhbnMsZnVuY3Rpb25fYXJndW1lbnQyfSB1c2UgZXF1YWxpdHkgY29t cGFyaXNvbiBvZiBmbG9hdHMsIGNvbXBpbGVyX2xvbmdfYml0Y2FzdCB1c2VzIGFsaWFzaW5nCi0g ICBzZXQgKENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgICAgICAiLU8wIC1nIC1ER0JFX0RFQlVH PTEiKQotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAtREdC RV9ERUJVRz0xIikKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX01JTlNJWkVSRUwgICAgICItT3Mg LUROREVCVUcgLURHQkVfREVCVUc9MCIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9sbHZtMTEucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjM2E0Mjc4OTQzYy4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDkzNyArMCwwIEBACi1Tb3VyY2U6IFNuZWt0cm9uCi0KLVRoZXJlIHdlcmUgYSBmZXcg Y2hhbmdlcyByZXF1aXJlZCBmb3IgTExWTSAxMToKLSogbGx2bTo6U3RyaW5nUmVmIHJlcXVpcmVz IC5zdHIoKSwgaW1wbGljaXQgY29udmVyc2lvbiB3YXMgcmVtb3ZlZAotKiBsbHZtOjpDYWxsU2l0 ZSB3YXMgcmVtb3ZlZCwgYnV0IHRoZSByZXF1aXJlZCBtZXRob2RzIGFyZSBhdmFpbGFibGUgb24g bGx2bTo6Q2FsbEluc3QKLSogVmVjdG9yVHlJRCB3YXMgc3BsaXQgaW50byBGaXhlZFZlY3RvclR5 SUQgYW5kIFNjYWxhYmxlVmVjdG9yVHlJRCwgRml4ZWRWZWN0b3JUeUlEIHdhcyB1c2VkCi0qIENh bGxJbnN0OjpnZXRDYWxsZWRWYWx1ZSgpIHdhcyByZW5hbWVkIHRvIENhbGxJbnN0OjpnZXRDYWxs ZWRPcGVyYW5kKCkKLSogSW1wbGljaXQgY29udmVyc2lvbiBmcm9tIE1heWJlQWxpZ24gdG8gQWxp Z24gd2FzIHJlbW92ZWQsIHNvIE1heWJlQWxpZ246OnZhbHVlT3JPbmUgd2FzIHVzZWQgaW5zdGVh ZC4KLQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9TdHJpcEF0dHJpYnV0ZXMuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL1N0cmlw QXR0cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAxOTowNDoxOS42NDE4OTcxNDEgKzAxMDAKLUBAIC0x MDcsOSArMTA3LDggQEAKLSAgICAgICAgQkIgIT0gRTsgKytCQikgewotICAgICBmb3IgKEJhc2lj QmxvY2s6Oml0ZXJhdG9yIEluc3QgPSBCQi0+YmVnaW4oKSwgRSA9IEJCLT5lbmQoKTsKLSAgICAg ICAgICBJbnN0ICE9IEU7ICsrSW5zdCkgewotLSAgICAgIENhbGxTaXRlIENhbGwoJipJbnN0KTsK LS0gICAgICBpZiAoQ2FsbCkKLS0gICAgICAgIENhbGwuc2V0Q2FsbGluZ0NvbnYoQ2FsbGluZ0Nv bnY6OkMpOwotKyAgICAgIGlmIChDYWxsSW5zdCogY2FsbEluc3QgPSBkeW5fY2FzdDxDYWxsSW5z dD4oJipJbnN0KSkKLSsgICAgICAgIGNhbGxJbnN0LT5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29u djo6Qyk7Ci0gICAgIH0KLSAgIH0KLQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwCTIwMjAtMTEtMDkgMTc6MDQ6MDku NjMzNzUzNDI4ICswMTAwCi1AQCAtOTgsNyArOTgsNyBAQAotICAgICAgICAgaWYgKGNhbGxGdW5j ICYmIGNhbGxGdW5jLT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAgICAgICAgIGNvbnRpbnVl OwotCi0tICAgICAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgp LT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgICAgICBzdGQ6OnN0cmluZyBm bk5hbWUgPSBjYWxsLT5nZXRDYWxsZWRPcGVyYW5kKCktPnN0cmlwUG9pbnRlckNhc3RzKCktPmdl dE5hbWUoKS5zdHIoKTsKLQotICAgICAgICAgaWYgKCFNRlMuaW5zZXJ0KGZuTmFtZSkuc2Vjb25k KSB7Ci0gICAgICAgICAgIGNvbnRpbnVlOwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2Rl dmljZV9lbnF1ZXVlLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAkyMDIwLTExLTA5IDE5 OjAxOjQ5LjIwMTkxNTAwOCArMDEwMAotQEAgLTQ1LDcgKzQ1LDcgQEAKLSAgICAgICByZXR1cm4g TlVMTDsKLQotICAgICAvKiBUaGlzIGlzIGEgZmFrZSwgdG8gY2hlY2sgdGhlIGZ1bmN0aW9uIGJp dGNhc3QgaXMgZm9yIGJsb2NrIG9yIG5vdCAqLwotLSAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBG bi0+Z2V0TmFtZSgpOwotKyAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpLnN0 cigpOwotICAgICBpZihmbk5hbWUuZmluZCgiX2ludm9rZSIpID09IHN0ZDo6c3RyaW5nOjpucG9z KQotICAgICAgIHJldHVybiBOVUxMOwotCi1AQCAtMTE5LDE4ICsxMTksMTggQEAKLSAgICAgICBQ YXJhbVR5cy5wdXNoX2JhY2sodHkpOwotICAgICB9Ci0gICAgIEZ1bmN0aW9uVHlwZSogTmV3RlQg PSBGdW5jdGlvblR5cGU6OmdldChGbi0+Z2V0UmV0dXJuVHlwZSgpLCBQYXJhbVR5cywgZmFsc2Up OwotLSAgICBGdW5jdGlvbiogTmV3Rm4gPSBGdW5jdGlvbjo6Q3JlYXRlKE5ld0ZULCBGdW5jdGlv bjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0TmFtZSgpKTsKLSsgICAgRnVuY3Rpb24qIE5ld0Zu ID0gRnVuY3Rpb246OkNyZWF0ZShOZXdGVCwgRnVuY3Rpb246OkV4dGVybmFsTGlua2FnZSwgRm4t PmdldE5hbWUoKS5zdHIoKSk7Ci0gICAgIFNtYWxsVmVjdG9yPFJldHVybkluc3QqLCA4PiBSZXR1 cm5zOwotCi0gICAgIEZ1bmN0aW9uOjphcmdfaXRlcmF0b3IgTmV3Rm5BcmdJdCA9IE5ld0ZuLT5h cmdfYmVnaW4oKTsKLSAgICAgZm9yIChGdW5jdGlvbjo6YXJnX2l0ZXJhdG9yIEkgPSBGbi0+YXJn X2JlZ2luKCksIEUgPSBGbi0+YXJnX2VuZCgpOyBJICE9IEU7ICsrSSkgewotLSAgICAgIHN0ZDo6 c3RyaW5nIEFyZ05hbWUgPSBJLT5nZXROYW1lKCk7Ci0rICAgICAgc3RkOjpzdHJpbmcgQXJnTmFt ZSA9IEktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICBOZXdGbkFyZ0l0LT5zZXROYW1lKEFyZ05h bWUpOwotICAgICAgIFZNYXBbJipJXSA9ICYoKk5ld0ZuQXJnSXQrKyk7Ci0gICAgIH0KLSAgICAg Q2xvbmVGdW5jdGlvbkludG8oTmV3Rm4sIEZuLCBWTWFwLCAvKk1vZHVsZUxldmVsQ2hhbmdlcz0q L3RydWUsIFJldHVybnMpOwotCi0tICAgIEZuLT5zZXROYW1lKCJfX2QiICsgRm4tPmdldE5hbWUo KSk7Ci0rICAgIEZuLT5zZXROYW1lKCJfX2QiICsgRm4tPmdldE5hbWUoKS5zdHIoKSk7Ci0gICAg IG1vZC0+Z2V0RnVuY3Rpb25MaXN0KCkucHVzaF9iYWNrKE5ld0ZuKTsKLSAgICAgLy9tb2QtPmdl dE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4tPmdldE5hbWUoKSwgTmV3Rm4tPmdldEZ1bmN0aW9uVHlw ZSgpLAotICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBOZXdGbi0+Z2V0QXR0cmlidXRl cygpKTsKLUBAIC0xNDcsNyArMTQ3LDcgQEAKLSAgICAgICBhcmdUeXBlTmFtZXMucHVzaF9iYWNr KGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgImNoYXIqIikpOwotICAgICAgIGFyZ0Jhc2VU eXBlTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgImNoYXIqIikp OwotICAgICAgIGFyZ1R5cGVRdWFscy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250 ZXh0LCAiIikpOwotLSAgICAgIGFyZ05hbWVzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0 KENvbnRleHQsIEktPmdldE5hbWUoKSkpOwotKyAgICAgIGFyZ05hbWVzLnB1c2hfYmFjayhsbHZt OjpNRFN0cmluZzo6Z2V0KENvbnRleHQsIEktPmdldE5hbWUoKS5zdHIoKSkpOwotICAgICB9Ci0K LSAgICAgLy9JZiBydW4gdG8gaGVyZSwgbGx2bSB2ZXJzaW9uIGFsd2F5cyA+IDMuOSwgYWRkIHRo ZSB2ZXJzaW9uIGNoZWNrIGp1c3QgZm9yIGJ1aWxkLgotQEAgLTE5OCw3ICsxOTgsNyBAQAotICAg ICAgICAgICAgKiBpbnZva2UgcG9pbnRlciB0byBzdG9yZSB0aGUgaW5kZXggaW4gdGhlIHVuaXQn cyBibG9jayBmdW5jdGlvbnMgaW5kZXguKi8KLSAgICAgICAgICAgRnVuY3Rpb24gKkZuID0gZHlu X2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLQotLSAgICAgICAgICBzdGQ6OnN0 cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICBzdGQ6OnN0cmluZyBmbk5h bWUgPSBGbi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICBpbnQgaW5kZXggPSAtMTsKLSAg ICAgICAgICAgZm9yKHNpemVfdCBpPTA7IGk8dW5pdC5ibG9ja0Z1bmNzLnNpemUoKTsgaSsrKSB7 Ci0gICAgICAgICAgICAgaWYodW5pdC5ibG9ja0Z1bmNzW2ldID09IGZuTmFtZSkgewotQEAgLTI0 MSw3ICsyNDEsNyBAQAotICAgICAgICAgICAgIC8vdW5uYW1lZCBjYWxsIGZ1bmN0aW9uLCBwYXJz ZSB0aGUgdXNlIHRvIGZpbmQgdGhlIGRlZmluZSBvZiBjYWxsZWQgZnVuY3Rpb24KLSAgICAgICAg ICAgICBTbWFsbFZlY3RvcjxWYWx1ZSosIDE2PiBhcmdzKENJLT5vcF9iZWdpbigpLCBDSS0+b3Bf ZW5kKCktMSk7Ci0KLS0gICAgICAgICAgICBWYWx1ZSAqdiA9IENJLT5nZXRDYWxsZWRWYWx1ZSgp OwotKyAgICAgICAgICAgIFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZE9wZXJhbmQoKTsKLSAgICAg ICAgICAgICBCaXRDYXN0SW5zdCogYnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4odik7Ci0gICAg ICAgICAgICAgaWYoYnQgPT0gTlVMTCkKLSAgICAgICAgICAgICAgIGNvbnRpbnVlOwotQEAgLTMx Niw3ICszMTYsNyBAQAotICAgICAgICAgICAgICAgICAgIENvbnN0YW50RXhwciAqZXhwciA9IGR5 bl9jYXN0PENvbnN0YW50RXhwcj4oYy0+Z2V0T3BlcmFuZCgzKSk7Ci0gICAgICAgICAgICAgICAg ICAgQml0Q2FzdEluc3QgKmJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+KGV4cHItPmdldEFzSW5z dHJ1Y3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgRnVuY3Rpb24qIGYgPSBkeW5fY2FzdDxG dW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2 XSA9IGYtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5nZXRO YW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLQotQEAg LTMzMiw3ICszMzIsNyBAQAotICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8vaGFu ZGxlIGVucXVldWVfa2VybmVsIGZ1bmN0aW9uIGNhbGwKLSAgICAgICAgICAgICBGdW5jdGlvbiAq Zm4gPSBDSS0+Z2V0Q2FsbGVkRnVuY3Rpb24oKTsKLS0gICAgICAgICAgICBpZiAoZm4tPmdldE5h bWUoKS5maW5kKCJlbnF1ZXVlX2tlcm5lbCIpID09IHN0ZDo6c3RyaW5nOjpucG9zKQotKyAgICAg ICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLnN0cigpLmZpbmQoImVucXVldWVfa2VybmVsIikgPT0g c3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAg ICAgIC8vYmxvY2sgcGFyYW1ldGVyJ3MgaW5kZXgsIDMgb3IgNgotQEAgLTM2MSw3ICszNjEsNyBA QAotICAgICAgICAgICAgICAgICAgIENvbnN0YW50RXhwciAqZXhwciA9IGR5bl9jYXN0PENvbnN0 YW50RXhwcj4oYy0+Z2V0T3BlcmFuZCgzKSk7Ci0gICAgICAgICAgICAgICAgICAgQml0Q2FzdElu c3QgKmJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+KGV4cHItPmdldEFzSW5zdHJ1Y3Rpb24oKSk7 Ci0gICAgICAgICAgICAgICAgICAgRnVuY3Rpb24qIGYgPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQt PmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5h bWUoKTsKLSsgICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5nZXROYW1lKCkuc3RyKCk7 Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9IGVs c2UgaWYoaXNhPEFsbG9jYUluc3Q+KGJsb2NrKSkgewotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2dlbl9iYWNrZW5kLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAot KysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAkyMDIwLTExLTA5IDE4 OjMzOjUwLjkxOTExNDMyNyArMDEwMAotQEAgLTM3Niw3ICszNzYsNyBAQAotICAgICAgICAgICBH QkVfQVNTRVJUKGluZGV4ID09IDApOwotICAgICAgICAgICByZXR1cm4gdGhpcy0+X25ld1NjYWxh cih2YWx1ZSwga2V5LCB0eXBlLCBpbmRleCwgdW5pZm9ybSk7Ci0gICAgICAgICAgIGJyZWFrOwot LSAgICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgICAgY2FzZSBUeXBlOjpGaXhl ZFZlY3RvclR5SUQ6Ci0gICAgICAgICB7Ci0gICAgICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9IGNh c3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAgICAgIGF1dG8gZWxlbWVudFR5cGUgPSB2ZWN0 b3JUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotQEAgLTc0MywyMCArNzQzLDIwIEBACi0gI3VuZGVm IERFQ0xfVklTSVRfRk4KLQotICAgICAvLyBFbWl0IHJvdW5kaW5nIGluc3RydWN0aW9ucyBmcm9t IGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0Um91bmRpbmdDYWxsSW5zdChDYWxs SW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSk7Ci0rICAgIHZvaWQgZW1p dFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlKTsKLSAgICAg Ly8gRW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAg IHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9w Y29kZSBvcGNvZGUsIGlyOjpUeXBlID0gaXI6OlRZUEVfRkxPQVQpOwotKyAgICB2b2lkIGVtaXRV bmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgPSBp cjo6VFlQRV9GTE9BVCk7Ci0gICAgIC8vIEVtaXQgdW5hcnkgaW5zdHJ1Y3Rpb25zIGZyb20gZ2Vu IG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBD YWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0QXRvbWlj SW5zdChDYWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHdv cmtncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0V29ya0dyb3VwSW5zdChDYWxsSW5z dCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSk7Ci0rICAgIHZvaWQg ZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsK LSAgICAgLy8gRW1pdCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0U3ViR3Jv dXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2Rl KTsKLSsgICAgdm9pZCBlbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3Vw T3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgc3ViZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZv aWQgZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBi b29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsK LS0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpU WVBFX1UzMik7Ci0rICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChDYWxsSW5zdCAm SSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpUWVBFX1Uz Mik7Ci0rICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBi b29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsK LQotLSAgICB1aW50OF90IGFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSk7 Ci0rICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihVc2VyOjpvcF9pdGVyYXRvciBBSSk7Ci0gICAg IHVpbnQ4X3QgZ2V0SW1hZ2VJRChDYWxsSW5zdCAmSSk7Ci0KLSAgICAgLy8gVGhlc2UgaW5zdHJ1 Y3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGF0IGFsbAotQEAgLTEzMjAsMTMgKzEzMjAsMTMgQEAK LSAjZW5kaWYKLQotICAgICAgIGlmKHR5cGVOYW1lTm9kZSkgewotLSAgICAgICAgbGx2bUluZm8u dHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkp KS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJp bmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsK LSAgICAgICB9Ci0gICAgICAgaWYodHlwZUJhc2VOYW1lTm9kZSkgewotLSAgICAgICAgbGx2bUlu Zm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3Bl cmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgIGxsdm1JbmZvLnR5cGVCYXNlTmFt ZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+ Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgfQotLSAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAo Y2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpOwotLSAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFs Tm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICBsbHZtSW5mby50 eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkp LT5nZXRTdHJpbmcoKS5zdHIoKTsKLSsgICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1E U3RyaW5nPih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3Ry KCk7Ci0gICAgICAgYm9vbCBpc0ltYWdlID0gbGx2bUluZm8uaXNJbWFnZVR5cGUoKTsKLSAgICAg ICBib29sIGlzUGlwZSA9IGxsdm1JbmZvLmlzUGlwZVR5cGUoKTsKLSAgICAgICBpZiAoSS0+Z2V0 VHlwZSgpLT5pc1BvaW50ZXJUeSgpIHx8IGlzSW1hZ2UgfHwgaXNQaXBlKSB7Ci1AQCAtMTUzMSw3 ICsxNTMxLDcgQEAKLSAgICAgICAgICAgICBFbHRUeSA9IGdldEVsdFR5cGUoRWx0VHksIFR5cGVJ bmRleCk7Ci0gICAgICAgICB9Ci0KLS0gICAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0 Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudChwb2ludGVyLT5nZXROYW1lKCkpOwotKyAgICAgICAg aXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHBvaW50 ZXItPmdldE5hbWUoKS5zdHIoKSk7Ci0gICAgICAgICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0ID0g Y2MuZ2V0T2Zmc2V0KCk7Ci0gICAgICAgICByZWxvY3MucHVzaF9iYWNrKGlyOjpSZWxvY0VudHJ5 KG9mZnNldCwgZGVmT2Zmc2V0ICsgY29uc3RhbnRPZmZzZXQpKTsKLQotQEAgLTE1NDYsNyArMTU0 Niw3IEBACi0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gICAgIGlmIChpc2E8R2xvYmFsVmFyaWFi bGU+KGMpKSB7Ci0tICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgp LmdldENvbnN0YW50KGMtPmdldE5hbWUoKSk7Ci0rICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5p dC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KGMtPmdldE5hbWUoKS5zdHIoKSk7Ci0gICAg ICAgdW5zaWduZWQgaW50IGRlZk9mZnNldCA9IGNjLmdldE9mZnNldCgpOwotCi0gICAgICAgcmVs b2NzLnB1c2hfYmFjayhpcjo6UmVsb2NFbnRyeShvZmZzZXQsIGRlZk9mZnNldCkpOwotQEAgLTE2 MDksNyArMTYwOSw3IEBACi0gICAgICAgICAgIH0KLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICB9Ci0tICAgICAgY2FzZSBUeXBlOjpUeXBlSUQ6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2FzZSBU eXBlOjpUeXBlSUQ6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICAgIHsKLSAgICAgICAgICAgY29u c3QgQ29uc3RhbnREYXRhU2VxdWVudGlhbCAqY2RzID0gZHluX2Nhc3Q8Q29uc3RhbnREYXRhU2Vx dWVudGlhbD4oYyk7Ci0gICAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUgKnZlY1R5ID0gY2FzdDxW ZWN0b3JUeXBlPih0eXBlKTsKLUBAIC0xOTM2LDcgKzE5MzYsNyBAQAotICAgICAgIGNhc2UgVHlw ZTo6UG9pbnRlclR5SUQ6Ci0gICAgICAgICByZWdUcmFuc2xhdG9yLm5ld1NjYWxhcih2YWx1ZSwg a2V5LCAwLCB1bmlmb3JtKTsKLSAgICAgICAgIGJyZWFrOwotLSAgICAgIGNhc2UgVHlwZTo6VmVj dG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0g ICAgICAgICBhdXRvIHZlY3RvclR5cGUgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotICAgICAg ICAgY29uc3QgdWludDMyX3QgZWxlbU51bSA9IHZlY3RvclR5cGUtPmdldE51bUVsZW1lbnRzKCk7 Ci1AQCAtMjM5NSw3ICsyMzk1LDcgQEAKLSAjZW5kaWYKLSAgICAgICAgIH0KLSAgICAgICAgIGlm KHR5cGVOYW1lTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby50eXBlTmFtZSA9IChjYXN0PE1E U3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0r ICAgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9k ZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgICAgLy9M TFZNIDMuOSBpbWFnZSdzIHR5cGUgbmFtZSBpbmNsdWRlIGFjY2VzcyBxdWFsLCBkb24ndCBtYXRj aCBPcGVuQ0wgc3BlYywgZXJhc2UgdGhlbS4KLSAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpz dHJpbmc+IGZpbHRlcnMgPSB7Il9fcmVhZF9vbmx5ICIsICJfX3dyaXRlX29ubHkgIn07Ci0gICAg ICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNpemUoKTsgaSsrKSB7Ci1A QCAtMjQwNiwxNiArMjQwNiwxNiBAQAotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAg ICBpZih0eXBlQmFzZU5hbWVOb2RlKXsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1l ID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+ Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLnR5cGVCYXNlTmFtZSA9IChjYXN0PE1E U3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp LnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYoYWNjZXNzUXVhbE5vZGUpIHsKLS0gICAg ICAgICAgbGx2bUluZm8uYWNjZXNzUXVhbCA9IChjYXN0PE1EU3RyaW5nPihhY2Nlc3NRdWFsTm9k ZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8u YWNjZXNzUXVhbCA9IChjYXN0PE1EU3RyaW5nPihhY2Nlc3NRdWFsTm9kZS0+Z2V0T3BlcmFuZChv cElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmKHR5cGVR dWFsTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5n Pih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAg ICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLSAgICAgICAg IGlmKGFyZ05hbWVOb2RlKXsKLS0gICAgICAgICAgbGx2bUluZm8uYXJnTmFtZSA9IChjYXN0PE1E U3RyaW5nPihhcmdOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsg ICAgICAgICAgbGx2bUluZm8uYXJnTmFtZSA9IChjYXN0PE1EU3RyaW5nPihhcmdOYW1lTm9kZS0+ Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLQotICAg ICAgICAgLy8gZnVuY3Rpb24gYXJndW1lbnRzIGFyZSB1bmlmb3JtIHZhbHVlcy4KLUBAIC0zMDEw LDcgKzMwMTAsNyBAQAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgdGhpcy0+bmV3UmVn aXN0ZXIoY29uc3RfY2FzdDxHbG9iYWxWYXJpYWJsZSo+KCZ2KSk7Ci0gICAgICAgICAgIGlyOjpS ZWdpc3RlciByZWcgPSByZWdUcmFuc2xhdG9yLmdldFNjYWxhcihjb25zdF9jYXN0PEdsb2JhbFZh cmlhYmxlKj4oJnYpLCAwKTsKLS0gICAgICAgICAgaXI6OkNvbnN0YW50ICZjb24gPSB1bml0Lmdl dENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQodi5nZXROYW1lKCkpOwotKyAgICAgICAgICBpcjo6 Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudCh2LmdldE5h bWUoKS5zdHIoKSk7Ci0gICAgICAgICAgIGlmICghbGVnYWN5TW9kZSkgewotICAgICAgICAgICAg IGlyOjpSZWdpc3RlciByZWdsb2FkID0gY3R4LnJlZyhnZXRGYW1pbHkoZ2V0VHlwZShjdHgsIHYu Z2V0VHlwZSgpKSkpOwotICAgICAgICAgICAgIGN0eC5MT0FESShnZXRUeXBlKGN0eCwgdi5nZXRU eXBlKCkpLCByZWdsb2FkLCBjdHgubmV3SW50ZWdlckltbWVkaWF0ZShjb24uZ2V0T2Zmc2V0KCks IGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSkpKTsKLUBAIC0zMjEyLDcgKzMyMTIsNyBAQAotICAg ICAgICAgR0JFX0FTU0VSVE0oZmFsc2UsICJVbnN1cHBvcnRlZCBjYWxsaW5nIGNvbnZlbnRpb24i KTsKLSAgICAgfQotCi0tICAgIGN0eC5zdGFydEZ1bmN0aW9uKEYuZ2V0TmFtZSgpKTsKLSsgICAg Y3R4LnN0YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkuc3RyKCkpOwotCi0gICAgIGlyOjpGdW5jdGlv biAmZm4gPSBjdHguZ2V0RnVuY3Rpb24oKTsKLSAgICAgdGhpcy0+cmVnVHJhbnNsYXRvci5jbGVh cigpOwotQEAgLTM4MTAsOSArMzgxMCw5IEBACi0KLSAgIHZvaWQgR2VuV3JpdGVyOjpyZWdBbGxv Y2F0ZUNhbGxJbnN0KENhbGxJbnN0ICZJKSB7Ci0gICAgIFZhbHVlICpkc3QgPSAmSTsKLS0gICAg VmFsdWUgKkNhbGxlZSA9IEkuZ2V0Q2FsbGVkVmFsdWUoKTsKLSsgICAgVmFsdWUgKkNhbGxlZSA9 IEkuZ2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICBHQkVfQVNTRVJUKGN0eC5nZXRGdW5jdGlvbigp LmdldFByb2ZpbGUoKSA9PSBpcjo6UFJPRklMRV9PQ0wpOwotLSAgICBHQkVfQVNTRVJUKGlzYTxJ bmxpbmVBc20+KEkuZ2V0Q2FsbGVkVmFsdWUoKSkgPT0gZmFsc2UpOwotKyAgICBHQkVfQVNTRVJU KGlzYTxJbmxpbmVBc20+KEkuZ2V0Q2FsbGVkT3BlcmFuZCgpKSA9PSBmYWxzZSk7Ci0gICAgIGlm KEkuZ2V0TnVtQXJnT3BlcmFuZHMoKSkgR0JFX0FTU0VSVChJLmhhc1N0cnVjdFJldEF0dHIoKSA9 PSBmYWxzZSk7Ci0KLSAgICAgLy8gV2Ugb25seSBzdXBwb3J0IGEgc21hbGwgbnVtYmVyIG9mIGlu dHJpbnNpY3MgcmlnaHQgbm93Ci1AQCAtMzg3MCw3ICszODcwLDcgQEAKLSAgICAgICB9Ci0gICAg IH0KLSAgICAgLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBjYWxsZWQgZnVuY3Rpb24gYW5kIGhhbmRs ZSBpdAotLSAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRl ckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2Fs bGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgIGF1dG8gZ2Vu SW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUpOwotICAgICBzd2l0Y2ggKGdl bkludHJpbnNpY0lEKSB7Ci0gICAgICAgY2FzZSBHRU5fT0NMX0dFVF9HUk9VUF9JRDA6Ci1AQCAt NDE2Niw3ICs0MTY2LDcgQEAKLSAgICAgfTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUg b3Bjb2RlKSB7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbElu c3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlKSB7Ci0gICAgIGlmIChJLmdldFR5cGUoKS0+aXNIYWxm VHkoKSkgewotICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMgPSB0aGlzLT5nZXRSZWdpc3Rl cihJLmdldE9wZXJhbmQoMCkpOwotICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmNGbG9hdCA9 IGN0eC5yZWcoaXI6OkZBTUlMWV9EV09SRCk7Ci1AQCAtNDE3NywxNCArNDE3NywxNCBAQAotICAg ICAgIGN0eC5GMzJUTzE2KGlyOjpUWVBFX1UxNiwgaXI6OlRZUEVfRkxPQVQsIGRzdCwgZHN0Rmxv YXQpOwotICAgICB9IGVsc2UgewotICAgICAgIEdCRV9BU1NFUlQoSS5nZXRUeXBlKCktPmlzRmxv YXRUeSgpKTsKLS0gICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLG9wY29kZSk7Ci0r ICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxvcGNvZGUpOwotICAgICB9Ci0gICB9Ci0K LS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNp dGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgdHlwZSkgewotLSAgICBDYWxsU2l0 ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6 ZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlw ZSB0eXBlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSAj aWYgR0JFX0RFQlVHCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5k KCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gI2VuZGlmIC8q IEdCRV9ERUJVRyAqLwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLSAgICAgY29uc3QgaXI6 OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7Ci1AQCAtNDI5Myw5ICs0Mjkz LDkgQEAKLSAgICAgdGhpcy0+ZW1pdEF0b21pY0luc3RIZWxwZXIob3Bjb2RlLCB0eXBlLCBkc3Qs IGxsdm1QdHIsIHBheWxvYWRUdXBsZSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0 QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6QXRvbWljT3BzIG9wY29k ZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0t ICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdl bldyaXRlcjo6ZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIGlyOjpBdG9taWNPcHMgb3Bjb2Rl KSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBB RSk7Ci0gICAgIFZhbHVlICpsbHZtUHRyID0gKkFJOwotICAgICBpcjo6QWRkcmVzc1NwYWNlIGFk ZHJTcGFjZSA9IGFkZHJlc3NTcGFjZUxMVk1Ub0dlbihsbHZtUHRyLT5nZXRUeXBlKCktPmdldFBv aW50ZXJBZGRyZXNzU3BhY2UoKSk7Ci1AQCAtNDM0OCw3ICs0MzQ4LDcgQEAKLSAgICAgfQotICAg fQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIENh bGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLSsgIHZvaWQgR2VuV3JpdGVy OjplbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUp IHsKLSAgICAgaXI6OkZ1bmN0aW9uICZmID0gY3R4LmdldEZ1bmN0aW9uKCk7Ci0KLSAgICAgaWYg KGYuZ2V0d2dCcm9hZGNhc3RTTE0oKSA8IDAgJiYgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1Bf QlJPQURDQVNUKSB7Ci1AQCAtNDM3OCw4ICs0Mzc4LDggQEAKLSAgICAgICBHQkVfQVNTRVJUKGYu Z2V0dGlkTWFwU0xNKCkgPj0gMCk7Ci0gICAgIH0KLQotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJh dG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUg PSBDUy5hcmdfZW5kKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4o KTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FT U0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgaWYgKG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FM TCB8fCBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9BTlkpIHsKLUBAIC00MzkxLDE0ICs0Mzkx LDE0IEBACi0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUo JnNyY1swXSwgMyk7Ci0gICAgICAgY3R4LldPUktHUk9VUChvcGNvZGUsICh1aW50MzJfdClmLmdl dHRpZE1hcFNMTSgpLCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCAzLCBpcjo6VFlQRV9TMzIp OwotICAgICB9IGVsc2UgaWYgKG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCkg ewotLSAgICAgIGludCBhcmdOdW0gPSBDUy5hcmdfc2l6ZSgpOwotKyAgICAgIGludCBhcmdOdW0g PSBJLmFyZ19zaXplKCk7Ci0gICAgICAgc3RkOjp2ZWN0b3I8aXI6OlJlZ2lzdGVyPiBzcmMoYXJn TnVtKTsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ051bTsgaSsrKSB7Ci0gICAgICAg ICBzcmNbaV0gPSB0aGlzLT5nZXRSZWdpc3RlcigqKEFJKyspKTsKLSAgICAgICB9Ci0gICAgICAg Y29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgYXJnTnVt KTsKLSAgICAgICBjdHguV09SS0dST1VQKGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNULCAodWlu dDMyX3QpZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpLCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCBh cmdOdW0sCi0tICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigpKS0+Z2V0VHlw ZSgpKSk7Ci0rICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkpLT5nZXRUeXBl KCkpKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAqc2lnbiA9IGR5bl9jYXN0 PENvbnN0YW50SW50PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWduKTsKLUBAIC00NDIzLDkg KzQ0MjMsOSBAQAotICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBH ZW5Xcml0ZXI6OmVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6 OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9 IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJn X2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkks IGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0g SS5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsK LSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgaWYgKG9wY29kZSA9PSBpcjo6V09S S0dST1VQX09QX0FMTCB8fCBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9BTlkpIHsKLUBAIC00 NDM1LDcgKzQ0MzUsNyBAQAotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5h cnJheVR1cGxlKCZzcmNbMF0sIDEpOwotICAgICAgIGN0eC5TVUJHUk9VUChvcGNvZGUsIGdldFJl Z2lzdGVyKCZJKSwgc3JjVHVwbGUsIDEsIGlyOjpUWVBFX1MzMik7Ci0gICAgIH0gZWxzZSBpZiAo b3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0tICAgICAgaW50IGFyZ051 bSA9IENTLmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9IEkuYXJnX3NpemUoKTsKLSAg ICAgICBHQkVfQVNTRVJUKGFyZ051bSA9PSAyKTsKLSAgICAgICBzdGQ6OnZlY3Rvcjxpcjo6UmVn aXN0ZXI+IHNyYyhhcmdOdW0pOwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnTnVtOyBp KyspIHsKLUBAIC00NDQzLDcgKzQ0NDMsNyBAQAotICAgICAgIH0KLSAgICAgICBjb25zdCBpcjo6 VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0pOwotICAgICAg IGN0eC5TVUJHUk9VUChpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCwgZ2V0UmVnaXN0ZXIoJkkp LCBzcmNUdXBsZSwgYXJnTnVtLAotLSAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpDUy5hcmdfYmVn aW4oKSktPmdldFR5cGUoKSkpOwotKyAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpJLmFyZ19iZWdp bigpKS0+Z2V0VHlwZSgpKSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgQ29uc3RhbnRJbnQgKnNp Z24gPSBkeW5fY2FzdDxDb25zdGFudEludD4oQUkpOwotICAgICAgIEdCRV9BU1NFUlQoc2lnbik7 Ci1AQCAtNDQ2Niw5ICs0NDY2LDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9 Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5 cGUgdHlwZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2lu KCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2 b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChDYWxsSW5zdCAmSSwgYm9v bCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0rICAgIFVzZXI6 Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3Ig QUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgVmFs dWUgKmxsdm1QdHIgPSAqKEFJKyspOwotQEAgLTQ1MjIsOSArNDUyMiw5IEBACi0gICAgIEdCRV9B U1NFUlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwg dWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0 ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3Ig QUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGly OjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigp OwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNT RVJUKEFJICE9IEFFKTsKLQotICAgICBjb25zdCB1aW50OF90IGltYWdlSUQgPSBnZXRJbWFnZUlE KEkpOwotQEAgLTQ1NTcsNyArNDU1Nyw3IEBACi0KLSAgIC8qIGFwcGVuZCBhIG5ldyBzYW1wbGVy LiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgcmVmZXJlbmNlIHRvCi0gICAgKiBhIHNhbXBs ZXJfdCB2YWx1ZS4gKi8KLS0gIHVpbnQ4X3QgR2VuV3JpdGVyOjphcHBlbmRTYW1wbGVyKENhbGxT aXRlOjphcmdfaXRlcmF0b3IgQUkpIHsKLSsgIHVpbnQ4X3QgR2VuV3JpdGVyOjphcHBlbmRTYW1w bGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgIENhbGxJbnN0ICpUQyA9IGR5bl9jYXN0 PENhbGxJbnN0PigqQUkpOwotICAgICBDb25zdGFudCAqQ1BWID0gVEMgPyBkeW5fY2FzdDxDb25z dGFudD4oVEMtPmdldE9wZXJhbmQoMCkpIDogTlVMTDsKLUBAIC00NTk1LDEwICs0NTk1LDkgQEAK LSAgICAgICAgIGNvbnN0IGlyOjpGdW5jdGlvbiAmZm4gPSBjdHguZ2V0RnVuY3Rpb24oKTsKLQot ICAgICAgICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxTaXRl IENTKCZJKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVn aW4oKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSAj aWYgR0JFX0RFQlVHCi0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJn X2VuZCgpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAj ZW5kaWYgLyogR0JFX0RFQlVHICovCi0gICAgICAgICBzd2l0Y2ggKEYtPmdldEludHJpbnNpY0lE KCkpIHsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnN0YWNrc2F2ZToKLUBAIC00NzY0LDE3 ICs0NzYzLDE3IEBACi0gICAgICAgICAgICAgY3R4Lk1BRChzcmNUeXBlLCBkc3QsIHNyYzAsIHNy YzEsIHNyYzIpOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICBj YXNlIEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1Bf U1FSKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjZWlsOiB0aGlzLT5lbWl0 Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRVKTsgYnJlYWs7Ci0tICAgICAgICAgIGNh c2UgSW50cmluc2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6 T1BfUk5EWik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cmludDogdGhpcy0+ ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERSk7IGJyZWFrOwotLSAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1Ms aXI6Ok9QX1JOREQpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNpbjogdGhp cy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfU0lOKTsgYnJlYWs7Ci0tICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9Q X0NPUyk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1p dFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfTE9HKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9FWFAp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNxcnQ6IHRoaXMtPmVtaXRVbmFy eUNhbGxJbnN0KEksaXI6Ok9QX1NRUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6Y2VpbDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5EVSk7IGJyZWFr OwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6dHJ1bmM6IHRoaXMtPmVtaXRSb3VuZGluZ0Nh bGxJbnN0KEksaXI6Ok9QX1JORFopOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6 OnJpbnQ6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JOREUpOyBicmVhazsK LSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmZsb29yOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxs SW5zdChJLGlyOjpPUF9STkREKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpz aW46IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1NJTik7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEludHJpbnNpYzo6Y29zOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpP UF9DT1MpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmxvZzI6IHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0xPRyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIElu dHJpbnNpYzo6ZXhwMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRVhQKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpic3dhcDoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9CU1dBUCwgZ2V0VW5zaWduZWRUeXBlKGN0 eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2Fs bEluc3QoSSxpcjo6T1BfQlNXQVAsIGdldFVuc2lnbmVkVHlwZShjdHgsIEkuZ2V0VHlwZSgpKSk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cG93OgotICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYzAgPSB0aGlzLT5nZXRSZWdpc3Rlcigq QUkpOyArK0FJOwotQEAgLTQ3OTQsMjEgKzQ3OTMsMjAgQEAKLSAgICAgICAgIH0KLSAgICAgICB9 IGVsc2UgewotICAgICAgICAgLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBjYWxsZWQgZnVuY3Rpb24g YW5kIGhhbmRsZSBpdAotLSAgICAgICAgVmFsdWUgKkNhbGxlZSA9IEkuZ2V0Q2FsbGVkVmFsdWUo KTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2lu dGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IEkuZ2V0Q2Fs bGVkT3BlcmFuZCgpOwotKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVl LT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICBhdXRvIGdl bkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLQotICAgICAgICAgLy8g R2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxTaXRlIENTKCZJKTsKLS0g ICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLSsgICAg ICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSAjaWYgR0JFX0RFQlVH Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAg ICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAjZW5kaWYgLyogR0JF X0RFQlVHICovCi0KLSAgICAgICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLS0gICAgICAg ICAgY2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1Bf RkJILCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCTDog dGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfRkJMLCBpcjo6VFlQRV9VMzIpOyBi cmVhazsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksQ1MsaXI6Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgqQUkpLT5nZXRUeXBl KCkpKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkg6IHRoaXMtPmVtaXRVbmFy eUNhbGxJbnN0KEksaXI6Ok9QX0ZCSCwgaXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgR0VOX09DTF9GQkw6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0ZCTCwg aXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9DQklUOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9DQklULCBnZXRVbnNpZ25lZFR5cGUoY3R4LCAo KkFJKS0+Z2V0VHlwZSgpKSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQUJTOgot ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYyA9IHRoaXMt PmdldFJlZ2lzdGVyKCpBSSk7Ci1AQCAtNDkxNSw4ICs0OTEzLDggQEAKLSAgICAgICAgICAgICBj dHguUkVHSU9OKGRzdCwgc3JjLCB4LmdldEludGVnZXJWYWx1ZSgpKTsKLSAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgfQotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfUlNROiB0aGlzLT5l bWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SU1EpOyBicmVhazsKLS0gICAgICAgICAgY2Fz ZSBHRU5fT0NMX1JDUDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfUkNQKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksaXI6Ok9QX1JTUSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfUkNQOiB0 aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9SQ1ApOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX0ZPUkNFX1NJTUQ4OiBjdHguc2V0U2ltZFdpZHRoKDgpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0ZPUkNFX1NJTUQxNjogY3R4LnNldFNpbWRXaWR0aCgxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTEJBUlJJRVI6IGN0eC5TWU5DKGlyOjpz eW5jTG9jYWxCYXJyaWVyKTsgYnJlYWs7Ci1AQCAtNDk0NywzMSArNDk0NSwzMSBAQAotICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfQUREMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfQUREMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlD X09QX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1NVQjA6Ci0t ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0b21pY0luc3Qo SSxDUyxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1NVQjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9TVUIpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BTkQwOgotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFU T01JQ19PUF9BTkQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BTkQx OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQU5EKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX09SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX09SKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX0FUT01JQ19YT1IwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjE6IHRo aXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9YT1IpOyBicmVhazsKLSsgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGly OjpBVE9NSUNfT1BfWE9SKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf WENIRzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWENIRzE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9YQ0hHKTsgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfWENIRzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01J Q19PUF9YQ0hHKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU5DMDoK LS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09D TF9BVE9NSUNfSU5DMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0lOQyk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0RFQzA6Ci0tICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6 QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0RF QzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9ERUMpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUlOMDoKLS0gICAgICAgICAgY2FzZSBHRU5f T0NMX0FUT01JQ19VTUlOMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09Q X1VNSU4pOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUlOMTogdGhp cy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1VNSU4pOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUFYMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19VTUFYMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1VNQVgp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUFYMTogdGhpcy0+ZW1p dEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1VNQVgpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19JTUlOMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19J TUlOMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0lNSU4pOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUlOMTogdGhpcy0+ZW1pdEF0b21p Y0luc3QoSSxpcjo6QVRPTUlDX09QX0lNSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX0FUT01JQ19JTUFYMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUFYMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0lNQVgpOyBicmVhazsKLSsg ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUFYMTogdGhpcy0+ZW1pdEF0b21pY0luc3Qo SSxpcjo6QVRPTUlDX09QX0lNQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19DTVBYQ0hHMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19DTVBYQ0hHMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0NNUFhDSEcpOyBicmVhazsK LSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19DTVBYQ0hHMTogdGhpcy0+ZW1pdEF0b21p Y0luc3QoSSxpcjo6QVRPTUlDX09QX0NNUFhDSEcpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX0dFVF9JTUFHRV9XSURUSDoKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9JTUFH RV9IRUlHSFQ6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfSU1BR0VfREVQVEg6Ci1AQCAt NTQyOSw0OCArNTQyNyw0OCBAQAotICAgICAgICAgICAgIGN0eC5XQUlUKCk7Ci0gICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JP VVBfQUxMOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9B TEwpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQU5ZOiB0aGlz LT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9BTlkpOyBicmVhazsK LSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQUxMOiB0aGlzLT5lbWl0V29ya0dy b3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpX T1JLR1JPVVBfT1BfQU5ZKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dS T1VQX0JST0FEQ0FTVDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBD UywgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0VfQUREOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JF RFVDRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9S RURVQ0VfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1JF RFVDRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGly OjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9BREQ6Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBf T1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NQVg6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhD TFVTSVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0 KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NSU46Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZF X01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfV09SS19HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JL R1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf V09SS19HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdv cmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19H Uk9VUF9TQ0FOX0lOQ0xVU0lWRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5D TFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JS T0FEQ0FTVDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6 V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRT dWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfQUREOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJf R1JPVVBfUkVEVUNFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JFRFVDRV9NSU46Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9S RURVQ0VfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dS T1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdy b3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VY Q0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9T Q0FOX0VYQ0xVU0lWRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9N SU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0lOQ0xV U0lWRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6 OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9NQVg6 Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdy b3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9NSU46Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNM VVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0xSUDoKLSAgICAgICAgICAgewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdp c3RlciBkc3QgID0gdGhpcy0+Z2V0UmVnaXN0ZXIoJkkpOwotQEAgLTU0ODQsNjkgKzU0ODIsNjkg QEAKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMSk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNMjoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxz ZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgZmFsc2UsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9CTE9DS19SRUFEX1VJX01FTTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA0KTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU04OgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA4KTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwg OCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRF X1VJX01FTToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEks IENTLCB0cnVlLCAxKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCB0cnVlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAyKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNNDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA0KTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0 cnVlLCA0KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tf V1JJVEVfVUlfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KEksIENTLCB0cnVlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAxKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAxKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9J TUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IENTLCBmYWxzZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDQpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDQpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lN QUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg Q1MsIGZhbHNlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDEpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFH RTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENT LCB0cnVlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDQpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRTg6 Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0 cnVlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1h Z2VJbnN0KEksIHRydWUsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19SRUFEX1VTX01FTToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMSwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfUkVBRF9VU19NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1l bUluc3QoSSwgQ1MsIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQRV9V MTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFE X1VTX01FTTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBDUywgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVN ODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBm YWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDEs IGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZU1lbUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNMjoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCAyLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0 cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VU19NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgOCwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf QkxPQ0tfUkVBRF9VU19JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDEsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1JFQURfVVNfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfUkVBRF9VU19JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA0LCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19SRUFEX1VTX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDgsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NL X1dSSVRFX1VTX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDEsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dS SVRFX1VTX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAyLCBpcjo6VFlQRV9V MTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklU RV9VU19JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJ bnN0KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2 KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VVNfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDgsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1BJUEU6Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9NQUtFX1JJRDoKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9SSUQ6Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCTIwMjAtMTEtMDkgMTY6NDg6 MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMu aHBwCTIwMjAtMTEtMDkgMTk6MDA6MDkuOTU1OTI2Nzk1ICswMTAwCi1AQCAtMTAzLDcgKzEwMyw2 IEBACi0KLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gMzUKLSAjaW5jbHVkZSAibGx2bS9JUi9NYW5nbGVyLmgiCi0tI2luY2x1ZGUgImxsdm0vSVIv Q2FsbFNpdGUuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAjaW5jbHVkZSAibGx2bS9J Ui9JbnN0VmlzaXRvci5oIgotICNpbmNsdWRlICJsbHZtL0lSL0lSUHJpbnRpbmdQYXNzZXMuaCIK LS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAky MDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEtMDkgMTk6MTA6MzcuMTQx ODUyMzA4ICswMTAwCi1AQCAtMTYwLDcgKzE2MCw3IEBACi0gICAgIFZhbHVlICp2ZWNQdHIgPSBC dWlsZGVyLkNyZWF0ZUJpdENhc3QobGQtPmdldFBvaW50ZXJPcGVyYW5kKCksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFk ZHJTcGFjZSkpOwotICAgICBMb2FkSW5zdCAqdmVjVmFsdWUgPSBCdWlsZGVyLkNyZWF0ZUxvYWQo dmVjUHRyKTsKLS0gICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChhbGlnbik7Ci0rICAgIHZlY1Zh bHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsKLQotICAgICBmb3IgKHVuc2ln bmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgVmFsdWUgKlMgPSBCdWlsZGVyLkNy ZWF0ZUV4dHJhY3RFbGVtZW50KHZlY1ZhbHVlLCBCdWlsZGVyLmdldEludDMyKGkpKTsKLUBAIC0y NTEsNyArMjUxLDcgQEAKLSAgICAgICByZXR1cm47Ci0gICAgIFZhbHVlICpuZXdQdHIgPSBCdWls ZGVyLkNyZWF0ZUJpdENhc3Qoc3RQb2ludGVyLCBQb2ludGVyVHlwZTo6Z2V0KHZlY1R5LCBhZGRy U3BhY2UpKTsKLSAgICAgU3RvcmVJbnN0ICpuZXdTVCA9IEJ1aWxkZXIuQ3JlYXRlU3RvcmUocGFy ZW50LCBuZXdQdHIpOwotLSAgICBuZXdTVC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLSsgICAgbmV3 U1QtPnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkpOwotICAgfQotCi0gICAvLyBGaW5k IHRoZSBzYWZlIGl0ZXJhdG9yIHdlIGNhbiBwb2ludCB0by4gSWYgcmVvcmRlciBoYXBwZW5zLCB3 ZSBuZWVkIHRvCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAkyMDIwLTEx LTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3Bhc3Nlcy5jcHAJMjAyMC0xMS0wOSAxODo0ODo1NS45OTcwMDY4MzcgKzAxMDAKLUBAIC05NSw3 ICs5NSw3IEBACi0gICB7Ci0gICAgIHN3aXRjaCAoVHktPmdldFR5cGVJRCgpKSB7Ci0gICAgICAg Y2FzZSBUeXBlOjpWb2lkVHlJRDogTk9UX1NVUFBPUlRFRDsKLS0gICAgICBjYXNlIFR5cGU6OlZl Y3RvclR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgewot ICAgICAgICAgY29uc3QgVmVjdG9yVHlwZSogVmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KFR5KTsK LSAgICAgICAgIHVpbnQzMl90IGVsZW1OdW0gPSBWZWNUeS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBA IC0xMzgsNyArMTM4LDcgQEAKLSAgICAgICBjYXNlIFR5cGU6OkhhbGZUeUlEOiAgICByZXR1cm4g MTY7Ci0gICAgICAgY2FzZSBUeXBlOjpGbG9hdFR5SUQ6ICAgcmV0dXJuIDMyOwotICAgICAgIGNh c2UgVHlwZTo6RG91YmxlVHlJRDogIHJldHVybiA2NDsKLS0gICAgICBjYXNlIFR5cGU6OlZlY3Rv clR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgewotICAg ICAgICAgY29uc3QgVmVjdG9yVHlwZSogVmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KFR5KTsKLSAg ICAgICAgIHVpbnQzMl90IG51bUVsZW0gPSBWZWNUeS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBAIC0x ODQsMTAgKzE4NCwxMiBAQAotICAgICBUeXBlICplbGVtZW50VHlwZSA9IE5VTEw7Ci0gICAgIGlm IChQb2ludGVyVHlwZSogcHRyVHlwZSA9IGR5bl9jYXN0PFBvaW50ZXJUeXBlPihlbHRUeSkpCi0g ICAgICAgZWxlbWVudFR5cGUgPSBwdHJUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotLSAgICBlbHNl IGlmKFNlcXVlbnRpYWxUeXBlICogc2VxVHlwZSA9IGR5bl9jYXN0PFNlcXVlbnRpYWxUeXBlPihl bHRUeSkpCi0tICAgICAgZWxlbWVudFR5cGUgPSBzZXFUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwot LSAgICBlbHNlIGlmKENvbXBvc2l0ZVR5cGUgKiBjb21wVHk9IGR5bl9jYXN0PENvbXBvc2l0ZVR5 cGU+KGVsdFR5KSkKLS0gICAgICBlbGVtZW50VHlwZSA9IGNvbXBUeS0+Z2V0VHlwZUF0SW5kZXgo aW5kZXgpOwotKyAgICBlbHNlIGlmIChBcnJheVR5cGUgKiBhcnJUeXBlID0gZHluX2Nhc3Q8QXJy YXlUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSBhcnJUeXBlLT5nZXRFbGVtZW50 VHlwZSgpOwotKyAgICBlbHNlIGlmKFZlY3RvclR5cGUgKiB2ZWNUeXBlID0gZHluX2Nhc3Q8VmVj dG9yVHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gdmVjVHlwZS0+Z2V0RWxlbWVu dFR5cGUoKTsKLSsgICAgZWxzZSBpZihTdHJ1Y3RUeXBlICogc3RydWN0VHlwZSA9IGR5bl9jYXN0 PFN0cnVjdFR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IHN0cnVjdFR5cGUtPmdl dFR5cGVBdEluZGV4KGluZGV4KTsKLSAgICAgR0JFX0FTU0VSVChlbGVtZW50VHlwZSk7Ci0gICAg IHJldHVybiBlbGVtZW50VHlwZTsKLSAgIH0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9w cmludGZfcGFyc2VyLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCTIwMjAtMTEtMDkgMTg6 NTc6NTIuNjE4OTQzMTA1ICswMTAwCi1AQCAtMzIzLDggKzMyMyw3IEBACi0KLSAgIGJvb2wgUHJp bnRmUGFyc2VyOjpwYXJzZU9uZVByaW50Zkluc3RydWN0aW9uKENhbGxJbnN0ICogY2FsbCkKLSAg IHsKLS0gICAgQ2FsbFNpdGUgQ1MoY2FsbCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3Ig Q0lfRk1UID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIENJX0ZNVCA9 IGNhbGwtPmFyZ19iZWdpbigpOwotICAgICBpbnQgcGFyYW1fbnVtID0gMDsKLQotICAgICBsbHZt OjpDb25zdGFudCogYXJnMCA9IGR5bl9jYXN0PGxsdm06OkNvbnN0YW50RXhwcj4oKkNJX0ZNVCk7 Ci1AQCAtMzQxLDcgKzM0MCw3IEBACi0gICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci0KLS0g ICAgc3RkOjpzdHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5nKCk7Ci0rICAgIHN0ZDo6 c3RyaW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpLnN0cigpOwotICAgICBpZiAoZm10 LnNpemUoKSA9PSAwKQotICAgICAgIHJldHVybiBmYWxzZTsKLQotQEAgLTQzNyw4ICs0MzYsOCBA QAotICAgICAgICAgaWYgKCBjYWxsRnVuYy0+Z2V0SW50cmluc2ljSUQoKSAhPSAwKQotICAgICAg ICAgICBjb250aW51ZTsKLQotLSAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxl ZFZhbHVlKCk7Ci0tICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdl dE5hbWUoKTsKLSsgICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRPcGVyYW5k KCk7Ci0rICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUo KS5zdHIoKTsKLQotICAgICAgICAgaWYgKGZuTmFtZSAhPSAiX19nZW5fb2NsX3ByaW50Zl9zdHVi IiAmJiBmbk5hbWUgIT0gIl9fZ2VuX29jbF9wdXRzX3N0dWIiKQotICAgICAgICAgICBjb250aW51 ZTsKLUBAIC01ODIsNyArNTgxLDcgQEAKLSAgICAgICAgICAgICBpZiAoIWZtdF9hcmcgfHwgIWZt dF9hcmctPmlzQ1N0cmluZygpKSB7Ci0gICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0gZm10X2FyZy0+Z2V0QXND U3RyaW5nKCk7Ci0rICAgICAgICAgICAgc2xvdC5zdGF0ZS5zdHIgPSBmbXRfYXJnLT5nZXRBc0NT dHJpbmcoKS5zdHIoKTsKLSAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgfQot ICAgICAgICAgICBjYXNlIFBSSU5URl9DT05WRVJTSU9OX1A6IHsKLUBAIC01OTUsMTAgKzU5NCwx MCBAQAotCi0gICAgICAgICBicmVhazsKLQotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDog ewotLSAgICAgICAgVHlwZSogdmVjdF90eXBlID0gYXJnLT5nZXRUeXBlKCk7Ci0tICAgICAgICBU eXBlKiBlbHRfdHlwZSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKTsKLS0gICAg ICAgIGludCB2ZWNfbnVtID0gdmVjdF90eXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpOwotKyAg ICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOiB7Ci0rICAgICAgICBWZWN0b3JUeXBlKiB2 ZWN0X3R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihhcmctPmdldFR5cGUoKSk7Ci0rICAgICAg ICBUeXBlKiBlbHRfdHlwZSA9IHZlY3RfdHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLSsgICAgICAg IGludCB2ZWNfbnVtID0gdmVjdF90eXBlLT5nZXROdW1FbGVtZW50cygpOwotICAgICAgICAgYm9v bCBzaWduID0gZmFsc2U7Ci0KLSAgICAgICAgIGlmICh2ZWNfbnVtICE9IHNsb3Quc3RhdGUudmVj dG9yX24pIHsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3BwCTIwMjAt MTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fcHJvZmlsaW5nLmNwcAkyMDIwLTExLTA5IDE4OjU5OjUwLjEyMDkyOTE1MCArMDEwMAotQEAg LTM1LDcgKzM1LDYgQEAKLSAjaW5jbHVkZSAibGx2bS9JUi9JUkJ1aWxkZXIuaCIKLQotICNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotLSNpbmNs dWRlICJsbHZtL0lSL0NhbGxTaXRlLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvQ0ZHLmgiCi0gI2Vs c2UKLSAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L0NhbGxTaXRlLmgiCi0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEy ICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCTIwMjAt MTEtMDkgMTc6MDE6MDkuNDA3Nzc0ODMyICswMTAwCi1AQCAtNDUsOCArNDUsOCBAQAotICAgICBi b29sIHZpc2l0Q2FsbEluc3QoQ2FsbEluc3QgKkkpIHsKLSAgICAgICBpZighSSkKLSAgICAgICAg IHJldHVybiBmYWxzZTsKLS0gICAgICBWYWx1ZSAqQ2FsbGVlID0gSS0+Z2V0Q2FsbGVkVmFsdWUo KTsKLS0gICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKTsK LSsgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAgIGNv bnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAg IGJvb2wgY2hhbmdlZCA9IGZhbHNlOwotICAgICAgIFR5cGUgKmJvb2xUeSA9IEludGVnZXJUeXBl OjpnZXQoSS0+Z2V0Q29udGV4dCgpLCAxKTsKLSAgICAgICBUeXBlICppMzJUeSA9IEludGVnZXJU eXBlOjpnZXQoSS0+Z2V0Q29udGV4dCgpLCAzMik7Ci1AQCAtNTksNyArNTksNyBAQAotICAgICAg ICAgVmFsdWUgKm5lZWRGaXhWYWw7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExW TV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICBDYWxsSW5zdCAqaW5pdCA9IGR5bl9jYXN0 PENhbGxJbnN0PihJLT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgIGlmIChpbml0ICYmIGluaXQt PmdldENhbGxlZFZhbHVlKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1wbGVy X2luaXRpYWxpemVyIikpCi0rICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRPcGVy YW5kKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1wbGVyX2luaXRpYWxpemVy IikpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0YW50SW50ICpjaSA9IGR5bl9j YXN0PENvbnN0YW50SW50Pihpbml0LT5nZXRPcGVyYW5kKDApKTsKLSAgICAgICAgICAgdWludDMy X3Qgc2FtcGxlckludCA9IGNpLT5nZXRaRXh0VmFsdWUoKTsKLUBAIC0xMTMsNyArMTEzLDcgQEAK LSAgICAgICAgIFZhbHVlICpuZWVkRml4VmFsOwotICAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgIENhbGxJbnN0ICppbml0ID0g ZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgaWYgKGluaXQg JiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRl X3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSsgICAgICAgIGlmIChpbml0ICYmIGluaXQtPmdldENh bGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5p dGlhbGl6ZXIiKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3QgQ29uc3RhbnRJbnQgKmNp ID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQoMCkpOwotICAgICAgICAg ICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgpOwotLS0tIGEvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYx MTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCTIwMjAt MTEtMDkgMTg6NTE6MTYuODg4OTkwMTA0ICswMTAwCi1AQCAtMTc4LDcgKzE3OCw3IEBACi0gICAg ICAgaWYoIXR5cGUpCi0gICAgICAgICByZXR1cm4gdHlwZTsKLSAgICAgICBzd2l0Y2godHlwZS0+ Z2V0VHlwZUlEKCkpIHsKLS0gICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2Fz ZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgY2FzZSBUeXBlOjpBcnJheVR5SUQ6Ci0g ICAgICAgICByZXR1cm4gR2V0QmFzaWNUeXBlKHR5cGUtPmdldENvbnRhaW5lZFR5cGUoMCkpOwot ICAgICAgIGRlZmF1bHQ6Ci1AQCAtMTg4LDcgKzE4OCw3IEBACi0gICAgIH0KLQotICAgICBpbnQg R2V0Q29tcG9uZW50Q291bnQoY29uc3QgVHlwZSogdHlwZSkgIHsKLS0gICAgICBpZiAodHlwZSAm JiB0eXBlLT5nZXRUeXBlSUQoKSA9PSBUeXBlOjpWZWN0b3JUeUlEKQotKyAgICAgIGlmICh0eXBl ICYmIHR5cGUtPmdldFR5cGVJRCgpID09IFR5cGU6OkZpeGVkVmVjdG9yVHlJRCkKLSAgICAgICAg IHJldHVybiBsbHZtOjpkeW5fY2FzdDxWZWN0b3JUeXBlPih0eXBlKS0+Z2V0TnVtRWxlbWVudHMo KTsKLSAgICAgICBlbHNlCi0gICAgICAgICByZXR1cm4gMTsKLUBAIC02NTIsMTMgKzY1MiwxMiBA QAotICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLSAgICAgICB9IGVsc2UgewotLSAgICAg ICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCk7Ci0tICAgICAgICBjb25z dCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKTsKLSsgICAgICAgIFZhbHVl ICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgICBjb25zdCBzdGQ6 OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgIGF1dG8g Z2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUpOwotCi0gICAgICAgICAv LyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoY2FsbCk7 Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIENJID0gQ1MuYXJnX2JlZ2luKCkgKyAx OwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0kgPSBjYWxsLT5hcmdfYmVnaW4oKSArIDE7 Ci0KLSAgICAgICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX05PVF9GT1VORDoKLUBAIC03MjksNyArNzI4LDcgQEAKLSAgICAgICAgICAgICBleHRy YWN0RnJvbVZlY3RvcihjYWxsKTsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1BSSU5URjoKLS0gICAgICAgICAgICBmb3IgKDsgQ0kgIT0gQ1MuYXJnX2VuZCgp OyArK0NJKQotKyAgICAgICAgICAgIGZvciAoOyBDSSAhPSBjYWxsLT5hcmdfZW5kKCk7ICsrQ0kp Ci0gICAgICAgICAgICAgICBpZiAoKCpDSSktPmdldFR5cGUoKS0+aXNWZWN0b3JUeSgpKQotICAg ICAgICAgICAgICAgICAqQ0kgPSBJbnNlcnRUb1ZlY3RvcihjYWxsLCAqQ0kpOwotICAgICAgICAg ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBh dGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA2ZjhhYjAwNWMxNDguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAs MCBAQAotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3Bw IGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLWluZGV4IDg1MTVkYzEz Li4yNzA4MDM4MCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRl Z2Vycy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAK LUBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIFZhbHVlICpidWlsZFZlY3Rvck9yU2NhbGFyKENv bnZlcnNpb25TdGF0ZSAmU3RhdGUsIElSQnVpbGRlcjw+ICZJUkIsIFNtYWwKLSAgICAgLy8gc3Bs aXRlZCwgdGhhdCdzIHdoeSB0aGVzZSB0ZW1wb3JhcnkgdmFsdWVzIHNob3VsZCBiZSBlcmFzZWQu Ci0gICAgIGJvb2wgS2VlcEluc2VydCA9IGlzTGVnYWxCaXRTaXplKEVsZW1UeS0+Z2V0UHJpbWl0 aXZlU2l6ZUluQml0cygpICogRWxlbU5vKTsKLSAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IEVsZW1ObzsgKytpKSB7Ci0tICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFs dWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8pKTsKLSsgICAgICBWYWx1ZSAq dG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHks IEVsZW1ObywgZmFsc2UpKTsKLSAgICAgICBWYWx1ZSAqaWR4ID0gQ29uc3RhbnRJbnQ6OmdldChJ bnRUeSwgaSk7Ci0gICAgICAgdmVjID0gSVJCLkNyZWF0ZUluc2VydEVsZW1lbnQodG1wLCBFbGVt ZW50c1tpXSwgaWR4KTsKLSAgICAgICBpZiAoIUtlZXBJbnNlcnQgJiYgIWlzYTxDb25zdGFudD4o dmVjKSkgewotQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgdm9pZCB1bmlmeUVsZW1lbnRUeXBl KElSQnVpbGRlcjw+ICZJUkIsIFNtYWxsVmVjdG9yPFZhbHVlICosIDE2PiAmU3JjLCBTbQotICAg ICAgIGFzc2VydCgoU2l6ZSAlIE1pbldpZHRoKSA9PSAwKTsKLSAKLSAgICAgICBpZiAoU2l6ZSA+ IE1pbldpZHRoKSB7Ci0tICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9IFZlY3RvclR5cGU6Omdl dChFbGVtVHksIFNpemUvTWluV2lkdGgpOwotKyAgICAgICAgVmVjdG9yVHlwZSAqVmVjVHkgPSBW ZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBTaXplL01pbldpZHRoLCBmYWxzZSk7Ci0gICAgICAgICBW YWx1ZSAqQ2FzdGVkID0gSVJCLkNyZWF0ZUJpdENhc3QoU3JjW2ldLCBWZWNUeSk7Ci0gICAgICAg ICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgU2l6ZS9NaW5XaWR0aDsgaisrKQotICAgICAgICAg ICBEc3QucHVzaF9iYWNrKElSQi5DcmVhdGVFeHRyYWN0RWxlbWVudChDYXN0ZWQsIENvbnN0YW50 SW50OjpnZXQoSW50VHksIGopKSk7Ci1AQCAtNDYyLDcgKzQ2Miw3IEBAIHN0YXRpYyB2b2lkIGNv bnZlcnRJbnN0cnVjdGlvbihJbnN0cnVjdGlvbiAqSW5zdCwgQ29udmVyc2lvblN0YXRlICZTdGF0 ZSwKLSAgICAgICB1bnNpZ25lZCBFbGVtTm8gPSBVbmlmaWVkLnNpemUoKTsKLSAgICAgICBUeXBl ICpFbGVtVHkgPSBVbmlmaWVkWzBdLT5nZXRUeXBlKCk7Ci0gICAgICAgZm9yICh1bnNpZ25lZCBp ID0gMDsgaSA8IEVsZW1ObzsgKytpKSB7Ci0tICAgICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVj IDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObykpOwotKyAg ICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBl OjpnZXQoRWxlbVR5LCBFbGVtTm8sIGZhbHNlKSk7Ci0gICAgICAgICBWYWx1ZSAqaWR4ID0gQ29u c3RhbnRJbnQ6OmdldChJbnRUeSwgaSk7Ci0gICAgICAgICB2ZWMgPSBJUkIuQ3JlYXRlSW5zZXJ0 RWxlbWVudCh0bXAsIFVuaWZpZWRbaV0sIGlkeCk7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBiYWNr ZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9n ZW5fYmFja2VuZC5jcHAKLWluZGV4IGM5M2Q4OWNjLi42NGQ1YjBlNSAxMDA2NDQKLS0tLSBhL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLUBAIC0zMDQsNyArMzA0LDcgQEAgbmFtZXNwYWNlIGdi ZQotICAgICAgIFRZUEVTSVpFVkVDKGxvbmcsOCkKLSAgICAgICBUWVBFU0laRVZFQyh1bnNpZ25l ZCBsb25nLDgpCi0gICAgICAgZWxzZXsKLS0gICAgICAgIFN0cnVjdFR5cGUgKlN0clR5ID0gTS0+ Z2V0VHlwZUJ5TmFtZSgic3RydWN0LiIrbmFtZSk7Ci0rICAgICAgICBTdHJ1Y3RUeXBlICpTdHJU eSA9IFN0cnVjdFR5cGU6OmdldFR5cGVCeU5hbWUoTS0+Z2V0Q29udGV4dCgpLCAic3RydWN0LiIr bmFtZSk7Ci0gICAgICAgICBpZihTdHJUeSkKLSAgICAgICAgICAgcmV0dXJuIGdldFR5cGVCeXRl U2l6ZSh1bml0LFN0clR5KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0v bGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9h ZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLWluZGV4IDVhYTM4YmVmLi42YjVjMWJhZCAxMDA2NDQK LS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAot KysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1A QCAtMTUyLDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICB1bnNpZ25lZCBhZGRyU3Bh Y2UgPSBsZC0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotICAgICAvLyBpbnNlcnQgYmVmb3Jl IGZpcnN0IGxvYWQKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChsZCk7Ci0tICAgIFZlY3Rv clR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBlKCksIHNpemUpOwotKyAg ICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChsZC0+Z2V0VHlwZSgpLCBzaXpl LCBmYWxzZSk7Ci0gICAgIFZhbHVlICp2ZWNQdHIgPSBCdWlsZGVyLkNyZWF0ZUJpdENhc3QobGQt PmdldFBvaW50ZXJPcGVyYW5kKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOwotICAgICBMb2FkSW5z dCAqdmVjVmFsdWUgPSBCdWlsZGVyLkNyZWF0ZUxvYWQodmVjUHRyKTsKLUBAIC0yMzYsNyArMjM2 LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobWVyZ2Vk W3NpemUtMV0pOwotIAotICAgICBUeXBlICpkYXRhVHkgPSBzdC0+Z2V0VmFsdWVPcGVyYW5kKCkt PmdldFR5cGUoKTsKLS0gICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQoZGF0 YVR5LCBzaXplKTsKLSsgICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQoZGF0 YVR5LCBzaXplLCBmYWxzZSk7Ci0gICAgIFZhbHVlICogcGFyZW50ID0gVW5kZWZWYWx1ZTo6Z2V0 KHZlY1R5KTsKLSAgICAgZm9yKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAg ICAgcGFyZW50ID0gQnVpbGRlci5DcmVhdGVJbnNlcnRFbGVtZW50KHBhcmVudCwgdmFsdWVzW2ld LCBDb25zdGFudEludDo6Z2V0KEludGVnZXJUeXBlOjpnZXQoc3QtPmdldENvbnRleHQoKSwgMzIp LCBpKSk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNw cCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLWluZGV4IDZiYjdjNTJh Li5hZjQ1OWNkMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFy c2VyLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi1A QCAtNjMwLDcgKzYzMCw3IEBAIGVycm9yOgotICAgICAgICAgICAgIGlmIChlbHRfdHlwZSAhPSBl bHRfZHN0X3R5cGUpIHsKLSAgICAgICAgICAgICAgIFZhbHVlICpJSSA9IE5VTEw7Ci0gICAgICAg ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlY19udW07IGkrKykgewotLSAgICAgICAgICAg ICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpn ZXQoZWx0X2RzdF90eXBlLCB2ZWNfbnVtKSk7Ci0rICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMg PSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChlbHRfZHN0X3R5cGUs IHZlY19udW0sIGZhbHNlKSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdiA9IENvbnN0YW50 SW50OjpnZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgaSk7Ci0g ICAgICAgICAgICAgICAgIFZhbHVlICpvcmcgPSBidWlsZGVyLT5DcmVhdGVFeHRyYWN0RWxlbWVu dChhcmcsIGN2KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2dCA9IGJ1aWxkZXItPkNyZWF0 ZUludENhc3Qob3JnLCBlbHRfZHN0X3R5cGUsIHNpZ24pOwotQEAgLTY1OCw3ICs2NTgsNyBAQCBl cnJvcjoKLSAgICAgICAgICAgICBpZiAoZWx0X3R5cGUtPmdldFR5cGVJRCgpICE9IFR5cGU6OkZs b2F0VHlJRCkgewotICAgICAgICAgICAgICAgVmFsdWUgKklJID0gTlVMTDsKLSAgICAgICAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjX251bTsgaSsrKSB7Ci0tICAgICAgICAgICAgICAg IFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChU eXBlOjpnZXRGbG9hdFR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCB2ZWNfbnVtKSk7Ci0rICAg ICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3Rv clR5cGU6OmdldChUeXBlOjpnZXRGbG9hdFR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCB2ZWNf bnVtLCBmYWxzZSkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3YgPSBDb25zdGFudEludDo6 Z2V0KFR5cGU6OmdldEludDMyVHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIGkpOwotICAgICAg ICAgICAgICAgICBWYWx1ZSAqb3JnID0gYnVpbGRlci0+Q3JlYXRlRXh0cmFjdEVsZW1lbnQoYXJn LCBjdik7Ci0gICAgICAgICAgICAgICAgIFZhbHVlKiBjdnQgID0gYnVpbGRlci0+Q3JlYXRlRlBD YXN0KG9yZywgVHlwZTo6Z2V0RmxvYXRUeShtb2R1bGUtPmdldENvbnRleHQoKSkpOwotZGlmZiAt LWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xs dm1fdG9fZ2VuLmNwcAotaW5kZXggN2Y3ZGVmZmUuLjllOGNjYzY3IDEwMDY0NAotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV90b19nZW4uY3BwCi1AQCAtMzU4LDcgKzM1OCw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcGFz c2VzLmFkZChjcmVhdGVTY2FsYXJSZXBsQWdncmVnYXRlc1Bhc3MoNjQsIHRydWUsIC0xLCAtMSwg NjQpKTsKLSAjZW5kaWYKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRp b25QYXNzKCkpOwotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNz KCkpOwotKyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7 Ci0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUHJvbW90ZU1lbW9yeVRvUmVnaXN0ZXJQYXNzKCkpOwot ICAgICBpZihvcHRMZXZlbCA+IDApCi0gICAgICAgcGFzc2VzLmFkZChjcmVhdGVHVk5QYXNzKCkp OyAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHJlZHVuZGFuY2llcwotQEAgLTM2NywxMSArMzY3 LDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVTY2FsYXJpemVQYXNz KCkpOyAgICAgICAgICAgICAvLyBFeHBhbmQgYWxsIHZlY3RvciBvcHMKLSAgICAgcGFzc2VzLmFk ZChjcmVhdGVFeHBhbmRMYXJnZUludGVnZXJzUGFzcygpKTsgICAvLyBsZWdhbGl6ZSBsYXJnZSBp bnRlZ2VyIG9wZXJhdGlvbgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUluc3RydWN0aW9uQ29tYmlu aW5nUGFzcygpKTsgIC8vIGxlZ2FsaXplIHdpbGwgZ2VuZXJhdGUgc29tZSBzaWxseSBpbnN0cnVj dGlvbnMKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsg ICAvLyBwcm9wYWdhdGUgY29uc3RhbnQgYWZ0ZXIgc2NhbGFyaXplL2xlZ2FsaXplCi0rICAgIC8v cGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsgICAvLyBwcm9wYWdh dGUgY29uc3RhbnQgYWZ0ZXIgc2NhbGFyaXplL2xlZ2FsaXplCi0gICAgIHBhc3Nlcy5hZGQoY3Jl YXRlRXhwYW5kQ29uc3RhbnRFeHByUGFzcygpKTsgICAgLy8gY29uc3RhbnQgcHJvcCBtYXkgZ2Vu ZXJhdGUgQ29uc3RhbnRFeHByCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUHJvbW90ZUludGVnZXJz UGFzcygpKTsgICAgICAgLy8gYWxpZ24gaW50ZWdlciBzaXplIHRvIHBvd2VyIG9mIHR3bwotICAg ICBwYXNzZXMuYWRkKGNyZWF0ZVJlbW92ZUdFUFBhc3ModW5pdCkpOyAgICAgICAgIC8vIENvbnN0 YW50IHByb3AgbWF5IGdlbmVyYXRlIGdlcAotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZURlYWRJbnN0 RWxpbWluYXRpb25QYXNzKCkpOyAgIC8vIFJlbW92ZSBzaW1wbGlmaWVkIGluc3RydWN0aW9ucwot KyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RFbGltaW5hdGlvblBhc3MoKSk7ICAgLy8g UmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ0ZH U2ltcGxpZmljYXRpb25QYXNzKCkpOyAgICAgLy8gTWVyZ2UgJiByZW1vdmUgQkJzCi0gICAgIHBh c3Nlcy5hZGQoY3JlYXRlTG93ZXJTd2l0Y2hQYXNzKCkpOyAgICAgICAgICAgLy8gc2ltcGxpZnkg Y2ZnIHdpbGwgZ2VuZXJhdGUgc3dpdGNoLWNhc2UgaW5zdHJ1Y3Rpb24KLSAgICAgaWYgKHByb2Zp bGluZykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaCBi L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGNlZmFmYmI2NTU4OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25l dC9wYXRjaGVzL211c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0g YS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVzYV9kaXNhc20uYwotKysrIGIvYmFja2Vu ZC9zcmMvYmFja2VuZC9nZW4vZ2VuX21lc2FfZGlzYXNtLmMKLUBAIC0xMTM3LDcgKzExMzcsNyBA QCBzdGF0aWMgdWludDMyX3QgX19jb252X2hhbGZfdG9fZmxvYXQodWludDE2X3QgaCkKLSAgICAg ICAvLyBBZGp1c3QgbWFudGlzc2Egc28gaXQncyBub3JtYWxpemVkIChhbmQga2VlcAotICAgICAg IC8vIHRyYWNrIG9mIGV4cG9uZW50IGFkanVzdG1lbnQpCi0gICAgICAgaW50IGUgPSAtMTsKLS0g ICAgICB1aW50IG0gPSBpLm1hbnRpc3NhOwotKyAgICAgIHVuc2lnbmVkIGludCBtID0gaS5tYW50 aXNzYTsKLSAgICAgICBkbyB7Ci0gICAgICAgICBlKys7Ci0gICAgICAgICBtIDw8PSAxOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlIGIvc3JjcGtncy9iZWlnbmV0L3RlbXBs YXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkY2U2YmJiN2FlMjQuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwy MiArMCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdiZWlnbmV0JwotcGtnbmFtZT1iZWlnbmV0 Ci12ZXJzaW9uPTEuMy4yCi1yZXZpc2lvbj0xMAotYXJjaHM9Imk2ODYqIHg4Nl82NCoiCi13cmtz cmM9IkJlaWduZXQtJHt2ZXJzaW9ufS1Tb3VyY2UiCi1idWlsZF9zdHlsZT1jbWFrZQotaG9zdG1h a2VkZXBlbmRzPSJjbGFuZyBsbHZtIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0iTWVzYUxpYi1k ZXZlbCBsaWJlZGl0LWRldmVsIGxpYmZmaS1kZXZlbCBvY2wtaWNkLWRldmVsIHpsaWItZGV2ZWwK LSBsaWJYZml4ZXMtZGV2ZWwiCi1kZXBlbmRzPSJvY2wtaWNkIgotc2hvcnRfZGVzYz0iQmVpZ25l dCBHUEdQVSBTeXN0ZW0gZm9yIEludGVsIEdQVXMiCi1tYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCi1ob21lcGFn ZT0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2FyZS9CZWlnbmV0LyIKLWRp c3RmaWxlcz0iaHR0cHM6Ly8wMS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxlcy8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0tc291cmNlLnRhci5neiIKLWNoZWNrc3VtPWM1NTVlZGJhMTQ5ZGUyMzI0Mzk2NWE3 MDNmMzlmNzlmYTA2ZjE1YmNmZjVhMzc2MmI1NTQ0YjA5MjUwMTBiNDMKLQotcG9zdF9pbnN0YWxs KCkgewotCSMgcmVtb3ZlIENMIGhlYWRlcnMsIHdlIGRvIHVzZSBvcGVuY2wtaGVhZGVycyBpbnN0 ZWFkLgotCXJtIC1yICR7REVTVERJUn0vdXNyL2luY2x1ZGUKLX0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvYmVpZ25ldC91cGRhdGUgYi9zcmNwa2dzL2JlaWduZXQvdXBkYXRlCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjYTQxZTBhZmU2MGMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2JlaWduZXQvdXBkYXRlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotc2l0ZT0iaHR0cHM6 Ly8wMS5vcmcvYmVpZ25ldC9kb3dubG9hZHMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JlbW92ZWQt cGFja2FnZXMvdGVtcGxhdGUgYi9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKaW5k ZXggYTZkOTRjYzA1MWQ2Li5lNGZhY2JkYTE2MDcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcmVtb3Zl ZC1wYWNrYWdlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdyZW1vdmVkLXBhY2thZ2Vz JwogcGtnbmFtZT1yZW1vdmVkLXBhY2thZ2VzCiB2ZXJzaW9uPTAuMQotcmV2aXNpb249NjkKK3Jl dmlzaW9uPTcwCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9ydF9kZXNjPSJVbmluc3RhbGxzIHBhY2th Z2VzIHJlbW92ZWQgZnJvbSByZXBvc2l0b3J5IgogbWFpbnRhaW5lcj0iUGlvdHIgV8OzamNpayA8 Y2hvY2ltaWVyQHRsZW4ucGw+IgpAQCAtMjUsNiArMjUsNyBAQCByZXBsYWNlcz0iCiAgYXRvbTw9 MS40NC4wXzEKICBhdm9nYWRyby1kZXZlbDw9MS4yLjBfOAogIGF2b2dhZHJvPD0xLjIuMF84Cisg YmVpZ25ldDw9MS4zLjJfMTAKICBib2trZW48PTEuOF8zCiAgYm9taTw9MC45LjExXzE3CiAgYnVy cC1jbGllbnQ8PTEuNC40MF8xMwoKRnJvbSBmZWQ3ZTYyMzY1ODllZGYyZGQ5ZTkwNGRiZTc2YmNl NTY4MGI0Njc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlv bmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIyOjMxOjI1ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAyMC8yM10gbGRjOiB1cGRhdGUgdG8gMS4yOS4wLgoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICB8IDEwICsrKysrLS0tLS0KIHNyY3BrZ3MvbGRjL3RlbXBsYXRl IHwgIDkgKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggMzMzMzc0MGIyODgxLi43MDg4OGEyMjczNjcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtMjE4MSwxMSArMjE4MSwxMSBAQCBsaWJGY2l0eDVDb25m aWcuc28uNiBsaWJmY2l0eDUtNS4wLjVfMQogbGliRmNpdHg1R0NsaWVudC5zby4yIGZjaXR4NS1n dGstNS4wLjRfMQogbGliRmNpdHg1UXQ1REJ1c0FkZG9ucy5zby4xIGZjaXR4NS1xdDUtNS4wLjNf MQogbGliRmNpdHg1UXQ1V2lkZ2V0c0FkZG9ucy5zby4yIGZjaXR4NS1xdDUtNS4wLjNfMQotbGli ZHJ1bnRpbWUtbGRjLWRlYnVnLXNoYXJlZC5zby45OCBsZGMtcnVudGltZS0xLjI4LjBfMQotbGli ZHJ1bnRpbWUtbGRjLXNoYXJlZC5zby45OCBsZGMtcnVudGltZS0xLjI4LjBfMQotbGlicGhvYm9z Mi1sZGMtc2hhcmVkLnNvLjk4IGxkYy1ydW50aW1lLTEuMjguMF8xCi1saWJwaG9ib3MyLWxkYy1k ZWJ1Zy1zaGFyZWQuc28uOTggbGRjLXJ1bnRpbWUtMS4yOC4wXzEKLWxpYmxkYy1qaXQuc28uOTkg bGRjLXJ1bnRpbWUtMS4yOS4wXzEKK2xpYmRydW50aW1lLWxkYy1kZWJ1Zy1zaGFyZWQuc28uOTkg bGRjLXJ1bnRpbWUtMS4yOS4wXzEKK2xpYmRydW50aW1lLWxkYy1zaGFyZWQuc28uOTkgbGRjLXJ1 bnRpbWUtMS4yOS4wXzEKK2xpYnBob2JvczItbGRjLXNoYXJlZC5zby45OSBsZGMtcnVudGltZS0x LjI5LjBfMQorbGlicGhvYm9zMi1sZGMtZGVidWctc2hhcmVkLnNvLjk5IGxkYy1ydW50aW1lLTEu MjkuMF8xCitsaWJsZGMtaml0LnNvLjk4IGxkYy1ydW50aW1lLTEuMjguMF8xCiBsaWJtYXJibGV3 aWRnZXQtcXQ1LnNvLjI4IG1hcmJsZTUtMTcuMTIuMl8xCiBsaWJhc3Ryby5zby4yIG1hcmJsZTUt MTcuMTIuMl8xCiBsaWJwYXJyb3Quc28uNi45LjAgcGFycm90LTYuOS4wXzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGRjL3RlbXBsYXRlIGIvc3JjcGtncy9sZGMvdGVtcGxhdGUKaW5kZXggZTg0OWIy NzI1MDFlLi4xZDcyYTg4MDVlYjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbGRjJwogcGtnbmFtZT1sZGMKLXZlcnNpb249MS4yOC4wCi1yZXZpc2lvbj0yCi1yZXZl cnRzPSIxLjI5LjBfMSIKK3ZlcnNpb249MS4yOS4wCityZXZpc2lvbj0xCiB3cmtzcmM9ImxkYy0k e3ZlcnNpb259LXNyYyIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iCkBAIC0x Miw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIKICAtREJBU0hfQ09NUExFVElPTl9DT01QTEVU SU9OU0RJUj0vdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlvbgogIC1EQ19TWVNURU1fTElCUz0ndW53 aW5kO207cHRocmVhZDtydDtkbCciCiBjb25mX2ZpbGVzPSIvZXRjL2xkYzIuY29uZiIKLWhvc3Rt YWtlZGVwZW5kcz0iZG1kIGxsdm0xMiBwZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9 ImRtZCBsbHZtMTQgcGVybCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImxpYmN1cmwtZGV2ZWwg bGliZmZpLWRldmVsIG5jdXJzZXMtZGV2ZWwgemxpYi1kZXZlbAogIGxsdm0tbGlidW53aW5kLWRl dmVsIgogZGVwZW5kcz0ibGRjLXJ1bnRpbWUgbGx2bS1saWJ1bndpbmQtZGV2ZWwiCkBAIC0yMyw3 ICsyMiw3IEBAIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSwgQlNMLTEuMCIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZGxhbmcub3JnL0xEQyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL2xkYy1kZXZlbG9wZXJzL2xkYy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIgogZGlz dGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbGRjLWRldmVsb3BlcnMvbGRjL3JlbGVhc2VzL2Rv d25sb2FkL3Yke3ZlcnNpb259L2xkYy0ke3ZlcnNpb259LXNyYy50YXIuZ3oiCi1jaGVja3N1bT0x N2ZlZThiYjUzNWJjYjhjZGEwYTQ1OTQ3NTI2NTU1YzQ2YzA0NWYzMDJhNzM0OWNjODcxMWIyNTRl NTRjZjA5CitjaGVja3N1bT1kMGMwNjZlYjk2NTQ2NzYyNWQ5YzVlNzVjMDBjNTgzNDUxYjlmZmEz NjM2MDFmOWUzNzI3NWNhOGE4YWVhMTQwCiBub3BpZT15ZXMKIG5vY3Jvc3M9ImRtZCBjb21waWxh dGlvbiBmYWlscyBvbiBjcm9zcyIKICMgdGVzdHMgdGltZW91dCBvbiBtdXNsOyBhbHNvIHJlcXVp cmUgdW5wYWNrYWdlZCBweXRob24zLWxpdAoKRnJvbSA0ZGUzMGM1NDc4ODUwMzdjZWJlNzI1MTdh MTlhOWJlNGY4NTVhZmFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6 QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3 OjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS8yM10gaW5jbHVkZS13aGF0LXlvdS11c2U6IHVw ZGF0ZSB0byAwLjE4LgoKLS0tCiBzcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9z cmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCmluZGV4IGIxM2JiN2VlNTZhZi4u Mjk3NjY5ZjYwNDU5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpbmNsdWRlLXdoYXQteW91LXVzZScKIHBr Z25hbWU9aW5jbHVkZS13aGF0LXlvdS11c2UKLXZlcnNpb249MC4xNgordmVyc2lvbj0wLjE4CiBy ZXZpc2lvbj0xCiB3cmtzcmM9IiR7cGtnbmFtZX0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTIs NyArMTIsNyBAQCBtYWludGFpbmVyPSJMZWFoIE5ldWtpcmNoZW4gPGxlYWhAdnV4dS5vcmc+Igog bGljZW5zZT0iTkNTQSIKIGhvbWVwYWdlPSJodHRwczovL2luY2x1ZGUtd2hhdC15b3UtdXNlLm9y Zy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vaW5jbHVkZS13aGF0LXlvdS11c2Uub3JnL2Rvd25sb2Fk cy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0uc3JjLnRhci5neiIKLWNoZWNrc3VtPThkNmZjOWIyNTUz NDNiYzFlNWVjNDU5ZTM5NTEyZGYxZDUxYzYwZTAzNTYyOTg1ZTAwNzYwMzYxMTlmZjVhMWMKK2No ZWNrc3VtPTkxMDJmYzg0MTkyOTQ3NTdkZjg2YTg5Y2U2ZWMzMDVmOGQ5MGE4MThkMWYyNTk4YTEz OWQxNWViMTg5NGI4ZjMKIHB5dGhvbl92ZXJzaW9uPTMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJv bSBhZmNjZDA0ZWZhNjE0NGVhYmQzMDI1Y2Q0NTI1MjFkOWI1OWUxMjdlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4K RGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE4OjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi8y M10gU1BJUlYtTExWTS1UcmFuc2xhdG9yOiB1cGRhdGUgdG8gMTQuMC4wLgoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvU1BJUlYtTExW TS1UcmFuc2xhdG9yL3RlbXBsYXRlIHwgMTMgKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3No bGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNzA4ODhhMjI3MzY3Li40MGVmZDI5ZDViNzEgMTAw NjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTgxLDYgKzk4 MSw3IEBAIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAtMTQuMC4zXzEKIGxpYkxMVk0t MTEuc28gbGlibGx2bTExLTExLjAuMF8xCiBsaWJMTFZNLTEyLnNvIGxpYmxsdm0xMi0xMi4wLjBf MQogbGliTExWTS0xNC5zbyBsaWJsbHZtMTQtMTQuMC4zXzEKK2xpYkxMVk1TUElSVkxpYi5zby4x NCBTUElSVi1MTFZNLVRyYW5zbGF0b3ItMTQuMC4wXzEKIGxpYmlzb2ZzLnNvLjYgbGliaXNvZnMt MC42LjI0XzEKIGxpYm1wYWNrLnNvLjAgbGlibXBhY2stMS4wLjVfMQogbGliR2VvSVAuc28uMSBs aWJnZW9pcC0xLjQuOF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRv ci90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlCmluZGV4 IDI1MDRjYWJlZDM2Ny4uZmRlOTY4OWY3MTBjIDEwMDY0NAotLS0gYS9zcmNwa2dzL1NQSVJWLUxM Vk0tVHJhbnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRv ci90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnU1BJUlYt TExWTS1UcmFuc2xhdG9yJwogcGtnbmFtZT1TUElSVi1MTFZNLVRyYW5zbGF0b3IKLXZlcnNpb249 MTIuMC4wCit2ZXJzaW9uPTE0LjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIG1h a2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKLWNvbmZpZ3VyZV9hcmdzPSItV25vLWRldiAtRExM Vk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTgotIC1ETExWTV9TUElS Vl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJTPU9OIgotaG9zdG1ha2VkZXBl bmRzPSJjbGFuZyBjbGFuZy10b29scy1leHRyYSBsbHZtIgotbWFrZWRlcGVuZHM9Imxsdm0iCitj b25maWd1cmVfYXJncz0iLURCVUlMRF9TSEFSRURfTElCUz1PTiAtRENNQUtFX0JVSUxEX1RZUEU9 UmVsZWFzZQorIC1EQ01BS0VfUE9TSVRJT05fSU5ERVBFTkRFTlRfQ09ERT1PTiAtRENNQUtFX1NL SVBfUlBBVEg9T04gLURMTFZNX0lOQ0xVREVfVEVTVFM9T0ZGCisgLURMTFZNX0xJTktfTExWTV9E WUxJQj1PTiAtRExMVk1fRVhURVJOQUxfTElUPS91c3IvYmluL2xpdCAtV25vLWRldiAtRExMVk1f RVhURVJOQUxfU1BJUlZfSEVBREVSU19TT1VSQ0VfRElSPS91c3IvaW5jbHVkZS9zcGlydi8gIgor aG9zdG1ha2VkZXBlbmRzPSJjbGFuZyBjbGFuZy10b29scy1leHRyYSBsbHZtMTQiCittYWtlZGVw ZW5kcz0ibGx2bTE0IFNQSVJWLUhlYWRlcnMiCiBzaG9ydF9kZXNjPSJBUEkgYW5kIGNvbW1hbmRz IGZvciBwcm9jZXNzaW5nIFNQSVItViBtb2R1bGVzIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9y cGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik5DU0EiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRodWIuY29tL0tocm9ub3NHcm91cC9TUElSVi1MTFZNLVRyYW5zbGF0b3IiCiBkaXN0ZmlsZXM9 Imh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvJHtwa2duYW1lfS9hcmNoaXZlL3JlZnMv dGFncy92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZTRmYWQwNDIwM2YyNWZjZGU0YzMw OGM1M2U5ZjU5YmQwNWEzOTA5Nzg5OTJkYjMyMTJkNGI2M2FmZjYyMTA4CitjaGVja3N1bT0xYWZj NTJiYjRlMzlhZWI5YjViNjkzMjRhMjAxYzgxYmQ5ODYzNjRmMzQ3YjU1OTk5NWVmZjZmZDZmMDEz MzE4CiBtYWtlX2NoZWNrPW5vCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20gMWI0ZTVmZmU4YzQz ZDNhMzZlNmEyZjNmMDE0OTM1YzlhNWIxMTc4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBN YXkgMjAyMiAyMTozNTo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMjNdIGlzcGM6IHVwZGF0 ZSB0byAxLjE3LjAuCgotLS0KIC4uLi9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25l LnBhdGNoICB8ICAgMTggLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaCAg ICAgICAgIHwgICA1NyAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoICAg ICAgICAgfCAgOTIzIC0tLS0tLS0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBh dGNoICAgICAgICAgfCAxNTA0IC0tLS0tLS0tLS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNC5wYXRjaCAgICAgICAgIHwgICAzNCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA1LnBhdGNoICAgICAgICAgfCAgMzcyIC0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNi5wYXRjaCAgICAgICAgIHwgIDEyNiAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA3LnBhdGNoICAgICAgICAgfCAgMTYwIC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA4LnBhdGNoICAgICAgICAgfCAgMTQ5IC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA5LnBhdGNoICAgICAgICAgfCAyMTA5IC0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lz cGMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiAxMSBmaWxlcyBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDU0NTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5 LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlw ZS1ub25lLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25l LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTFlMzUzYzczMTQuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1JbmRleDogaXNwYy0xLjE1LjAv Q01ha2VMaXN0cy50eHQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBpc3BjLTEuMTUuMC5vcmlnL0NNYWtlTGlz dHMudHh0Ci0rKysgaXNwYy0xLjE1LjAvQ01ha2VMaXN0cy50eHQKLUBAIC0xNTcsMTMgKzE1Nyw2 IEBAIHNldChPVVRQVVRfUkVMRUFTRSBSZWxlYXNlL2JpbikKLSBzZXQoQ01BS0VfUlVOVElNRV9P VVRQVVRfRElSRUNUT1JZICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9iaW4gKQotIAotIGlm KENNQUtFX0JVSUxEX1RZUEUpCi0tICAgICMgVmFsaWRhdGUgYnVpbGQgdHlwZQotLSAgICBzZXQo Q09ORklHVVJBVElPTl9UWVBFUyAiRGVidWc7UmVsZWFzZTtSZWxXaXRoRGViSW5mbyIpCi0tCi0t ICAgIHN0cmluZyhGSU5EICIke0NPTkZJR1VSQVRJT05fVFlQRVN9IiAiJHtDTUFLRV9CVUlMRF9U WVBFfSIgTUFUQ0hFRF9DT05GSUcpCi0tICAgIGlmICgke01BVENIRURfQ09ORklHfSBFUVVBTCAt MSkKLS0gICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTUFLRV9CVUlMRF9UWVBFICgke0NN QUtFX0JVSUxEX1RZUEV9KSBhbGxvd3Mgb25seSB0aGUgZm9sbG93aW5nIHZhbHVlczogJHtDT05G SUdVUkFUSU9OX1RZUEVTfSIpCi0tICAgIGVuZGlmKCkKLSBlbHNlKE5PVCBDTUFLRV9CVUlMRF9U WVBFKQotICAgICBzZXQoQ01BS0VfQlVJTERfVFlQRSAiUmVsZWFzZSIpCi0gICAgIG1lc3NhZ2Uo U1RBVFVTICJCdWlsZCB0eXBlIG5vdCBzcGVjaWZpZWQ6IFVzZSBSZWxlYXNlIGJ5IGRlZmF1bHQu IikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggYi9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA1ZjJkM2Y1YTQwOWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAot RnJvbSAxYzBmODlkY2NiNzc0ZjIxNmM3ZjZlNzZhOTllZTkwN2ExZTY0MWNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogRG1pdHJ5IEJhYm9raW4gPGRtaXRyeS55LmJhYm9raW5AaW50 ZWwuY29tPgotRGF0ZTogVHVlLCAyMiBEZWMgMjAyMCAxNzowMzo1OSAtMDgwMAotU3ViamVjdDog W1BBVENIXSBGaXggdG8gd29yayB3aXRoIExMVk0gdHJ1bmsgYWZ0ZXIgbGx2bS9sbHZtLXByb2pl Y3RANDFjM2IyNzEzCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgMTggKysrKysrKysrKysrLS0tLS0t Ci0gMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA2ZmJiOGI5Y2YuLjk3 N2U5ZDIyMiAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAg LTE0NzMsMTEgKzE0NzMsMTUgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGREZWJ1Z1Bv cyhsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IFNvdXJjZVBvcyAqcG9zLAotICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPih2YWx1 ZSk7Ci0gICAgIGlmIChpbnN0ICE9IE5VTEwgJiYgbS0+ZGlCdWlsZGVyKSB7Ci0gICAgICAgICBT b3VyY2VQb3MgcCA9IHBvcyA/ICpwb3MgOiBjdXJyZW50UG9zOwotLSAgICAgICAgaWYgKHAuZmly c3RfbGluZSAhPSAwKQotKyAgICAgICAgaWYgKHAuZmlyc3RfbGluZSAhPSAwKSB7Ci0gICAgICAg ICAgICAgLy8gSWYgZmlyc3RfbGluZSA9PSAwLCB0aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg c2V0dGluZyB1cAotICAgICAgICAgICAgIC8vIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IG9yIHRoZSBs aWtlOyBkb24ndCBhZGQgZGVidWcgcG9zaXRpb25zCi0gICAgICAgICAgICAgLy8gZm9yIHRob3Nl IGZ1bmN0aW9ucwotLSAgICAgICAgICAgIGluc3QtPnNldERlYnVnTG9jKGxsdm06OkRlYnVnTG9j OjpnZXQocC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUgPyBzY29wZSA6IEdldERJ U2NvcGUoKSkpOwotKyAgICAgICAgICAgIHNjb3BlID0gc2NvcGUgPyBzY29wZSA6IEdldERJU2Nv cGUoKTsKLSsgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICAgICAg ICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29udGV4dCgpLCBwLmZpcnN0X2xp bmUsIHAuZmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotKyAgICAgICAgICAg IGluc3QtPnNldERlYnVnTG9jKGRpTG9jKTsKLSsgICAgICAgIH0KLSAgICAgfQotIH0KLSAKLUBA IC0xNTE4LDkgKzE1MjIsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0VmFyaWFi bGVEZWJ1Z0luZm8oU3ltYm9sICpzeW0pIHsKLSAgICAgbGx2bTo6RElMb2NhbFZhcmlhYmxlICp2 YXIgPSBtLT5kaUJ1aWxkZXItPmNyZWF0ZUF1dG9WYXJpYWJsZSgKLSAgICAgICAgIHNjb3BlLCBz eW0tPm5hbWUsIHN5bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBkaVR5 cGUsIHRydWUgLyogcHJlc2VydmUgdGhyb3VnaCBvcHRzICovKTsKLSAKLSsgICAgbGx2bTo6RGVi dWdMb2MgZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRD b250ZXh0KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2Nv cGUsIG51bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0 ID0KLS0gICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIs IHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9s aW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0t PmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWls ZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1Bv cyhkZWNsYXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIAotQEAgLTE1MzUsOSArMTU0 MCwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRGdW5jdGlvblBhcmFtZXRlckRl YnVnSW5mbyhTeW1ib2wgKnN5bSwgaW50IGFyZ051bQotICAgICAgICAgbS0+ZGlCdWlsZGVyLT5j cmVhdGVQYXJhbWV0ZXJWYXJpYWJsZShzY29wZSwgc3ltLT5uYW1lLCBhcmdOdW0gKyAxLCBzeW0t PnBvcy5HZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRo cm91Z2ggb3B0cyAqLywgZmxhZ3MpOwotIAotKyAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0r ICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5w b3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFs c2UpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxk ZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZp cnN0X2NvbHVtbiwgc2NvcGUpLCBiYmxvY2spOwotKyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNl cnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJl c3Npb24oKSwgZGlMb2MsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAm c3ltLT5wb3MsIHNjb3BlKTsKLSB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDAyLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkwM2YzMGRhMTBkLi4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDkyMyArMCwwIEBACi1Gcm9tIDA1OTdhNzlkMDg0YzAxNDc4MDEzNmRhOTA2YWZl MjFkMTVlOTgyY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWtSYWplbmRy YWt1bWFyYW4gPGRlZXBhay5yYWplbmRyYWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCA1 IEphbiAyMDIxIDEzOjUzOjMwIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSBMTFZNIDgu MCBhbmQgTExWTSA5LjAuICgjMTk2NikKLQotLS0tCi0gLmFwcHZleW9yLnltbCAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDMgLS0KLSAudHJhdmlzLnltbCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNyAtLS0KLSBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgfCAxMiAr Ky0tLS0KLSBzcmMvYXN0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAtLQotIHNy Yy9jdHguY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0tLS0KLSBz cmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwICAgICAgfCAgNCAtLQotIHNyYy9pc3BjLmNw cCAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwIC0tLS0tLS0tLQotIHNyYy9pc3BjLmggICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstCi0gc3JjL2lzcGNfdmVyc2lvbi5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKy0KLSBzcmMvbWFpbi5jcHAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxMyAtLS0tLS0KLSBzcmMvbW9kdWxlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAy NyAtLS0tLS0tLS0tLS0KLSBzcmMvbW9kdWxlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiAtCi0gc3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQgKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIHNyYy90eXBlLmNwcCAgICAgICAgICAgICAgICAgICAgICAg ICB8IDEwICsrLS0tCi0gdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYyAgICAgICAgICAgIHwgIDEg LQotIHRlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMgICAgICAgICAgICB8ICAzIC0tCi0gdGVzdHMv bGl0LXRlc3RzLzE5MjYuaXNwYyAgICAgICAgICAgIHwgIDIgLQotIHRlc3RzL2xpdC10ZXN0cy9j cHVzX3g4Ni5pc3BjICAgICAgICB8ICAyICsKLSB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2 bTEwLmlzcGMgfCAxMSAtLS0tLQotIHRlc3RzL2xpdC10ZXN0cy9saXQuY2ZnICAgICAgICAgICAg ICB8ICA1IC0tLQotIDIwIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIxMyBkZWxl dGlvbnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xs dm0xMC5pc3BjCi0KLWRpZmYgLS1naXQgYS8uYXBwdmV5b3IueW1sIGIvLmFwcHZleW9yLnltbAot aW5kZXggNDUxYTdiM2UwLi43OTQ1Y2NhMmEgMTAwNjQ0Ci0tLS0gYS8uYXBwdmV5b3IueW1sCi0r KysgYi8uYXBwdmV5b3IueW1sCi1AQCAtNDEsOCArNDEsNiBAQCBlbnZpcm9ubWVudDoKLSAgICAg ICBMTFZNX1ZFUlNJT046IGxhdGVzdAotICAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFH RTogVmlzdWFsIFN0dWRpbyAyMDE5Ci0gICAgICAgTExWTV9WRVJTSU9OOiAxMC4wCi0tICAgIC0g QVBQVkVZT1JfQlVJTERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLS0gICAgICBM TFZNX1ZFUlNJT046IDkuMAotIAotIGZvcjoKLSAtCi1AQCAtNjIsNyArNjAsNiBAQCBmb3I6Ci0g ICAgICAgICBpZiAiJUFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRSUiPT0iVmlzdWFsIFN0dWRp byAyMDE5IiAoIChzZXQgZ2VuZXJhdG9yPSJWaXN1YWwgU3R1ZGlvIDE2IikgJiAoc2V0IHZzdmVy c2lvbj0yMDE5KSkKLSAgICAgICAgIHNldCBMTFZNX1RBUj1sbHZtLTExLjAuMC13aW4udnMyMDE5 LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uN3oKLSAgICAgICAgIGlmICIlTExWTV9WRVJT SU9OJSI9PSIxMC4wIiAoc2V0IExMVk1fVEFSPWxsdm0tMTAuMC4xLXdpbi52czIwMTktUmVsZWFz ZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56aXApCi0tICAgICAgICBpZiAiJUxMVk1fVkVSU0lPTiUi PT0iOS4wIiAoc2V0IExMVk1fVEFSPWxsdm0tOS4wLjEtd2luLnZzMjAxNy1SZWxlYXNlK0Fzc2Vy dHMteDg2LmFybS53YXNtLnppcCkKLSAgIGluc3RhbGw6Ci0gICAgIC0gcHM6IGNob2NvIGluc3Rh bGwgLS1uby1wcm9ncmVzcyB3aW5mbGV4Ymlzb24zIHdnZXQgN3ppcAotICAgICAtIGNtZDogfC0K LWRpZmYgLS1naXQgYS8udHJhdmlzLnltbCBiLy50cmF2aXMueW1sCi1pbmRleCAyZTk2MDE3YTYu LjNhNmI4NTI2NCAxMDA2NDQKLS0tLSBhLy50cmF2aXMueW1sCi0rKysgYi8udHJhdmlzLnltbAot QEAgLTEwOCwxMyArMTA4LDYgQEAgam9iczoKLSAgICAgICAgIC0gTExWTV9UQVI9bGx2bS0xMC4w LjEtdWJ1bnR1MTYuMDQtUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS50YXIueHoKLSAgICAg ICAgIC0gTExWTV9SRVBPPWh0dHBzOi8vZ2l0aHViLmNvbS9kYmFib2tpbi9sbHZtLXByb2plY3QK LSAgICAgICAgIC0gSVNQQ19IT01FPSRUUkFWSVNfQlVJTERfRElSCi0tICAgICMgTExWTSA5LjAg KyBVYnVudHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1wbGVzIChidWlsZCArIHJ1biks IGJlbmNobWFya3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotLSAgICAtIDw8OiAqbXlfdGFnCi0tICAg ICAgZW52OgotLSAgICAgICAgLSBMTFZNX1ZFUlNJT049OS4wIE9TPVVidW50dTE2LjA0Ci0tICAg ICAgICAtIExMVk1fVEFSPWxsdm0tOS4wLjEtdWJ1bnR1MTYuMDQtUmVsZWFzZStBc3NlcnRzLXg4 Ni5hcm0ud2FzbS50YXIueHoKLS0gICAgICAgIC0gTExWTV9SRVBPPWh0dHBzOi8vZ2l0aHViLmNv bS9kYmFib2tpbi9sbHZtLXByb2plY3QKLS0gICAgICAgIC0gSVNQQ19IT01FPSRUUkFWSVNfQlVJ TERfRElSCi0gICAgICMgV0FTTSBlbmFibGVkIGJ1aWxkCi0gICAgICMgTExWTSAxMS4wICsgVWJ1 bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVpbGQpLCBiZW5jaG1hcmtz IChidWlsZCArIHRyaWFsIHJ1bikKLSAgICAgLSA8PDogKm15X3RhZwotZGlmZiAtLWdpdCBhL0NN YWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IDVmYTg2M2ZjZi4uYTZiM2VkMjUx IDEwMDY0NAotLS0tIGEvQ01ha2VMaXN0cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0Ci1AQCAt MjQxLDEwICsyNDEsOCBAQCBpZiAoWDg2X0VOQUJMRUQpCi0gICAgICAgICBhdngyLWk4eDMyIGF2 eDItaTE2eDE2Ci0gICAgICAgICBhdngyLWkzMng0IGF2eDItaTMyeDggYXZ4Mi1pMzJ4MTYgYXZ4 Mi1pNjR4NAotICAgICAgICAgYXZ4NTEya25sLWkzMngxNgotLSAgICAgICAgYXZ4NTEyc2t4LWkz MngxNiBhdng1MTJza3gtaTMyeDgpCi0tICAgIGlmICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZF UlNJT05fR1JFQVRFUl9FUVVBTCAiMTAuMC4wIikKLS0gICAgICAgIGxpc3QoQVBQRU5EIElTUENf VEFSR0VUUyBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLS0gICAgZW5kaWYoKQot KyAgICAgICAgYXZ4NTEyc2t4LWkzMngxNiBhdng1MTJza3gtaTMyeDgKLSsgICAgICAgIGF2eDUx MnNreC1pOHg2NCBhdng1MTJza3gtaTE2eDMyKQotIGVuZGlmKCkKLSBpZiAoQVJNX0VOQUJMRUQp Ci0gICAgIGxpc3QoQVBQRU5EIElTUENfVEFSR0VUUyBuZW9uLWk4eDE2IG5lb24taTE2eDggbmVv bi1pMzJ4NCBuZW9uLWkzMng4KQotQEAgLTI1OSwxMSArMjU3LDcgQEAgaWYgKFdBU01fRU5BQkxF RCkKLSBlbmRpZigpCi0gCi0gc2V0KENMQU5HX0xJQlJBUllfTElTVCBjbGFuZ0Zyb250ZW5kIGNs YW5nRHJpdmVyIGNsYW5nU2VyaWFsaXphdGlvbiBjbGFuZ1BhcnNlIGNsYW5nU2VtYSBjbGFuZ0Fu YWx5c2lzIGNsYW5nQVNUIGNsYW5nQmFzaWMgY2xhbmdFZGl0IGNsYW5nTGV4KQotLXNldChMTFZN X0NPTVBPTkVOVFMgZW5naW5lIGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlv biBsaW5rZXIgb3B0aW9uKQotLQotLWlmICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZFUlNJT05f R1JFQVRFUl9FUVVBTCAiMTAuMC4wIikKLS0gICAgbGlzdChBUFBFTkQgTExWTV9DT01QT05FTlRT IGZyb250ZW5kb3Blbm1wKQotLWVuZGlmKCkKLStzZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBp cG8gYml0cmVhZGVyIGJpdHdyaXRlciBpbnN0cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbiBmcm9u dGVuZG9wZW5tcCkKLSAKLSBpZiAoWDg2X0VOQUJMRUQpCi0gICAgIGxpc3QoQVBQRU5EIExMVk1f Q09NUE9ORU5UUyB4ODYpCi1kaWZmIC0tZ2l0IGEvc3JjL2FzdC5jcHAgYi9zcmMvYXN0LmNwcAot aW5kZXggMjBmNzVhMjljLi41YTQzYzQ4NTQgMTAwNjQ0Ci0tLS0gYS9zcmMvYXN0LmNwcAotKysr IGIvc3JjL2FzdC5jcHAKLUBAIC00NCw5ICs0NCw3IEBACi0gI2luY2x1ZGUgInN5bS5oIgotICNp bmNsdWRlICJ1dGlsLmgiCi0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAv Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8KLSAvLyBBU1ROb2RlCi0gCi1AQCAtNjIsOSArNjAsNyBAQCB2b2lk IEFTVDo6QWRkRnVuY3Rpb24oU3ltYm9sICpzeW0sIFN0bXQgKmNvZGUpIHsKLSB9Ci0gCi0gdm9p ZCBBU1Q6OkdlbmVyYXRlSVIoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiR2VuZXJhdGVJUiIp OwotLSNlbmRpZgotICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGZ1bmN0aW9ucy5z aXplKCk7ICsraSkKLSAgICAgICAgIGZ1bmN0aW9uc1tpXS0+R2VuZXJhdGVJUigpOwotIH0KLWRp ZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA5NzdlOWQyMjIuLjQy YzRlYTA5ZCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAg LTMwOSwyMSArMzA5LDEzIEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1bmN0aW9uRW1pdENvbnRl eHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpGCi0gICAgICAgICAgICAg Y2hhciBidWZbMjU2XTsKLSAgICAgICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAi X19vZmZfYWxsX29uX21hc2tfJXMiLCBnLT50YXJnZXQtPkdldElTQVN0cmluZygpKTsKLSAKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzhfMAotLSAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50ICpvZmZGdW5jID0gbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1Ziwg TExWTVR5cGVzOjpWb2lkVHlwZSk7Ci0tI2Vsc2UgLy8gTExWTSA5LjArCi0gICAgICAgICAgICAg bGx2bTo6RnVuY3Rpb25DYWxsZWUgb2ZmRnVuY0NhbGxlZSA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNl cnRGdW5jdGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50ICpvZmZGdW5jID0gbGx2bTo6Y2FzdDxsbHZtOjpDb25zdGFudD4ob2ZmRnVuY0Nh bGxlZS5nZXRDYWxsZWUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIGxsdm06OmlzYTxsbHZtOjpGdW5jdGlvbj4ob2ZmRnVuYykpOwotICAgICAgICAgICAg IGxsdm06OkJhc2ljQmxvY2sgKm9mZkJCID0gbGx2bTo6QmFzaWNCbG9jazo6Q3JlYXRlKCpnLT5j dHgsICJlbnRyeSIsIChsbHZtOjpGdW5jdGlvbiAqKW9mZkZ1bmMsIDApOwotICAgICAgICAgICAg IGxsdm06OlN0b3JlSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QoTExWTU1hc2tBbGxP ZmYsIGdsb2JhbEFsbE9uTWFza1B0ciwgb2ZmQkIpOwotICAgICAgICAgICAgIGlmIChnLT5vcHQu Zm9yY2VBbGlnbmVkTWVtb3J5KSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExW TV85XzAKLS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0 TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAg ICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgbGx2bTo6UmV0dXJuSW5zdDo6Q3JlYXRlKCpnLT5jdHgs IG9mZkJCKTsKLSAgICAgICAgIH0KLUBAIC0yMjg4LDExICsyMjgwLDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5 cGUgKnR5cGUsIGMKLSAjZW5kaWYKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1v cnkgJiYgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBl KCkpKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAg IGluc3QtPnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgp KTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2 bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1 ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICB9Ci0gCi0gICAgIEFkZERlYnVnUG9zKGluc3QpOwot QEAgLTI0MzEsMTEgKzI0MTksNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAg ICAgICAgIC8vIHZzIHRoZSBwcm9wZXIgYWxpZ25tZW50IGluIHByYWN0aWNlLikKLSAgICAgICAg ICAgICAgICAgaW50IGFsaWduID0gMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQ Q19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwot LSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50 KGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAg ICAgICAgfQotIAotICAgICAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotQEAgLTI2NDksMTEg KzI2MzMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChs bHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgYWxpZ24gPSBnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotIAotICAgICBpZiAoYWxpZ24gIT0g MCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBp bnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAg IGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkp OwotLSNlbmRpZgotICAgICB9Ci0gICAgIC8vIERvbid0IGFkZCBkZWJ1Z2dpbmcgaW5mbyB0byBh bGxvY2EgaW5zdHJ1Y3Rpb25zCi0gICAgIHJldHVybiBpbnN0OwotQEAgLTI5MjYsMTEgKzI5MDYs NyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlZhbHVlICpwdHIsIGNvbnN0Ci0gICAgIGxsdm06OlN0b3JlSW5zdCAqaW5zdCA9 IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsdWUsIHB0ciwgYmJsb2NrKTsKLSAKLSAgICAgaWYgKGct Pm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElT UENfTExWTV85XzAKLS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBp bnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZl Y3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICB9Ci0gCi0gI2lm ZGVmIElTUENfR0VOWF9FTkFCTEVECi1AQCAtMzAyNSwxNiArMzAwMSwxMCBAQCB2b2lkIEZ1bmN0 aW9uRW1pdENvbnRleHQ6Ok1lbWNweUluc3QobGx2bTo6VmFsdWUgKmRlc3QsIGxsdm06OlZhbHVl ICpzcmMsIGxsdm06OgotICAgICB9Ci0gICAgIGlmIChhbGlnbiA9PSBOVUxMKQotICAgICAgICAg YWxpZ24gPSBMTFZNSW50MzIoMSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExW TV84XzAKLS0gICAgbGx2bTo6Q29uc3RhbnQgKm1jRnVuYyA9Ci0tICAgICAgICBtLT5tb2R1bGUt PmdldE9ySW5zZXJ0RnVuY3Rpb24oImxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQiLCBMTFZNVHlw ZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExW TVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1UeXBlczo6Qm9vbFR5cGUpOwotLSNlbHNlIC8vIExMVk0g OS4wKwotICAgICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBtY0Z1bmNDYWxsZWUgPQotICAgICAgICAg bS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0 IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRl clR5cGUsIExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLSAgICAg bGx2bTo6Q29uc3RhbnQgKm1jRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+KG1jRnVu Y0NhbGxlZS5nZXRDYWxsZWUoKSk7Ci0tI2VuZGlmCi0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBtY0Z1bmMgIT0gTlVMTCk7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8 bGx2bTo6RnVuY3Rpb24+KG1jRnVuYykpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFs c0xvY2FsaXphdGlvbi5jcHAgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRl eCAxOTNhNjYyODkuLmExNzZlOTQ2MiAxMDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2Fs aXphdGlvbi5jcHAKLSsrKyBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC00 NzAsMTEgKzQ3MCw3IEBAIHZvaWQgR2xvYmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxz KExvY2FsaXphdGlvbkluZm8gJkxJKSB7Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0g KkZuLT5nZXRFbnRyeUJsb2NrKCkuYmVnaW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdW LT5nZXRUeXBlKCktPmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxv Y2EgPSBuZXcgQWxsb2NhSW5zdChFbGVtVHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwg JkZpcnN0SSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAg ICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KEdWLT5nZXRBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8g TExWTSAxMC4wKwotICAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGln bihHVi0+Z2V0QWxpZ25tZW50KCkpKTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghaXNhPFVuZGVm VmFsdWU+KEdWLT5nZXRJbml0aWFsaXplcigpKSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0 KEdWLT5nZXRJbml0aWFsaXplcigpLCBBbGxvY2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBh L3NyYy9pc3BjLmNwcCBiL3NyYy9pc3BjLmNwcAotaW5kZXggZTJkMGYyMDZlLi5mYWM1MjMzZjcg MTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5jcHAKLSsrKyBiL3NyYy9pc3BjLmNwcAotQEAgLTI3Miw5 ICsyNzIsNyBAQCB0eXBlZGVmIGVudW0gewotICAgICBDUFVfU2lsdmVybW9udCwKLSAKLSAgICAg Q1BVX0lDWCwKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg Q1BVX1RHTCwKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEy XzAKLSAgICAgQ1BVX0FETCwKLSAgICAgQ1BVX1NQUiwKLUBAIC0zNjUsMTAgKzM2Myw4IEBAIGNs YXNzIEFsbENQVXMgewotIAotICAgICAgICAgbmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY2Vs YWtlLXNlcnZlciIpOwotICAgICAgICAgbmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY3giKTsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIG5hbWVz W0NQVV9UR0xdLnB1c2hfYmFjaygidGlnZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfVEdM XS5wdXNoX2JhY2soInRnbCIpOwotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTJfMAotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJhbGRlcmxh a2UiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFjaygiYWRsIik7Ci1AQCAtNDEx LDExICs0MDcsOSBAQCBjbGFzcyBBbGxDUFVzIHsKLSAgICAgICAgIGNvbXBhdFtDUFVfQURMXSA9 IFNldChDUFVfQURMLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0Nv cmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ1BVX1NhbmR5QnJpZGdlLCBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BV X0Jyb2Fkd2VsbCwgQ1BVX05vbmUpOwotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgY29tcGF0W0NQVV9UR0xdID0KLSAgICAgICAgICAg ICBTZXQoQ1BVX1RHTCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4sIENQVV9D b3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LCBDUFVfU2FuZHlCcmlkZ2UsCi0gICAg ICAgICAgICAgICAgIENQVV9JdnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBD UFVfU0tYLCBDUFVfSUNMLCBDUFVfSUNYLCBDUFVfTm9uZSk7Ci0tI2VuZGlmCi0gICAgICAgICBj b21wYXRbQ1BVX0lDWF0gPSBTZXQoQ1BVX0lDWCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQ VV9QZW5yeW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwg Q1BVX0hhc3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9Ob25lKTsK LSAKLUBAIC01NTYsOSArNTUwLDcgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBj aGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIGNhc2UgQ1BVX1NQUjoK LSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg ICAgIGNhc2UgQ1BVX1RHTDoKLS0jZW5kaWYKLSAgICAgICAgIGNhc2UgQ1BVX0lDWDoKLSAgICAg ICAgIGNhc2UgQ1BVX0lDTDoKLSAgICAgICAgIGNhc2UgQ1BVX1NLWDoKLUBAIC05MTYsNyArOTA4 LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJn ZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAgICAgICAgIH0KLSAgICAgICAgIGJyZWFr OwotICAgICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pOHg2NDoKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8gVGhp cyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAgICAg ICAvLyBiZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFyZQot ICAgICAgICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQgdG8g MTAuMCwgYnV0IG5vdAotQEAgLTkzNywxMiArOTI4LDcgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBh cmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBi b28KLSAgICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAgIENQ VWZyb21JU0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAgIHVu c3VwcG9ydGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAgICAg Y2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJza3hfaTE2eDMyOgotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBMTFZNIDEwLjArCi0gICAgICAgICAvLyBUaGlzIHRhcmdl dCBpcyBlbmFibGVkIG9ubHkgZm9yIExMVk0gMTAuMCBhbmQgbGF0ZXIKLSAgICAgICAgIC8vIGJl Y2F1c2UgTExWTSByZXF1aXJlcyBhIG51bWJlciBvZiBmaXhlcywgd2hpY2ggYXJlCi0gICAgICAg ICAvLyBjb21taXR0ZWQgdG8gTExWTSAxMS4wIGFuZCBjYW4gYmUgYXBwbGllZCB0byAxMC4wLCBi dXQgbm90Ci1AQCAtOTYzLDEwICs5NDksNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNv bnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAg ICAgICAgdGhpcy0+bV9oYXNWZWNQcmVmZXRjaCA9IGZhbHNlOwotICAgICAgICAgQ1BVZnJvbUlT QSA9IENQVV9TS1g7Ci0gICAgICAgICBicmVhazsKLS0jZWxzZQotLSAgICAgICAgdW5zdXBwb3J0 ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAgICAgIGJyZWFrOwotLSNlbmRpZgotICNpZmRlZiBJU1BD X0FSTV9FTkFCTEVECi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6bmVvbl9pOHgxNjoKLSAgICAgICAg IHRoaXMtPm1faXNhID0gVGFyZ2V0OjpORU9OOwotQEAgLTE2NjIsMTEgKzE2NDQsOSBAQCBHbG9i YWxzOjpHbG9iYWxzKCkgewotICAgICBpc011bHRpVGFyZ2V0Q29tcGlsYXRpb24gPSBmYWxzZTsK LSAgICAgZXJyb3JMaW1pdCA9IC0xOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBlbmFibGVUaW1lVHJhY2UgPSBmYWxzZTsKLSAgICAgLy8gc2V0IGRl ZmF1bHQgZ3JhbnVsYXJpdHkgdG8gNTAwLgotICAgICB0aW1lVHJhY2VHcmFudWxhcml0eSA9IDUw MDsKLS0jZW5kaWYKLSAgICAgdGFyZ2V0ID0gTlVMTDsKLSAgICAgY3R4ID0gbmV3IGxsdm06OkxM Vk1Db250ZXh0OwotIAotZGlmZiAtLWdpdCBhL3NyYy9pc3BjLmggYi9zcmMvaXNwYy5oCi1pbmRl eCBlMjVkODgzMGUuLmRlMzU3YTIxYyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmgKLSsrKyBiL3Ny Yy9pc3BjLmgKLUBAIC02OTUsMTMgKzY5NSwxMiBAQCBzdHJ1Y3QgR2xvYmFscyB7Ci0gCi0gICAg IC8qIE51bWJlciBvZiBlcnJvcnMgdG8gc2hvdyBpbiBJU1BDLiAqLwotICAgICBpbnQgZXJyb3JM aW1pdDsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSsKLSAgICAg LyogV2hlbiB0cnVlLCBlbmFibGUgY29tcGlsZSB0aW1lIHRyYWNpbmcuICovCi0gICAgIGJvb2wg ZW5hYmxlVGltZVRyYWNlOwotIAotICAgICAvKiBXaGVuIGNvbXBpbGUgdGltZSB0cmFjaW5nIGlz IGVuYWJsZWQsIHNldCB0aW1lIGdyYW51bGFyaXR5LiAqLwotICAgICBpbnQgdGltZVRyYWNlR3Jh bnVsYXJpdHk7Ci0tI2VuZGlmCi0gfTsKLSAKLSBlbnVtIHsKLWRpZmYgLS1naXQgYS9zcmMvaXNw Y192ZXJzaW9uLmggYi9zcmMvaXNwY192ZXJzaW9uLmgKLWluZGV4IGQ3ODEzNDdmZC4uNDM0YjJk Njc4IDEwMDY0NAotLS0tIGEvc3JjL2lzcGNfdmVyc2lvbi5oCi0rKysgYi9zcmMvaXNwY192ZXJz aW9uLmgKLUBAIC00NCwxMyArNDQsMTEgQEAKLSAKLSAjZGVmaW5lIElTUENfTExWTV9WRVJTSU9O IChMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMDAwMCArIExMVk1fVkVSU0lPTl9NSU5PUiAqIDEwMCkK LSAKLS0jZGVmaW5lIElTUENfTExWTV84XzAgODAwMDAKLS0jZGVmaW5lIElTUENfTExWTV85XzAg OTAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8xMF8wIDEwMDAwMAotICNkZWZpbmUgSVNQQ19MTFZN XzExXzAgMTEwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTJfMCAxMjAwMDAKLSAKLS0jZGVmaW5l IE9MREVTVF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fOF8wCi0rI2RlZmluZSBPTERFU1RfU1VQ UE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEwXzAKLSAjZGVmaW5lIExBVEVTVF9TVVBQT1JURURfTExW TSBJU1BDX0xMVk1fMTJfMAotIAotICNpZmRlZiBfX2lzcGNfX3hzdHIKLWRpZmYgLS1naXQgYS9z cmMvbWFpbi5jcHAgYi9zcmMvbWFpbi5jcHAKLWluZGV4IDhmNjQzMzBjYy4uNWM5MjBlYWJjIDEw MDY0NAotLS0tIGEvc3JjL21haW4uY3BwCi0rKysgYi9zcmMvbWFpbi5jcHAKLUBAIC01NSw5ICs1 NSw3IEBACi0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9TaWduYWxzLmg+Ci0gI2luY2x1ZGUgPGxs dm0vU3VwcG9ydC9UYXJnZXRSZWdpc3RyeS5oPgotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFy Z2V0U2VsZWN0Lmg+Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g I2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9Ub29sT3V0cHV0RmlsZS5oPgotLSNlbmRpZgotIAotICNp ZmRlZiBJU1BDX0hPU1RfSVNfV0lORE9XUwotICNkZWZpbmUgc3RyY2FzZWNtcCBzdHJpY21wCi1A QCAtMTgxLDExICsxNzksOSBAQCBzdGF0aWMgdm9pZCBsUHJpbnRWZXJzaW9uKCkgewotICAgICBz bnByaW50Zih0YXJnZXRIZWxwLCBzaXplb2YodGFyZ2V0SGVscCksICJbLS10YXJnZXQtb3M9PG9z Pl1cdFx0XHRTZWxlY3QgdGFyZ2V0IE9TLiAgPG9zPj17JXN9IiwKLSAgICAgICAgICAgICAgZy0+ dGFyZ2V0X3JlZ2lzdHJ5LT5nZXRTdXBwb3J0ZWRPU2VzKCkuY19zdHIoKSk7Ci0gICAgIFByaW50 V2l0aFdvcmRCcmVha3ModGFyZ2V0SGVscCwgMjQsIFRlcm1pbmFsV2lkdGgoKSwgc3Rkb3V0KTsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgcHJpbnRmKCIg ICAgWy0tdGltZS10cmFjZV1cdFx0XHRUdXJuIG9uIHRpbWUgcHJvZmlsZXIuIEdlbmVyYXRlcyBK U09OIGZpbGUgYmFzZWQgb24gb3V0cHV0IGZpbGVuYW1lLlxuIik7Ci0gICAgIHByaW50ZigiICAg IFstLXRpbWUtdHJhY2UtZ3JhbnVsYXJpdHk9PHZhbHVlPlx0TWluaW11bSB0aW1lIGdyYW51bGFy aXR5IChpbiBtaWNyb3NlY29uZHMpIHRyYWNlZCBieSB0aW1lICIKLSAgICAgICAgICAgICJwcm9m aWxlci5cbiIpOwotLSNlbmRpZgotICAgICBwcmludGYoIiAgICBbLS12ZXJzaW9uXVx0XHRcdFx0 UHJpbnQgaXNwYyB2ZXJzaW9uXG4iKTsKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAgICAg cHJpbnRmKCIgICAgWy0tdmMtb3B0aW9ucz08XCItb3B0aW9uMSAtb3B0aW9uMi4uLlwiPl1cdFx0 XHRcdFBhc3MgYWRkaXRpb25hbCBvcHRpb25zIHRvIFZlY3RvciBDb21waWxlciBiYWNrZW5kXG4i KTsKLUBAIC00NjIsNyArNDU4LDYgQEAgc3RhdGljIHZvaWQgc2V0Q2FsbGluZ0NvbnYoVmVjdG9y Q2FsbFN0YXR1cyB2ZWN0b3JDYWxsLCBBcmNoIGFyY2gpIHsKLSAgICAgfQotIH0KLSAKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSBzdGF0aWMgdm9pZCB3cml0ZUNv bXBpbGVUaW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICBsbHZtOjpTbWFs bFN0cmluZzwxMjg+IGpzb25GaWxlTmFtZShvdXRGaWxlTmFtZSk7Ci0gICAgIGpzb25GaWxlTmFt ZS5hcHBlbmQoIi5qc29uIik7Ci1AQCAtNDc5LDcgKzQ3NCw2IEBAIHN0YXRpYyB2b2lkIHdyaXRl Q29tcGlsZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIG9mLT5rZWVw KCk7Ci0gICAgIHJldHVybjsKLSB9Ci0tI2VuZGlmCi0gCi0gc3RhdGljIHN0ZDo6c2V0PGludD4g UGFyc2luZ1BoYXNlcyhjaGFyICpzdGFnZXMsIEFyZ0Vycm9ycyAmZXJyb3JIYW5kbGVyKSB7Ci0g ICAgIGNvbnN0ZXhwciBpbnQgcGFyc2luZ19saW1pdCA9IDEwMDsKLUBAIC03OTEsMTIgKzc4NSwx MCBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAqQXJndltdKSB7Ci0gICAgICAgICAgICAgfQot ICAgICAgICAgfSBlbHNlIGlmICghc3RybmNtcChhcmd2W2ldLCAiLS1mb3JjZS1hbGlnbm1lbnQ9 IiwgMTgpKSB7Ci0gICAgICAgICAgICAgZy0+Zm9yY2VBbGlnbm1lbnQgPSBhdG9pKGFyZ3ZbaV0g KyAxOCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAg ICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0tdGltZS10cmFjZSIpKSB7Ci0gICAgICAg ICAgICAgZy0+ZW5hYmxlVGltZVRyYWNlID0gdHJ1ZTsKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0 cm5jbXAoYXJndltpXSwgIi0tdGltZS10cmFjZS1ncmFudWxhcml0eT0iLCAyNSkpIHsKLSAgICAg ICAgICAgICBnLT50aW1lVHJhY2VHcmFudWxhcml0eSA9IGF0b2koYXJndltpXSArIDI1KTsKLS0j ZW5kaWYKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS13b2ZmIikgfHwg IXN0cmNtcChhcmd2W2ldLCAiLXdvZmYiKSkgewotICAgICAgICAgICAgIGctPmRpc2FibGVXYXJu aW5ncyA9IHRydWU7Ci0gICAgICAgICAgICAgZy0+ZW1pdFBlcmZXYXJuaW5ncyA9IGZhbHNlOwot QEAgLTEwNTksNyArMTA1MSw2IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsK LSAKLSAgICAgLy8gVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgdGhlIFRhcmdldE9TIGlzIGRl Y2lkZWQuCi0gICAgIHNldENhbGxpbmdDb252KHZlY3RvckNhbGwsIGFyY2gpOwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBpZiAoZy0+ZW5hYmxlVGltZVRy YWNlKSB7Ci0gICAgICAgICBsbHZtOjp0aW1lVHJhY2VQcm9maWxlckluaXRpYWxpemUoZy0+dGlt ZVRyYWNlR3JhbnVsYXJpdHksICJpc3BjIik7Ci0gICAgIH0KLUBAIC0xMDc3LDkgKzEwNjgsNSBA QCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAqQXJndltdKSB7Ci0gICAgICAgICB9Ci0gICAgICAg ICBsbHZtOjp0aW1lVHJhY2VQcm9maWxlckNsZWFudXAoKTsKLSAgICAgfQotLSNlbHNlCi0tICAg IGludCByZXQgPSBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoZmlsZSwgYXJjaCwgY3B1LCB0YXJn ZXRzLCBmbGFncywgb3QsIG91dEZpbGVOYW1lLCBoZWFkZXJGaWxlTmFtZSwgZGVwc0ZpbGVOYW1l LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNUYXJnZXROYW1l LCBob3N0U3R1YkZpbGVOYW1lLCBkZXZTdHViRmlsZU5hbWUpOwotLSNlbmRpZgotICAgICByZXR1 cm4gcmV0OwotIH0KLWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmNwcCBiL3NyYy9tb2R1bGUuY3Bw Ci1pbmRleCBmZTc0NTJkZjEuLmE4NWZlYzc3YSAxMDA2NDQKLS0tLSBhL3NyYy9tb2R1bGUuY3Bw Ci0rKysgYi9zcmMvbW9kdWxlLmNwcAotQEAgLTE3MCw5ICsxNzAsNyBAQCBNb2R1bGU6Ok1vZHVs ZShjb25zdCBjaGFyICpmbikgewotICAgICBtb2R1bGUtPnNldERhdGFMYXlvdXQoZy0+dGFyZ2V0 LT5nZXREYXRhTGF5b3V0KCktPmdldFN0cmluZ1JlcHJlc2VudGF0aW9uKCkpOwotIAotICAgICBp ZiAoZy0+Z2VuZXJhdGVEZWJ1Z2dpbmdTeW1ib2xzKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2Nv cGUoIkNyZWF0ZSBEZWJ1ZyBEYXRhIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBUbyBlbmFibGUg ZGVidWcgaW5mb3JtYXRpb24gb24gV2luZG93cywgd2UgaGF2ZSB0byBsZXQgbGx2bSBrbm93LCB0 aGF0Ci0gICAgICAgICAvLyBkZWJ1ZyBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZW1pdHRlZCBpbiBD b2RlVmlldyBmb3JtYXQuCi0gICAgICAgICBpZiAoZy0+dGFyZ2V0X29zID09IFRhcmdldE9TOjp3 aW5kb3dzKSB7Ci1AQCAtMjI2LDEwICsyMjQsOCBAQCBleHRlcm4gWVlfQlVGRkVSX1NUQVRFIHl5 X2NyZWF0ZV9idWZmZXIoRklMRSAqLCBpbnQpOwotIGV4dGVybiB2b2lkIHl5X2RlbGV0ZV9idWZm ZXIoWVlfQlVGRkVSX1NUQVRFKTsKLSAKLSBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgQ29tcGlsZUZpbGVUaW1lU2NvcGUoCi0gICAgICAgICAiQ29tcGlsZUZpbGUiLCBs bHZtOjpTdHJpbmdSZWYoZmlsZW5hbWUgKyAoIl8iICsgc3RkOjpzdHJpbmcoZy0+dGFyZ2V0LT5H ZXRJU0FTdHJpbmcoKSkpKSk7Ci0tI2VuZGlmCi0gICAgIGV4dGVybiB2b2lkIFBhcnNlckluaXQo KTsKLSAgICAgUGFyc2VySW5pdCgpOwotIAotQEAgLTIzOCwxOCArMjM0LDE0IEBAIGludCBNb2R1 bGU6OkNvbXBpbGVGaWxlKCkgewotICAgICAvLyB2YXJpYWJsZSAnbScgdG8gYmUgaW5pdGlhbGl6 ZWQgYW5kIGF2YWlsYWJsZSAod2hpY2ggaXQgaXNuJ3QgdW50aWwKLSAgICAgLy8gdGhlIE1vZHVs ZSBjb25zdHJ1Y3RvciByZXR1cm5zLi4uKQotICAgICB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2Nv cGUoIkRlZmluZVN0ZGxpYiIpOwotLSNlbmRpZgotICAgICAgICAgRGVmaW5lU3RkbGliKHN5bWJv bFRhYmxlLCBnLT5jdHgsIG1vZHVsZSwgZy0+aW5jbHVkZVN0ZGxpYik7Ci0gICAgIH0KLSAKLSAg ICAgYm9vbCBydW5QcmVwcm9jZXNzb3IgPSBnLT5ydW5DUFA7Ci0gCi0gICAgIGlmIChydW5QcmVw cm9jZXNzb3IpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAg ICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiRnJvbnRlbmQgcGFyc2VyIik7 Ci0tI2VuZGlmCi0gICAgICAgICBpZiAoIUlzU3RkaW4oZmlsZW5hbWUpKSB7Ci0gICAgICAgICAg ICAgLy8gVHJ5IHRvIG9wZW4gdGhlIGZpbGUgZmlyc3QsIHNpbmNlIG90aGVyd2lzZSB3ZSBjcmFz aCBpbiB0aGUKLSAgICAgICAgICAgICAvLyBwcmVwcm9jZXNzb3IgaWYgdGhlIGZpbGUgZG9lc24n dCBleGlzdC4KLUBAIC0yNjgsOSArMjYwLDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7 Ci0gICAgICAgICB5eXBhcnNlKCk7Ci0gICAgICAgICB5eV9kZWxldGVfYnVmZmVyKHN0cmJ1Zik7 Ci0gICAgIH0gZWxzZSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5kIHBhcnNl ciIpOwotLSNlbmRpZgotICAgICAgICAgLy8gTm8gcHJlcHJvY2Vzc29yLCBqdXN0IG9wZW4gdXAg dGhlIGZpbGUgaWYgaXQncyBub3Qgc3RkaW4uLgotICAgICAgICAgRklMRSAqZiA9IE5VTEw7Ci0g ICAgICAgICBpZiAoSXNTdGRpbihmaWxlbmFtZSkpIHsKLUBAIC0yOTcsOSArMjg3LDcgQEAgaW50 IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gCi0gICAgIGlmIChkaUJ1aWxkZXIpCi0gICAgICAg ICBkaUJ1aWxkZXItPmZpbmFsaXplKCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiT3B0aW1pemUi KTsKLS0jZW5kaWYKLSAgICAgaWYgKGVycm9yQ291bnQgPT0gMCkKLSAgICAgICAgIE9wdGltaXpl KG1vZHVsZSwgZy0+b3B0LmxldmVsKTsKLSAKLUBAIC0xMjQzLDE1ICsxMjMxLDggQEAgYm9vbCBN b2R1bGU6OndyaXRlT2JqZWN0RmlsZU9yQXNzZW1ibHkobGx2bTo6VGFyZ2V0TWFjaGluZSAqdGFy Z2V0TWFjaGluZSwgbGx2bToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICAvLyBGaWd1cmUgb3V0IGlmIHdlJ3Jl IGdlbmVyYXRpbmcgb2JqZWN0IGZpbGUgb3IgYXNzZW1ibHkgb3V0cHV0LCBhbmQKLSAgICAgLy8g c2V0IGJpbmFyeSBvdXRwdXQgZm9yIG9iamVjdCBmaWxlcwotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIEFzc2VydCghZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQo KSk7Ci0tICAgIGxsdm06OlRhcmdldE1hY2hpbmU6OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9 Ci0tICAgICAgICAob3V0cHV0VHlwZSA9PSBPYmplY3QpID8gbGx2bTo6VGFyZ2V0TWFjaGluZTo6 Q0dGVF9PYmplY3RGaWxlIDogbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q0dGVF9Bc3NlbWJseUZpbGU7 Ci0tICAgIGJvb2wgYmluYXJ5ID0gKGZpbGVUeXBlID09IGxsdm06OlRhcmdldE1hY2hpbmU6OkNH RlRfT2JqZWN0RmlsZSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBsbHZtOjpDb2RlR2Vu RmlsZVR5cGUgZmlsZVR5cGUgPSAob3V0cHV0VHlwZSA9PSBPYmplY3QpID8gbGx2bTo6Q0dGVF9P YmplY3RGaWxlIDogbGx2bTo6Q0dGVF9Bc3NlbWJseUZpbGU7Ci0gICAgIGJvb2wgYmluYXJ5ID0g KGZpbGVUeXBlID09IGxsdm06OkNHRlRfT2JqZWN0RmlsZSk7Ci0tI2VuZGlmCi0gCi0gICAgIGxs dm06OnN5czo6ZnM6Ok9wZW5GbGFncyBmbGFncyA9IGJpbmFyeSA/IGxsdm06OnN5czo6ZnM6OkZf Tm9uZSA6IGxsdm06OnN5czo6ZnM6OkZfVGV4dDsKLSAKLUBAIC0yMjE5LDExICsyMjAwLDcgQEAg dm9pZCBNb2R1bGU6OmV4ZWNQcmVwcm9jZXNzb3IoY29uc3QgY2hhciAqaW5maWxlbmFtZSwgbGx2 bTo6cmF3X3N0cmluZ19vc3RyZWFtICoKLSAgICAgaW5zdC5zZXRUYXJnZXQodGFyZ2V0KTsKLSAg ICAgaW5zdC5jcmVhdGVTb3VyY2VNYW5hZ2VyKGluc3QuZ2V0RmlsZU1hbmFnZXIoKSk7Ci0gCi0t I2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgY2xhbmc6OkZyb250 ZW5kSW5wdXRGaWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kOjpVbmtu b3duKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgIGNsYW5nOjpGcm9udGVuZElucHV0Rmls ZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0S2luZCgpKTsKLS0jZW5kaWYKLSAK LSAgICAgaW5zdC5Jbml0aWFsaXplU291cmNlTWFuYWdlcihpbnB1dEZpbGUpOwotIAotQEAgLTI3 MjIsOSArMjY5OSw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAq c3JjRmlsZSwgQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICBtID0g bmV3IE1vZHVsZShzcmNGaWxlKTsKLSAgICAgICAgIGlmIChtLT5Db21waWxlRmlsZSgpID09IDAp IHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAj aWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAgICAgICAgICAgICBpZiAob3V0cHV0VHlwZSA9PSBB c20gfHwgb3V0cHV0VHlwZSA9PSBPYmplY3QpIHsKLSAgICAgICAgICAgICAgICAgaWYgKGctPnRh cmdldC0+aXNHZW5YVGFyZ2V0KCkpIHsKLUBAIC0yODU1LDkgKzI4MzAsNyBAQCBpbnQgTW9kdWxl OjpDb21waWxlQW5kT3V0cHV0KGNvbnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3Qg Y2hhciAqY3B1LCBzdAotIAotICAgICAgICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwot ICAgICAgICAgICAgIGludCBjb21waWxlRmlsZUVycm9yID0gbS0+Q29tcGlsZUZpbGUoKTsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAgICAgICAg ICAgICBpZiAoY29tcGlsZUZpbGVFcnJvciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgIC8vIENy ZWF0ZSB0aGUgZGlzcGF0Y2ggbW9kdWxlLCB1bmxlc3MgYWxyZWFkeSBjcmVhdGVkOwotICAgICAg ICAgICAgICAgICAvLyBpbiB0aGUgbGF0dGVyIGNhc2UsIGp1c3QgZG8gdGhlIGNoZWNraW5nCi1k aWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5oIGIvc3JjL21vZHVsZS5oCi1pbmRleCA2MWQzY2ZlYTAu LjYwMzEyNGQ1MCAxMDA2NDQKLS0tLSBhL3NyYy9tb2R1bGUuaAotKysrIGIvc3JjL21vZHVsZS5o Ci1AQCAtNDMsOSArNDMsNyBAQAotIAotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgot IAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxs bHZtL1N1cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVmIElTUENfR0VO WF9FTkFCTEVECi0gI2luY2x1ZGUgIm9jbF9pZ2NfaW50ZXJmYWNlL2lnY19vY2xfZGV2aWNlX2N0 eC5oIgotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGE2NTVh ODM0NC4uNWIxYWM3YjYzIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQu Y3BwCi1AQCAtNjYsNiArNjYsNyBAQAotICNpbmNsdWRlIDxsbHZtL0lSL0luc3RydWN0aW9ucy5o PgotICNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY0luc3QuaD4KLSAjaW5jbHVkZSA8bGx2bS9J Ui9JbnRyaW5zaWNzLmg+Ci0rI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljc1g4Ni5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0xlZ2FjeVBhc3NNYW5hZ2VyLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIv TW9kdWxlLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvUGF0dGVybk1hdGNoLmg+Ci1AQCAtODUsOSAr ODYsNiBAQAotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvU2NhbGFyL0luc3RTaW1wbGlmeVBh c3MuaD4KLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1V0aWxzLmg+Ci0gI2luY2x1ZGUgPGxs dm0vVHJhbnNmb3Jtcy9VdGlscy9CYXNpY0Jsb2NrVXRpbHMuaD4KLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLS0jaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNzWDg2 Lmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVmIElTUENfSE9TVF9JU19MSU5VWAotICNpbmNsdWRlIDxh bGxvY2EuaD4KLUBAIC0xMDAzLDEwICsxMDAxLDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgZWxz ZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rp b24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLSAgICAgICAgICAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX2xvYWQiKTsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPQotLSAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06 OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYWxpZ24s IChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8w Ci0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBsbHZt OjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7 Ci0gI2Vsc2UKLUBAIC0xMDQzLDEzICsxMDM4LDggQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAg IGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAgICAgICAg ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0 Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRTdG9yZTMyID8gNCA6IDg7Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6U3Rv cmVJbnN0ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgY2FzdFB0ciwg KGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tICAgICAgICAgICAgICAgIHN0b3JlSW5zdC0+ c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZQotICAgICAgICAgICAgICAgICBsbHZtOjpTdG9y ZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVlLCBjYXN0UHRyLCAo bGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGln bikudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0 YShzdG9yZUluc3QsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUlu c3RXaXRoSW5zdChjYWxsSW5zdCwgc3RvcmVJbnN0KTsKLSAKLUBAIC0xMDY2LDkgKzEwNTYsNyBA QCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZi YikgewotIAotIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlv biAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkludHJpbnNpY3NPcHQ6OnJ1bk9uRnVu Y3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBm YWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1v ZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMTIzOSw5ICsxMjI3LDcgQEAg Ym9vbCBJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5j dGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkluc3Ry dWN0aW9uU2ltcGxpZnlQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRp ZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNC bG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2so QkIpOwotQEAgLTI5NzQsMTYgKzI5NjAsMTAgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRT dG9yZShsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAKLSAgICAgICAgICAgICBsdmFsdWUg PSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QobHZhbHVlLCBwdHJUeXBlLCAibHZhbHVlX3RvX3B0cl90 eXBlIiwgY2FsbEluc3QpOwotICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEobHZhbHVlLCBjYWxs SW5zdCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAg ICAgICBzdG9yZSA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVl LCBsdmFsdWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKTsKLS0jZWxzZQotICAgICAg ICAgICAgIHN0b3JlID0gbmV3IGxsdm06OlN0b3JlSW5zdCgKLSAgICAgICAgICAgICAgICAgcnZh bHVlLCBsdmFsdWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAg bGx2bTo6TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotICAgICAgICAgICAgICAg ICAgICAgLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICB9Ci0gICAgICAgICBpZiAo c3RvcmUgIT0gTlVMTCkgewotICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoc3RvcmUsIGNhbGxJ bnN0KTsKLUBAIC0zMDU5LDExICszMDM5LDcgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRM b2FkKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCwgbGx2bTo6QmFzaWNCbG9jazo6aXRlcmEKLSAg ICAgICAgIHsKLSAgICAgICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gbGx2bTo6UG9pbnRl clR5cGU6OmdldChjYWxsSW5zdC0+Z2V0VHlwZSgpLCAwKTsKLSAgICAgICAgICAgICBwdHIgPSBu ZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBwdHJUeXBlLCAicHRyX2Nhc3RfZm9yX2xvYWQiLCBj YWxsSW5zdCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAg ICAgICAgICBsb2FkID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgY2FsbEluc3QtPmdldE5hbWUo KSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0 aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbGlmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9O ID09IElTUENfTExWTV8xMF8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5z dCgKLSAgICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBu b3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0 LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50 KCkgOiBpbmZvLT5hbGlnbikKLUBAIC0zMTI5LDkgKzMxMDUsNyBAQCBib29sIEltcHJvdmVNZW1v cnlPcHNQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBi b29sIEltcHJvdmVNZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZG KSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxs dm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9u RnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkg PSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAg IG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMzQyNCw5ICszMzk4LDcg QEAgbGx2bTo6VmFsdWUgKmxHRVBBbmRMb2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90 IG9mZnNldCwgaW50IGFsaWduLCBsbHZtOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6VHlwZSAqdHlwZSkgewotICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0 ciwgTExWTUludDY0KG9mZnNldCksICJuZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0 ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlw ZSwgMCksICJwdHJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O IDw9IElTUENfTExWTV85XzAKLS0gICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsICJn YXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYWxpZ24sIGluc2VydEJlZm9y ZSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpM b2FkSW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2 bTo6TWF5YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4w KwotICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBv aW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIs Ci1AQCAtNDEzNSw5ICs0MTA3LDcgQEAgYm9vbCBHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgR2F0aGVyQ29hbGVzY2VQ YXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1 bmNTY29wZSgiR2F0aGVyQ29hbGVzY2VQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkp OwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2 bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJh c2ljQmxvY2soQkIpOwotQEAgLTQ0NjcsOSArNDQzNyw3IEBAIGJvb2wgUmVwbGFjZVBzZXVkb01l bW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAot IGJvb2wgUmVwbGFjZVBzZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVu Y3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlUHNldWRvTWVtb3J5 T3BzUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9v bCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDog RikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00 NTczLDkgKzQ1NDEsNyBAQCBib29sIElzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSXNDb21waWxlVGltZUNv bnN0YW50UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VT Y29wZSBGdW5jU2NvcGUoIklzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTIwMSw5ICs1MTY3LDcgQEAgYm9vbCBQ ZWVwaG9sZVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAot IGJvb2wgUGVlcGhvbGVQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0g Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUGVlcGhvbGVQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5n ZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAg IGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8 PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUyOTksOSArNTI2Myw3IEBAIGJvb2wgUmVwbGFj ZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gCi0gYm9vbCBSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1 bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVN0ZGxpYlNoaWZ0 UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikg ewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mzk5 LDkgKzUzNjEsNyBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4Qm9vbGVhblNlbGVjdFBhc3M6OmZp eFNlbGVjdChsbHZtOjpTZWxlY3RJbnN0ICpzZWwsIGxsdm06OgotIH0KLSAKLSBib29sIEZpeEJv b2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIEZ1bmNTY29wZSgiRml4Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBG LmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAK LSAgICAgcmV0dXJuIG1vZGlmaWVkQW55OwotQEAgLTU5NjQsOSArNTkyNCw3IEBAIGJvb2wgR2Vu WEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikg ewotIH0KLSAKLSBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uKGxsdm06 OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiR2VuWEdhdGhlckNvYWxlc2Np bmc6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9k aWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsK LSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjExMyw5 ICs2MDcxLDcgQEAgYm9vbCBQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBQcm9tb3RlVG9Qcml2YXRlTWVt b3J5UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29w ZSBGdW5jU2NvcGUoIlByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uIiwg Ri5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0g ICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFu eSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYxODEsOSArNjEzNyw3IEBAIGJvb2wgUmVw bGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAKLSBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25GdW5jdGlvbihsbHZtOjpG dW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VMTFZNSW50cmlu c2ljczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikg ewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02Mjc4 LDkgKzYyMzIsNyBAQCBib29sIFJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxv Y2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VVbnN1cHBvcnRlZElu c3RzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1 bmNTY29wZSgiUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5h bWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9y IChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1 bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjM2OSw5ICs2MzIxLDcgQEAgYm9vbCBDaGVja1Vuc3Vw cG9ydGVkSW5zdHM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0K LSAKLSBib29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5j dGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkNoZWNrVW5zdXBwb3J0ZWRJbnN0czo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02NDQwLDkgKzYz OTAsNyBAQCBib29sIE1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6 QmFzaWNCbG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVu T25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIk1h bmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRp ZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNC bG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2so QkIpOwotQEAgLTY4MjgsOSArNjc3Niw3IEBAIGJvb2wgRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1 bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gICAgIC8vIFRyYW5zZm9ybWF0aW9ucyBhcmUg Y29ycmVjdCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBub3QgaW50ZXJuYWwuCi0gICAgIC8vIFRoaXMg aXMgZHVlIHRvIGFkZHJlc3Mgc3BhY2UgY2FsY3VsYXRpb24gYWxnb3JpdGhtLgotICAgICAvLyBU T0RPOiBwcm9ibGVtcyBjYW4gYmUgbWV0IGluIGNhc2Ugb2YgU3RhY2sgQ2FsbHMKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgRnVuY1Njb3BlKCJGaXhBZGRyZXNzU3BhY2U6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUo KSk7Ci0tI2VuZGlmCi0gICAgIGlmIChGLmdldExpbmthZ2UoKSA9PSBsbHZtOjpHbG9iYWxWYWx1 ZTo6TGlua2FnZVR5cGVzOjpJbnRlcm5hbExpbmthZ2UpCi0gICAgICAgICByZXR1cm4gZmFsc2U7 Ci0gCi1AQCAtNjg1NCw5ICs2ODAwLDcgQEAgY2xhc3MgRGVtb3RlUEhJcyA6IHB1YmxpYyBsbHZt OjpGdW5jdGlvblBhc3MgewotIGNoYXIgRGVtb3RlUEhJczo6SUQgPSAwOwotIAotIGJvb2wgRGVt b3RlUEhJczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBG dW5jU2NvcGUoIkRlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2Vu ZGlmCi0gICAgIGlmIChGLmlzRGVjbGFyYXRpb24oKSB8fCBza2lwRnVuY3Rpb24oRikpCi0gICAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06Okluc3RydWN0aW9uICo+ IFdvcmtMaXN0OwotZGlmZiAtLWdpdCBhL3NyYy90eXBlLmNwcCBiL3NyYy90eXBlLmNwcAotaW5k ZXggNjg4YTRlODc0Li5mYTBjYjA0ZGIgMTAwNjQ0Ci0tLS0gYS9zcmMvdHlwZS5jcHAKLSsrKyBi L3NyYy90eXBlLmNwcAotQEAgLTE4MjIsMTQgKzE4MjIsMTAgQEAgbGx2bTo6RElUeXBlICpTdHJ1 Y3RUeXBlOjpHZXRESVR5cGUobGx2bTo6RElTY29wZSAqc2NvcGUpIGNvbnN0IHsKLSAgICAgbGx2 bTo6RElGaWxlICpkaUZpbGUgPSBwb3MuR2V0RElGaWxlKCk7Ci0gICAgIGxsdm06OkRJTmFtZXNw YWNlICpkaVNwYWNlID0gcG9zLkdldERJTmFtZXNwYWNlKCk7Ci0gICAgIHJldHVybiBtLT5kaUJ1 aWxkZXItPmNyZWF0ZVN0cnVjdFR5cGUoZGlTcGFjZSwgR2V0U3RyaW5nKCksIGRpRmlsZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwg ICAgICAgICAgLy8gTGluZSBudW1iZXIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMoKSwgLy8gU2l6ZSBpbiBiaXRzCi0tI2lm IElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldEFsaWdubWVudCgpICogOCwgLy8gQWxp Z25tZW50IGluIGJpdHMKLS0jZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTExWTSAxMC4wKwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5maXJzdF9saW5lLCAgICAgICAgICAg ICAgICAgICAgIC8vIExpbmUgbnVtYmVyCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksICAgICAgICAgICAgLy8gU2l6ZSBp biBiaXRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0 LT5nZXRBbGlnbm1lbnQoKS52YWx1ZSgpICogOCwgLy8gQWxpZ25tZW50IGluIGJpdHMKLS0jZW5k aWYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5v ZGU6OkZsYWdaZXJvLCAvLyBGbGFncwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OkRJTm9kZTo6RmxhZ1plcm8sICAgICAgICAgICAgIC8vIEZsYWdzCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWxlbWVudHMp OwotIH0KLSAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjIGIvdGVzdHMv bGl0LXRlc3RzLzE3NzEuaXNwYwotaW5kZXggOTgwNjRkODRkLi40ZmViNzNkZDcgMTAwNjQ0Ci0t LS0gYS90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTc3 MS5pc3BjCi1AQCAtNSw3ICs1LDYgQEAKLSAvLyBSVU46ICV7aXNwY30gJXMgLS10YXJnZXQ9c3Nl NC1pMTZ4OCAtLWVtaXQtYXNtIC1vIC0gfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVD S1NTRTRfSTE2WDgKLSAvLyBSVU46ICV7aXNwY30gJXMgLS10YXJnZXQ9c3NlNC1pOHgxNiAtLWVt aXQtYXNtIC1vIC0gfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDS1NTRTRfSThYMTYK LSAKLS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAot IAotIC8vIENIRUNLQVZYMl9JMzJYODoge3tbYS16XSp4b3JbYS16XSp9fSAgJXhtbTAsICV4bW0w LCAleG1tMAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMgYi90ZXN0cy9s aXQtdGVzdHMvMTg0NC5pc3BjCi1pbmRleCA3OTNhODg2NmMuLjE4OWVkZjRjMyAxMDA2NDQKLS0t LSBhL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0 LmlzcGMKLUBAIC02LDkgKzYsNiBAQAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAot LS8vIEl0IGRvZXNuJ3Qgd29yayBmb3IgYW55dGhpbmcgZWFybGllciB0aGFuIDEwLjAsIGJ1dCBp dCB3aWxsIG5vdCBiZSBmaXhlZCwgc28gZG9uJ3QgcnVuLgotLS8vIFJFUVVJUkVTOiBMTFZNXzEw XzArCi0tCi0gZXh0ZXJuIHVuaWZvcm0gdW5zaWduZWQgaW50NjQgdmFyXzY7Ci0gZXh0ZXJuIHVu aWZvcm0gdW5zaWduZWQgaW50MTYgdmFyXzExOwotIGV4dGVybiB1bmlmb3JtIGJvb2wgYXJyXzIw MSBbMV0gWzE1XSBbMjBdOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMg Yi90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1pbmRleCA3MGY3Y2MzYzIuLjc5MjFjOTFhNiAx MDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10 ZXN0cy8xOTI2LmlzcGMKLUBAIC0yLDggKzIsNiBAQAotIC8vIFJVTjogY2F0ICVULzE5MjYuby5q c29uIFwKLSAvLyBSVU46ICAgfCBGaWxlQ2hlY2sgJXMKLSAKLS0vLyBSRVFVSVJFUzogTExWTV8x MF8wKwotLQotIC8vIENIRUNLOiAidHJhY2VFdmVudHMiCi0gLy8gQ0hFQ0s6ICJkZXRhaWwiCi0g ZXhwb3J0IHVuaWZvcm0gaW50IGZvbyh1bmlmb3JtIGludCBhW10sIHVuaWZvcm0gaW50IGNvdW50 KSB7Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgYi90ZXN0cy9s aXQtdGVzdHMvY3B1c194ODYuaXNwYwotaW5kZXggNTE2ZWZkZDRjLi40ZDYwMTg2ZjYgMTAwNjQ0 Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRl c3RzL2NwdXNfeDg2LmlzcGMKLUBAIC0yNCw2ICsyNCw4IEBACi0gLy87IFJVTjogJXtpc3BjfSAl cyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY2wKLSAvLzsg UlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0t Y3B1PWljZWxha2Utc2VydmVyCi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRs aWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY3gKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1v ICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRpZ2VybGFrZQotKy8v OyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQg LS1jcHU9dGdsCi0gCi0gLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0gCi1kaWZmIC0tZ2l0IGEv dGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2Nw dXNfeDg2X2xsdm0xMC5pc3BjCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGVmMDAw MDBlNS4uMDAwMDAwMDAwCi0tLS0gYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlz cGMKLSsrKyAvZGV2L251bGwKLUBAIC0xLDExICswLDAgQEAKLS0vLyBUaGUgdGVzdCBjaGVja3Mg dGhhdCBjcHUgZGVmaW5pdGlvbnMgKGluY2x1ZGluZyBhbGwgc3lub255bXMpIGFyZSBzdWNjZXNz ZnVsbHkgY29uc3VtZWQgYnkgY29tcGlsZXIuCi0tCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAl dC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdlcmxha2UKLS0vLzsg UlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0t Y3B1PXRnbAotLQotLS8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotLS8vIFJFUVVJUkVTOiBMTFZN XzEwXzArCi0tCi0tdW5pZm9ybSBpbnQgaTsKLS0KLS12b2lkIGZvbygpIHt9Ci1kaWZmIC0tZ2l0 IGEvdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotaW5k ZXggMTcwMTY1NzlkLi4wNDVlNjk0MzcgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvbGl0 LmNmZwotKysrIGIvdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcKLUBAIC0zMCwxMSArMzAsNiBAQCBw cmludCgiQ29uZmlnOiIpCi0gCi0gIyBMTFZNIHZlcnNpb24KLSBsbHZtX3ZlcnNpb24gPSBMb29z ZVZlcnNpb24oaXNwY19sbHZtX3ZlcnNpb25fbnVtYmVyKQotLWlmIGxsdm1fdmVyc2lvbiA+PSBM b29zZVZlcnNpb24oIjEwLjAuMCIpOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogWUVTIikKLS0g ICAgY29uZmlnLmF2YWlsYWJsZV9mZWF0dXJlcy5hZGQoIkxMVk1fMTBfMCsiKQotLWVsc2U6Ci0t ICAgIHByaW50KCJMTFZNXzEwXzArOiBOTyIpCi0gCi0gaWYgbGx2bV92ZXJzaW9uID49IExvb3Nl VmVyc2lvbigiMTIuMC4wIik6Ci0gICAgIHByaW50KCJMTFZNXzEyXzArOiBZRVMiKQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaCBiL3NyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDA0MjNhZmM5ZTNmOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTA0ICswLDAgQEAKLUZyb20gMTg1 MWQxOGIyMTNkYmFkMTY5OTM3MDc2MTc2YjJkNTUwOTczM2M3NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IERlZXBhayBSYWplbmRyYWt1bWFyYW4gPGRlZXBhay5yYWplbmRyYWt1bWFy YW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCAxMiBKYW4gMjAyMSAyMjoxNToxMiAtMDgwMAotU3Vi amVjdDogW1BBVENIXSBmaXhlcyAjMTgyMSAtIFJlbW92aW5nIExMVk1HZXROYW1lKCkgYW5kIHN3 aXRjaGluZyB0bwotIExMVk06OlR3aW5lLgotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgIHwgMzA0 ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2N0 eC5oICAgICAgICB8ICA3MiArKysrKy0tLS0tLQotIHNyYy9leHByLmNwcCAgICAgfCAgMzYgKysr LS0tCi0gc3JjL2xsdm11dGlsLmNwcCB8ICAxNyAtLS0KLSBzcmMvbGx2bXV0aWwuaCAgIHwgICA1 IC0KLSBzcmMvb3B0LmNwcCAgICAgIHwgMTAzICsrKysrKysrKy0tLS0tLS0KLSA2IGZpbGVzIGNo YW5nZWQsIDI1NSBpbnNlcnRpb25zKCspLCAyODIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA0MmM0ZWEwOWQuLmRlZDUyNGI3MSAx MDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAsOCAr MTAyMCw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQgdmFs dWUsIGJvb2wgY2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxvY2sg KmJiQ2FzZUltcGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkgewot ICAgICAgICAgLy8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVtZW50 YXRpb24KLS0gICAgICAgIHN0ZDo6c3RyaW5nIGJiTmFtZSA9IGJiQ2FzZS0+Z2V0TmFtZSgpLnN0 cigpICsgIl9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJi TmFtZS5jX3N0cigpLCBiYkNhc2UpOwotKyAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2 bTo6VHdpbmUoYmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIjsKLSsgICAgICAgIGJiQ2FzZUlt cGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJiTmFtZSwgYmJDYXNlKTsKLSAgICAgfQotICNlbmRpZgot IAotQEAgLTExODUsNyArMTE4NSw3IEBAIGJvb2wgRnVuY3Rpb25FbWl0Q29udGV4dDo6aW5pdExh YmVsQkJsb2NrcyhBU1ROb2RlICpub2RlLCB2b2lkICpkYXRhKSB7Ci0gICAgIGlmIChjdHgtPmxh YmVsTWFwLmZpbmQobHMtPm5hbWUpICE9IGN0eC0+bGFiZWxNYXAuZW5kKCkpCi0gICAgICAgICBF cnJvcihscy0+cG9zLCAiTXVsdGlwbGUgbGFiZWxzIG5hbWVkIFwiJXNcIiBpbiBmdW5jdGlvbi4i LCBscy0+bmFtZS5jX3N0cigpKTsKLSAgICAgZWxzZSB7Ci0tICAgICAgICBsbHZtOjpCYXNpY0Js b2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9jayhscy0+bmFtZS5jX3N0cigpKTsKLSsgICAg ICAgIGxsdm06OkJhc2ljQmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1l KTsKLSAgICAgICAgIGN0eC0+bGFiZWxNYXBbbHMtPm5hbWVdID0gYmI7Ci0gICAgIH0KLSAgICAg cmV0dXJuIHRydWU7Ci1AQCAtMTI5OSw3ICsxMjk5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkFueShsbHZtOjpWYWx1ZSAqbWFzaykgewotICAgICAvLyBXZSBjYW4gYWN0 dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAg ICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0 aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5V TEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfYW55IikpOwotKyAgICByZXR1cm4gQ2FsbElu c3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9hbnki KTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpW YWx1ZSAqbWFzaykgewotQEAgLTEzMTUsNyArMTMxNSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpBbGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFj dHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAg ICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5j dGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBO VUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FsbCIpKTsKLSsgICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfYWxs Iik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06 OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMzMSw3ICsxMzMxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6Ok5vbmUobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2Fu IGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMK LSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpG dW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1t LCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX25vbmUiKSk7Ci0rICAgIHJldHVybiBD YWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAi X25vbmUiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxhbmVN YXNrKGxsdm06OlZhbHVlICp2KSB7Ci1AQCAtMTM0OSw3ICsxMzQ5LDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxhbmVNYXNrKGxsdm06OlZhbHVlICp2KSB7Ci0gICAgIC8v IFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMg ZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgdiwgTExWTUdldE5hbWUodiwgIl9tb3Ztc2siKSk7Ci0rICAgIHJldHVy biBDYWxsSW5zdChmbW0sIE5VTEwsIHYsIGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX21v dm1zayIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFza3NB bGxFcXVhbChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MikgewotQEAgLTEzNjQsMTEg KzEzNjQsMTIgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1hc2tzQWxsRXF1 YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIKLSAjZWxzZQotICAgICBpZiAoZy0+ dGFyZ2V0LT5nZXRBcmNoKCkgPT0gQXJjaDo6d2FzbTMyKSB7Ci0gICAgICAgICBsbHZtOjpGdW5j dGlvbiAqZm1tID0gbS0+bW9kdWxlLT5nZXRGdW5jdGlvbigiX193YXNtX2NtcF9tc2tfZXEiKTsK LS0gICAgICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHt2MSwgdjJ9LCBMTFZNR2V0TmFt ZSgid2FzbV9jbXBfbXNrX2VxIiwgdjEsIHYyKSk7Ci0rICAgICAgICByZXR1cm4gQ2FsbEluc3Qo Zm1tLCBOVUxMLCB7djEsIHYyfSwgKChsbHZtOjpUd2luZSgid2FzbV9jbXBfbXNrX2VxXyIpICsg djEtPmdldE5hbWUoKSkgKyAiXyIpICsgdjItPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAgICAgbGx2 bTo6VmFsdWUgKm1tMSA9IExhbmVNYXNrKHYxKTsKLSAgICAgbGx2bTo6VmFsdWUgKm1tMiA9IExh bmVNYXNrKHYyKTsKLS0gICAgcmV0dXJuIENtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAs IGxsdm06OkNtcEluc3Q6OklDTVBfRVEsIG1tMSwgbW0yLCBMTFZNR2V0TmFtZSgiZXF1YWwiLCB2 MSwgdjIpKTsKLSsgICAgcmV0dXJuIENtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIGxs dm06OkNtcEluc3Q6OklDTVBfRVEsIG1tMSwgbW0yLAotKyAgICAgICAgICAgICAgICAgICAoKGxs dm06OlR3aW5lKCJlcXVhbF8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1l KCkpOwotICNlbmRpZgotIH0KLSAKLUBAIC0xMzkyLDcgKzEzOTMsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0U3RyaW5nUHRyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIp IHsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsc3RyUHRyLCBMTFZNVHlwZXM6 OlZvaWRQb2ludGVyVHlwZSwgInN0cl92b2lkX3B0ciIsIGJibG9jayk7Ci0gfQotIAotLWxsdm06 OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxvY2soY29uc3Qg Y2hhciAqbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsKLStsbHZtOjpCYXNp Y0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlcikgewotICAgICBsbHZt OjpCYXNpY0Jsb2NrICpuZXdCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNyZWF0ZSgqZy0+Y3R4LCBu YW1lLCBsbHZtRnVuY3Rpb24pOwotICAgICBpZiAoaW5zZXJ0QWZ0ZXIpCi0gICAgICAgICBuZXdC Qi0+bW92ZUFmdGVyKGluc2VydEFmdGVyKTsKLUBAIC0xNDE2LDE0ICsxNDE3LDE1IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJMVZlY1RvQm9vbFZlYyhsbHZtOjpWYWx1ZSAq YikgewotIAotICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBhdC0+Z2V0TnVt RWxlbWVudHMoKTsgKytpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsdCA9IEV4dHJh Y3RJbnN0KGIsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpzZXh0ID0gU3dpdGNoQm9v bFNpemUoZWx0LCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgTExWTUdldE5hbWUo ZWx0LCAiX3RvX2Jvb2x2ZWMiKSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNleHQgPQot KyAgICAgICAgICAgICAgICBTd2l0Y2hCb29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3Rv clN0b3JhZ2VUeXBlLCBsbHZtOjpUd2luZShlbHQtPmdldE5hbWUoKSkgKyAiX3RvX2Jvb2x2ZWMi KTsKLSAgICAgICAgICAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgc2V4dCwgaSk7Ci0gICAgICAg ICB9Ci0gICAgICAgICByZXR1cm4gcmV0OwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gRm9y IG5vbi1hcnJheSB0eXBlcywgY29udmVydCB0byAnTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZScg aWYKLSAgICAgICAgIC8vIG5lY2Vzc2FyeS4KLS0gICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6 ZShiLCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLCBMTFZNR2V0TmFtZShiLCAiX3RvX2Jvb2x2 ZWMiKSk7Ci0rICAgICAgICByZXR1cm4gU3dpdGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29s VmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUoYi0+Z2V0TmFtZSgpKSArICJfdG9fYm9vbHZlYyIpOwot ICAgICB9Ci0gfQotIAotQEAgLTE1NjMsNyArMTU2NSw3IEBAIHN0YXRpYyBpbnQgbEFycmF5VmVj dG9yV2lkdGgobGx2bTo6VHlwZSAqdCkgewotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBp bnN0LCBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0g ICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAg ICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTU3Myw3ICsxNTc1LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlP cHMgaW4KLSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBh cnJheVNpemUgPSBsQXJyYXlWZWN0b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9 PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYm9wID0gbGx2bTo6QmluYXJ5T3Bl cmF0b3I6OkNyZWF0ZShpbnN0LCB2MCwgdjEsIG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0r ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZShpbnN0LCB2MCwgdjEsIG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1Bvcyhi b3ApOwotICAgICAgICAgcmV0dXJuIGJvcDsKLSAgICAgfSBlbHNlIHsKLUBAIC0xNTkxLDcgKzE1 OTMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3Io bGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbgotICAgICB9Ci0gfQotIAotLWxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29u c3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RP cGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg aWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9y Q291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE2MDMsMTQgKzE2MDUsMTQg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZh bHVlICp2LCBjb25zdCBjaGFyICpuYW1lKQotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdi0+Z2V0 VHlwZSgpOwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0g ICAgIGlmIChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJp bnN0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdCh2LCBuYW1lID8gbmFtZSA6ICJu b3QiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJpbnN0ID0gbGx2bTo6 QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdCh2LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJu b3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGJpbnN0KTsKLSAgICAg ICAgIHJldHVybiBiaW5zdDsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIGxsdm06OlZhbHVlICpy ZXQgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodHlwZSk7Ci0gICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IGFycmF5U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmEgPSBF eHRyYWN0SW5zdCh2LCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpC aW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KGEsIG5hbWUgPyBuYW1lIDogIm5vdCIsIGJibG9jayk7 Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZU5vdChhLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJub3QiIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgICAgICAgICBBZGREZWJ1Z1BvcyhvcCk7Ci0gICAgICAgICAgICAgcmV0ID0gSW5z ZXJ0SW5zdChyZXQsIG9wLCBpKTsKLSAgICAgICAgIH0KLUBAIC0xNjM4LDcgKzE2NDAsNyBAQCBz dGF0aWMgbGx2bTo6VHlwZSAqbEdldE1hdGNoaW5nQm9vbFZlY3RvclR5cGUobGx2bTo6VHlwZSAq dHlwZSkgewotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5z dChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bTo6Q21wSW5zdDo6UHJlZGlj YXRlIHByZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxs dm06OlZhbHVlICp2MSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09 IE5VTEwgfHwgdjEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE2NDgsNyArMTY1 MCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Oklu c3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2 MC0+Z2V0VHlwZSgpOwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlw ZSk7Ci0gICAgIGlmIChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmNpID0gbGx2bTo6Q21wSW5zdDo6Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwgbmFtZSA/ IG5hbWUgOiAiY21wIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpjaSA9 Ci0rICAgICAgICAgICAgbGx2bTo6Q21wSW5zdDo6Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAg ICBBZGREZWJ1Z1BvcyhjaSk7Ci0gICAgICAgICByZXR1cm4gY2k7Ci0gICAgIH0gZWxzZSB7Ci1A QCAtMTY1NywxNCArMTY2MCwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 Q21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06 OlZhbHVlICphID0gRXh0cmFjdEluc3QodjAsIGkpOwotICAgICAgICAgICAgIGxsdm06OlZhbHVl ICpiID0gRXh0cmFjdEluc3QodjEsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9 IENtcEluc3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFs dWUgKm9wID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHko KSA/ICJjbXAiIDogbmFtZSk7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9w LCBpKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0KLSB9Ci0gCi0t bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1 ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsK LUBAIC0xNzA0LDIxICsxNzA3LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgIHJl dHVybiByZXQ7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaXRD YXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIg Km5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Qml0Q2FzdEluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAg ICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodmFsdWUsICJfYml0Y2FzdCIpOwotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IG5ldyBsbHZtOjpCaXRDYXN0SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoCi0rICAgICAg ICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1 ZS0+Z2V0TmFtZSgpKSArICJfYml0Y2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTcyOCwyMyArMTcy OSwxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgLy8gbm8tb3AgZm9yIHZh cnlpbmcgcG9pbnRlcnM7IHRoZXkncmUgYWxyZWFkeSB2ZWN0b3JzIG9mIGludHMKLSAgICAgICAg IHJldHVybiB2YWx1ZTsKLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUg PSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9wdHIyaW50Iik7Ci0gICAgIGxsdm06OlR5cGUgKnR5cGUg PSBMTFZNVHlwZXM6OlBvaW50ZXJJbnRUeXBlOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0r ICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsg ICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5l KHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFk ZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9 PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+ IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0g TlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9wdHIyaW50Iik7Ci0t Ci0gICAgIGxsdm06OlR5cGUgKmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYg KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZh cnlpbmcgcG9pbnRlcgotQEAgLTE3NTIsMjcgKzE3NDksMjYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnQKLSAgICAgICAgICAgICAvLyBhbHJlYWR5IHRoZSByaWdodCB0eXBlLS1kb25lCi0gICAg ICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAgZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNj YWxhclNpemVJbkJpdHMoKSA+IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKQotLSAgICAg ICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAg ICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0 TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lKTsKLSAgICAgICAgIGVsc2UgewotICAgICAgICAg ICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygp IDwgdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpOwotLSAgICAgICAgICAgIHJldHVybiBa RXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gWkV4dElu c3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2 YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lKTsKLSAgICAgICAgIH0KLSAgICAg fQotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludElu c3QodmFsdWUsIHRvVHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHRvVHlwZSwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSAr ICJfcHRyMmludCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAg ICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNv bnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW50 VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodmFsdWUsICJfaW50MnB0ciIpOwotLQotICAgICBsbHZtOjpUeXBlICpm cm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBlKCk7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVj dG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0x NzgwLDk1ICsxNzc2LDg3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnRU b1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAg Ly8gZG9uZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZy b21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJp dHMoKSkKLS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUp OwotKyAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSk7Ci0gICAgICAgICBlbHNl IHsKLSAgICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxh clNpemVJbkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAg ICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAg cmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g bGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSk7Ci0gICAg ICAgICB9Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2 bTo6SW50VG9QdHJJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06 Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCgKLSsgICAgICAgIHZh bHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUt PmdldE5hbWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQ b3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAq RnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5j dGlvbkVtaXRDb250ZXh0OjpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwp Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfdHJ1bmMiKTsKLS0KLSAgICAg Ly8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgot ICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0 aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2 bTo6VHJ1bmNJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpUcnVuY0luc3QoCi0rICAgICAgICB2YWx1ZSwgdHlw ZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgp KSArICJfdHJ1bmMiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0g ICAgIHJldHVybiBpbnN0OwotIH0KLSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6Q2FzdEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAg ICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodmFsdWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkg aGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwg YnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUob3AsIHZhbHVlLCB0 eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06 OkNhc3RJbnN0OjpDcmVhdGUoCi0rICAgICAgICBvcCwgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3QiIDog bmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0 OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0 TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJs eSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgp LCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCh2YWx1 ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBs bHZtOjpDYXN0SW5zdDo6Q3JlYXRlRlBDYXN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nh c3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVy biBpbnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 U0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNFeHRJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsK LSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1H ZXROYW1lKHZhbHVlLCAiX3NleHQiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2Jh Ymx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0 KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6U0V4dEluc3QodmFsdWUsIHR5cGUs IG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06 OlNFeHRJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3NleHQiIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1s bHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6WkV4dEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg aWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3pl eHQiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJy YXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBj dXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSBuZXcgbGx2bTo6WkV4dEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0r ICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyAgICAg ICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFs dWUtPmdldE5hbWUoKSkgKyAiX3pleHQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQ b3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLUBAIC0xOTEzLDE0ICsxOTAxLDE1IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6 VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhCi0gICAgICAgICBzY2FsZSA9IFNtZWFyVW5pZm9ybShz Y2FsZSk7Ci0gICAgICAgICBBc3NlcnQoaW5kZXggIT0gTlVMTCk7Ci0gICAgICAgICAvLyBvZmZz ZXQgPSBpbmRleCAqIHNjYWxlCi0tICAgICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihsbHZt OjpJbnN0cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsIExMVk1HZXROYW1lKCJtdWwiLCBzY2Fs ZSwgaW5kZXgpKTsKLSsgICAgICAgIG9mZnNldCA9IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3Ry dWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRleCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHNjYWxlLT5nZXROYW1lKCkpICsgIl8iKSArIGlu ZGV4LT5nZXROYW1lKCkpOwotICAgICB9Ci0gCi0gICAgIC8vIEZvciA2NC1iaXQgdGFyZ2V0cywg aWYgd2UndmUgYmVlbiBkb2luZyBvdXIgb2Zmc2V0IGNhbGN1bGF0aW9ucyBpbgotICAgICAvLyAz MiBiaXRzLCB3ZSBzdGlsbCBoYXZlIHRvIGNvbnZlcnQgdG8gYSA2NC1iaXQgdmFsdWUgYmVmb3Jl IHdlCi0gICAgIC8vIGFjdHVhbGx5IGFkZCB0aGUgb2Zmc2V0IHRvIHRoZSBwb2ludGVyLgotICAg ICBpZiAoZy0+dGFyZ2V0LT5pczMyQml0KCkgPT0gZmFsc2UgJiYgZy0+b3B0LmZvcmNlMzJCaXRB ZGRyZXNzaW5nID09IHRydWUpCi0tICAgICAgICBvZmZzZXQgPSBTRXh0SW5zdChvZmZzZXQsIExM Vk1UeXBlczo6SW50NjRWZWN0b3JUeXBlLCBMTFZNR2V0TmFtZShvZmZzZXQsICJfdG9fNjQiKSk7 Ci0rICAgICAgICBvZmZzZXQgPSBTRXh0SW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50NjRWZWN0 b3JUeXBlLCBsbHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RvXzY0Iik7Ci0gCi0g ICAgIC8vIFNtZWFyIG91dCB0aGUgcG9pbnRlciB0byBiZSB2YXJ5aW5nOyBlaXRoZXIgdGhlIGJh c2UgcG9pbnRlciBvciB0aGUKLSAgICAgLy8gaW5kZXggbXVzdCBiZSB2YXJ5aW5nIGZvciB0aGlz IG1ldGhvZCB0byBiZSBjYWxsZWQuCi1AQCAtMTkyOSw3ICsxOTE4LDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OmFwcGx5VmFyeWluZ0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgbGx2bTo6VmEKLSAgICAgbGx2bTo6VmFsdWUgKnZhcnlpbmdQdHIgPSBiYXNlSXNVbmlmb3Jt ID8gU21lYXJVbmlmb3JtKGJhc2VQdHIpIDogYmFzZVB0cjsKLSAKLSAgICAgLy8gbmV3UHRyID0g cHRyICsgb2Zmc2V0Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QWRkLCB2YXJ5aW5nUHRyLCBvZmZzZXQsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0 IikpOwotKyAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwg dmFyeWluZ1B0ciwgb2Zmc2V0LCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9v ZmZzZXQiKTsKLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNYXRjaEludGVnZXJU eXBlcyhsbHZtOjpWYWx1ZSAqKnYwLCBsbHZtOjpWYWx1ZSAqKnYxKSB7Ci1AQCAtMjAwNiwxMyAr MTk5NSwxMyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFrZVNsaWNlUG9p bnRlcihsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZQotICAgICBsbHZtOjpTdHJ1Y3RUeXBl ICpzdCA9IGxsdm06OlN0cnVjdFR5cGU6OmdldCgqZy0+Y3R4LCBlbHRUeXBlcyk7Ci0gCi0gICAg IGxsdm06OlZhbHVlICpyZXQgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQoc3QpOwotLSAgICByZXQg PSBJbnNlcnRJbnN0KHJldCwgcHRyLCAwLCBMTFZNR2V0TmFtZShyZXQsICJfc2xpY2VfcHRyIikp OwotLSAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb2Zmc2V0LCAxLCBMTFZNR2V0TmFtZShyZXQs ICJfc2xpY2Vfb2Zmc2V0IikpOwotKyAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgcHRyLCAwLCBs bHZtOjpUd2luZShyZXQtPmdldE5hbWUoKSkgKyAiX3NsaWNlX3B0ciIpOwotKyAgICByZXQgPSBJ bnNlcnRJbnN0KHJldCwgb2Zmc2V0LCAxLCBsbHZtOjpUd2luZShyZXQtPmdldE5hbWUoKSkgKyAi X3NsaWNlX29mZnNldCIpOwotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQ dHIsIGxsdm06OlZhbHVlICppbmRleCwgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq bmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoYmFzZVB0ciA9PSBOVUxM IHx8IGluZGV4ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMDY1LDggKzIwNTQs OCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3Qo bGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVz dCBlbWl0IHRoZSByZWd1bGFyIExMVk0gR0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpW YWx1ZSAqaW5kWzFdID0ge2luZGV4fTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZh bHVlICo+IGFycmF5UmVmKCZpbmRbMF0sICZpbmRbMV0pOwotLSAgICAgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVh dGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJnZXAi LCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpHZXRF bGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJnZXAiIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAgICAgcmV0dXJuIGluc3Q7Ci0g ICAgIH0gZWxzZQotQEAgLTIwNzQsNyArMjA2Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6 Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRy SW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4MCwgbGx2bTo6VmFs dWUgKmluZGV4MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU eXBlICpwdHJSZWZUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoYmFz ZVB0ciA9PSBOVUxMIHx8IGluZGV4MCA9PSBOVUxMIHx8IGluZGV4MSA9PSBOVUxMKSB7Ci0gICAg ICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAg cmV0dXJuIE5VTEw7Ci1AQCAtMjExNCw4ICsyMTAzLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZt OjoKLSAgICAgICAgIC8vIHVuaWZvcm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdF UCBpbnN0cnVjdGlvbgotICAgICAgICAgbGx2bTo6VmFsdWUgKmluZGljZXNbMl0gPSB7aW5kZXgw LCBpbmRleDF9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlS ZWYoJmluZGljZXNbMF0sICZpbmRpY2VzWzJdKTsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBU WVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5hbWUgOiAiZ2VwIiwgYmJs b2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6R2V0RWxlbWVu dFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5hbWUsIGJibG9jayk7Ci0g ICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVybiBpbnN0OwotICAgICB9 IGVsc2UgewotQEAgLTIxMzgsNyArMjEyNyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0g fQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0 KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0 clJlZlR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBl KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlw ZSkgewotICAgICBpZiAocmVzdWx0UHRyVHlwZSAhPSBOVUxMKQotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCk7Ci0gCi1AQCAtMjE5NSw4ICsyMTg0LDgg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1lbnRPZmZzZXQobGx2 bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAgIC8vIElmIHRoZSBwb2ludGVyIGlz IHVuaWZvcm0sIHdlIGNhbiB1c2UgdGhlIHJlZ3VsYXIgTExWTSBHRVAuCi0gICAgICAgICBsbHZt OjpWYWx1ZSAqb2Zmc2V0c1syXSA9IHtMTFZNSW50MzIoMCksIExMVk1JbnQzMihlbGVtZW50TnVt KX07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmb2Zm c2V0c1swXSwgJm9mZnNldHNbMl0pOwotLSAgICAgICAgcmVzdWx0UHRyID0KLS0gICAgICAgICAg ICBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRy LCBhcnJheVJlZiwgbmFtZSA/IG5hbWUgOiAic3RydWN0X29mZnNldCIsIGJibG9jayk7Ci0rICAg ICAgICByZXN1bHRQdHIgPSBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJh c2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAic3RydWN0 X29mZnNldCIgOiBuYW1lLCBiYmxvY2spOwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3Ro ZXJ3aXNlIGRvIHRoZSBtYXRoIHRvIGZpbmQgdGhlIG9mZnNldCBhbmQgYWRkIGl0IHRvIHRoZSBn aXZlbgotICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVycwotQEAgLTIyMzcsNyArMjIyNiw3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06 OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICByZXR1cm4gcmVzdWx0UHRyOwotIH0K LSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICgodmFsdWUgPT0gTlVMTCkgfHwgKHRvVHlwZSA9PSBOVUxMKSkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotQEAgLTIyNDgsMjAgKzIyMzcsMTggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZQotICAgICBsbHZtOjpWYWx1ZSAqbmV3Qm9vbCA9IHZhbHVlOwotICAgICBpZiAoZy0+dGFy Z2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKGZyb21UeXBlKSA+Ci0gICAg ICAgICBnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBl KSkgewotLSAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExW TUdldE5hbWUodmFsdWUsICJfc3dpdGNoQm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFRydW5j SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgIG5ld0Jvb2wgPQotKyAgICAgICAg ICAgIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChs bHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0g ICAgIH0gZWxzZSBpZiAoZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5C aXRzKGZyb21UeXBlKSA8Ci0gICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0 KCktPmdldFR5cGVTaXplSW5CaXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5V TEwpCi0tICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wi KTsKLS0gICAgICAgIG5ld0Jvb2wgPSBTRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsg ICAgICAgIG5ld0Jvb2wgPQotKyAgICAgICAgICAgIFNFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsg Il9zd2l0Y2hCb29sIikgOiBuYW1lKTsKLSAgICAgfQotIAotICAgICByZXR1cm4gbmV3Qm9vbDsK LSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06 OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwg Y29uc3QgVHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHB0 ciA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3Vu dCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI3MCwxMyArMjI1NywxMyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotICAgICBsbHZtOjpQb2ludGVyVHlwZSAqcHQgPSBsbHZt OjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpOwotICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgcHQgIT0gTlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwp Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbGx2bTo6TG9hZEluc3QgKmlu c3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIs IG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAgICAgIG5l dyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpU d2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UK LS0gICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1l LCBiYmxvY2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICBuZXcgbGx2 bTo6TG9hZEluc3QocHRyLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsIGJibG9jayk7Ci0gI2VuZGlmCi0gCi0g ICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotQEAgLTIzMDcsOCArMjI5NCw4 IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1 ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gc3RhdGljIGxsdm06OlZhbHVlICpsRmluYWxT bGljZU9mZnNldChGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpwdHIsIGNv bnN0IFBvaW50ZXJUeXBlICoqcHRyVHlwZSkgewotICAgICBBc3NlcnQoQ2FzdFR5cGU8UG9pbnRl clR5cGU+KCpwdHJUeXBlKSAhPSBOVUxMKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlUHRy ID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDAsIExMVk1HZXROYW1lKHB0ciwgIl9wdHIiKSk7Ci0t ICAgIGxsdm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAxLCBM TFZNR2V0TmFtZShwdHIsICJfb2Zmc2V0IikpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VQdHIg PSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsg Il9wdHIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0SW5z dChwdHIsIDEsIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gCi0g ICAgIC8vIHNsaWNlUHRyIHNob3VsZCBiZSBhIHBvaW50ZXIgdG8gYW4gc29hLXdpZHRoIHdpZGUg YXJyYXkgb2YgdGhlCi0gICAgIC8vIGZpbmFsIGF0b21pYy9lbnVtL3BvaW50ZXIgdHlwZQotQEAg LTIzMjcsMTQgKzIzMTQsMTQgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRmluYWxTbGljZU9mZnNl dChGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpwdHIKLSAgICAgICAgIHNs aWNlUHRyID0gY3R4LT5CaXRDYXN0SW5zdChzbGljZVB0ciwgKCpwdHJUeXBlKS0+TExWTVR5cGUo Zy0+Y3R4KSk7Ci0gCi0gICAgIC8vIEFuZCBmaW5hbGx5IGluZGV4IGJhc2VkIG9uIHRoZSBzbGlj ZSBvZmZzZXQKLS0gICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIsIHNs aWNlT2Zmc2V0LCAqcHRyVHlwZSwgTExWTUdldE5hbWUoc2xpY2VQdHIsICJfZmluYWxfZ2VwIikp OwotKyAgICByZXR1cm4gY3R4LT5HZXRFbGVtZW50UHRySW5zdChzbGljZVB0ciwgc2xpY2VPZmZz ZXQsICpwdHJUeXBlLCBsbHZtOjpUd2luZShzbGljZVB0ci0+Z2V0TmFtZSgpKSArICJfZmluYWxf Z2VwIik7Ci0gfQotIAotIC8qKiBVdGlsaXR5IHJvdXRpbmUgdGhhdCBsb2FkcyBmcm9tIGEgdW5p Zm9ybSBwb2ludGVyIHRvIHNvYTw+IGRhdGEsCi0gICAgIHJldHVybmluZyBhIHJlZ3VsYXIgdW5p Zm9ybSAobm9uLVNPQSByZXN1bHQpLgotICAqLwotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgY29uc3QgVHlwZSAqdW5pZlR5cGUgPSBwdHJUeXBl LT5HZXRCYXNlVHlwZSgpLT5HZXRBc1VuaWZvcm1UeXBlKCk7Ci0gCi0gICAgIGNvbnN0IENvbGxl Y3Rpb25UeXBlICpjdCA9IENhc3RUeXBlPENvbGxlY3Rpb25UeXBlPihwdHJUeXBlLT5HZXRCYXNl VHlwZSgpKTsKLUBAIC0yMzYzLDcgKzIzNTAsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbAot IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6 VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUsIGJvb2wgb25lX2VsZW0pIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGJvb2wgb25lX2VsZW0pIHsKLSAgICAg aWYgKHB0ciA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjM3MSw5ICsyMzU4LDYg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVl ICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotIAotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywg cHRyUmVmVHlwZSAhPSBOVUxMICYmIG1hc2sgIT0gTlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09 IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAg ICAgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGU7Ci0gICAgIGNvbnN0IFR5cGUgKmVsVHlwZTsK LSAgICAgaWYgKENhc3RUeXBlPFJlZmVyZW5jZVR5cGU+KHB0clJlZlR5cGUpICE9IE5VTEwpIHsK LUBAIC0yMzkzLDcgKzIzNzcsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIGlm IChwdHJUeXBlLT5Jc1VuaWZvcm1UeXBlKCkpIHsKLSAgICAgICAgIGlmIChwdHJUeXBlLT5Jc1Ns aWNlKCkpIHsKLS0gICAgICAgICAgICByZXR1cm4gbG9hZFVuaWZvcm1Gcm9tU09BKHB0ciwgbWFz aywgcHRyVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNP QShwdHIsIG1hc2ssIHB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUo KSkgKyAiX2xvYWQiKSA6IG5hbWUpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAv LyBGSVhNRTogc2FtZSBpc3N1ZSBhcyBhYm92ZSBsb2FkIGluc3QgcmVnYXJkaW5nIGFsaWdubWVu dC4uLgotICAgICAgICAgICAgIC8vCi1AQCAtMjQwNSwxMSArMjM5MCwxNSBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6 VmFsdWUgKm1hc2ssCi0gICAgICAgICAgICAgY29uc3QgQXRvbWljVHlwZSAqYXRvbWljVHlwZSA9 IENhc3RUeXBlPEF0b21pY1R5cGU+KHB0clR5cGUtPkdldEJhc2VUeXBlKCkpOwotIAotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fMTBfMAotLSAgICAgICAgICAgIGxsdm06Okxv YWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZSwgZmFsc2UgLyogbm90 IHZvbGF0aWxlICovLCBiYmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0 ID0KLSsgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBu YW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBiYmxvY2spOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgICAgICAgICBs bHZtOjpQb2ludGVyVHlwZSAqcHRyX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVy VHlwZT4ocHRyLT5nZXRUeXBlKCkpOwotICAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0 ID0KLS0gICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0cl90eXBlLT5nZXRQb2lu dGVyRWxlbWVudFR5cGUoKSwgcHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJi bG9jayk7Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlwZS0+Z2V0 UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFt ZSgpKSArICJfbG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZW5kaWYKLSAKLSAgICAg ICAgICAgICBpZiAoYXRvbWljVHlwZSAhPSBOVUxMICYmIGF0b21pY1R5cGUtPklzVmFyeWluZ1R5 cGUoKSkgewotQEAgLTI0MzMsNyArMjQyMiw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAg ICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSBzaG91bGQgaGF2ZSBhIHZhcnlp bmcgcHRyIGFuZCBpdCdzIHRpbWUgZm9yIGEKLSAgICAgICAgIC8vIGdhdGhlci4KLS0gICAgICAg IGxsdm06OlZhbHVlICpnYXRoZXJfcmVzdWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVs bE1hc2soKSwgbmFtZSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdh dGhlcihwdHIsIHB0clR5cGUsIEdldEZ1bGxNYXNrKCksCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpU d2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUpOwotICAgICAgICAgaWYgKCFv bmVfZWxlbSkKLSAgICAgICAgICAgICByZXR1cm4gZ2F0aGVyX3Jlc3VsdDsKLSAKLUBAIC0yNDUz LDE5ICsyNDQzLDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAgIC8vIFdlIGNh biBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFz Ci0gICAgICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgICAg ICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICAgICAgbGx2bTo6 VmFsdWUgKmludF9tYXNrID0gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZSht YXNrLCAiX21vdm1zayIpKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfbW92 bXNrIik7Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxTeW1ib2wgKj4gbHo7Ci0gICAgICAgICBtLT5z eW1ib2xUYWJsZS0+TG9va3VwRnVuY3Rpb24oIl9fY291bnRfdHJhaWxpbmdfemVyb3NfaTY0Iiwg Jmx6KTsKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbHogPSBselswXS0+ZnVuY3Rpb247Ci0t ICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbV9pZHggPSBDYWxsSW5zdChmbHosIE5VTEwsIGludF9t YXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2NseiIpKTsKLS0gICAgICAgIGxsdm06OlZhbHVlICpl bGVtID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUoZ2F0aGVyX3Jlc3VsdCwgZWxl bV9pZHgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExMVk1HZXROYW1lKGdhdGhlcl9yZXN1bHQsICJfdW1hc2tlZF9lbGVtIiks IGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbV9pZHggPSBDYWxsSW5zdChmbHos IE5VTEwsIGludF9tYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9jbHoiKTsK LSsgICAgICAgIGxsdm06OlZhbHVlICplbGVtID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpD cmVhdGUoCi0rICAgICAgICAgICAgZ2F0aGVyX3Jlc3VsdCwgZWxlbV9pZHgsIGxsdm06OlR3aW5l KGdhdGhlcl9yZXN1bHQtPmdldE5hbWUoKSkgKyAiX3VtYXNrZWRfZWxlbSIsIGJibG9jayk7Ci0g ICAgICAgICByZXR1cm4gZWxlbTsKLSAgICAgfQotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6Z2F0aGVyKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBl ICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIC8v IFdlIHNob3VsZCBoYXZlIGEgdmFyeWluZyBwb2ludGVyIGlmIHdlIGdldCBoZXJlLi4uCi0gICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJUeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpOwotIAotQEAg LTI2MDIsNyArMjU5Miw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6YWRkR1NNZXRhZGF0 YShsbHZtOjpWYWx1ZSAqdiwgU291cmNlUG9zIHBvcykgewotICAgICBpbnN0LT5zZXRNZXRhZGF0 YSgibGFzdF9jb2x1bW4iLCBtZCk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1l LCBpbnQgYWxpZ24sIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYgKGxsdm1UeXBlID09 IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4g MCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yNjE1LDEyICsyNjA2LDEyIEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1U eXBlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmV0SW5zdCA9 IGFsbG9jYUJsb2NrLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgcmV0SW5zdCk7Ci0gICAgICAgICB1bnNpZ25lZCBBUyA9IGxsdm1GdW5jdGlvbi0+Z2V0 UGFyZW50KCktPmdldERhdGFMYXlvdXQoKS5nZXRBbGxvY2FBZGRyU3BhY2UoKTsKLS0gICAgICAg IGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUgPyBuYW1lIDog IiIsIHJldEluc3QpOwotKyAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1U eXBlLCBBUywgbmFtZSwgcmV0SW5zdCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBVbmxl c3MgdGhlIGNhbGxlciBvdmVycm9kZSB0aGUgZGVmYXVsdCBhbmQgd2FudHMgaXQgaW4gdGhlCi0g ICAgICAgICAvLyBjdXJyZW50IGJhc2ljIGJsb2NrCi0gICAgICAgICB1bnNpZ25lZCBBUyA9IGxs dm1GdW5jdGlvbi0+Z2V0UGFyZW50KCktPmdldERhdGFMYXlvdXQoKS5nZXRBbGxvY2FBZGRyU3Bh Y2UoKTsKLS0gICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMs IG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFs bG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lLCBiYmxvY2spOwotICAgICB9Ci0gCi0gICAgIC8v IElmIG5vIGFsaWdubWVudCB3YXMgc3BlY2lmaWVkIGJ1dCB3ZSBoYXZlIGFuIGFycmF5IG9mIGEg dW5pZm9ybQotQEAgLTI2MzksNyArMjYzMCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0g ICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQg YWxpZ24sIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUsIGludCBhbGlnbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIGF0RW50cnlCbG9jaykgewotICAgICBpZiAocHRyVHlwZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMzA3NSw2NiArMzA2Nyw1OSBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJhbmNoSW5zdChsbHZtOjpCYXNpY0Jsb2NrICp0 cnVlQmxvY2ssCi0gICAgIHJldHVybiBiOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6RXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNo YXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RXh0cmFjdElu c3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnBy aW50ZihidWYsIHNpemVvZihidWYpLCAiX2V4dHJhY3RfJWQiLCBlbHQpOwotLSAgICAgICAgbmFt ZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KmVpID0gTlVMTDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2LT5nZXRU eXBlKCkpKQotLSAgICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSh2 LCBMTFZNSW50MzIoZWx0KSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0 cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgTExWTUludDMyKGVsdCks Ci0rICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYt PmdldE5hbWUoKSkgKyAiX2V4dHJhY3RfIikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUsIGJi bG9jayk7Ci0gICAgIGVsc2UKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdDo6 Q3JlYXRlKHYsIGVsdCwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0cmFj dFZhbHVlSW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIGVsdCwgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2V4dHJhY3RfIikgKyBs bHZtOjpUd2luZShlbHQpKSA6IG5hbWUsCi0rICAgICAgICAgICAgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoZWkpOwotICAgICByZXR1cm4gZWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAq ZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICpl bHRWYWwsIGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09 IE5VTEwgfHwgZWx0VmFsID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAot LSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAg ICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX2luc2VydF8lZCIsIGVsdCk7Ci0tICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+ KHYtPmdldFR5cGUoKSkpCi0tICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpD cmVhdGUodiwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAg IGlpID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBl bHRWYWwsIExMVk1JbnQzMihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0 eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpU d2luZShlbHQpKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIGVsc2UKLS0gICAgICAgIGlpID0gbGx2 bTo6SW5zZXJ0VmFsdWVJbnN0OjpDcmVhdGUodiwgZWx0VmFsLCBlbHQsIG5hbWUsIGJibG9jayk7 Ci0rICAgICAgICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKAotKyAgICAgICAg ICAgIHYsIGVsdFZhbCwgZWx0LAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpUd2lu ZShlbHQpKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0 dXJuIGlpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2h1ZmZs ZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNr LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1 ZSAqbWFzaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYxID09IE5VTEwgfHwgdjIgPT0g TlVMTCB8fCBtYXNrID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAg ICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBz bnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX3NodWZmbGUiKTsKLS0gICAgICAgIG5hbWUgPSBM TFZNR2V0TmFtZSh2MSwgYnVmKTsKLS0gICAgfQotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAq aWkgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCBtYXNrLCBuYW1lLCBiYmxv Y2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaWkgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rv ckluc3QoCi0rICAgICAgICB2MSwgdjIsIG1hc2ssIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHYxLT5nZXROYW1lKCkpICsgIl9zaHVmZmxlIikgOiBuYW1lLCBiYmxvY2sp OwotIAotICAgICBBZGREZWJ1Z1BvcyhpaSk7Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVl ICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBs bHZtOjpUeXBlICp2ZWNUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAo diA9PSBOVUxMIHx8IHZlY1R5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMx NDgsMTIgKzMxMzMsNiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRj YXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBBc3NlcnQodHkg JiYgdHktPmdldFZlY3RvckVsZW1lbnRUeXBlKCkgPT0gdi0+Z2V0VHlwZSgpKTsKLSAjZW5kaWYK LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAg ICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9icm9hZGNhc3QiKTsKLS0gICAgICAg IG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0tCi0gICAgIC8vIEdlbmVyYXRl IHRoZSBmb2xsb3dpbmcgc2VxdWVuY2U6Ci0gICAgIC8vICAgJW5hbWVfaW5pdC5pID0gaW5zZXJ0 ZWxlbWVudCA8NCB4IGkzMj4gdW5kZWYsIGkzMiAldmFsLCBpMzIgMAotICAgICAvLyAgICVuYW1l LmkgPSBzaHVmZmxldmVjdG9yIDw0IHggaTMyPiAlbmFtZV9pbml0LmksIDw0IHggaTMyPiB1bmRl ZiwKLUBAIC0zMTYzLDcgKzMxNDIsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBs bHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHZlY1R5cGUpOwotIAot ICAgICAvLyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3ID0gbGx2bTo6VHdpbmUo bmFtZSkgKyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLSsgICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9h ZGNhc3QiKSA6IG5hbWUgKyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLSAgICAgbGx2bTo6VmFsdWUg Kmluc2VydCA9IEluc2VydEluc3QodW5kZWYxLCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSAK LSAgICAgLy8gU2h1ZmZsZVZlY3RvcgotQEAgLTMxNzksMjggKzMxNTgsMjcgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBs bHZtOjpUeXBlICp2ZWMKLSAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChs bHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXRO dW1FbGVtZW50cygpKSwgZmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJU eSgqZy0+Y3R4KSkpOwotICNlbmRpZgotLSAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gU2h1ZmZsZUlu c3QoaW5zZXJ0LCB1bmRlZjIsIHplcm9WZWMsIG5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqcmV0 ID0gU2h1ZmZsZUluc3QoaW5zZXJ0LCB1bmRlZjIsIHplcm9WZWMsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2lu ZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUpOwotIAotICAgICByZXR1cm4g cmV0OwotIH0KLSAKLS1sbHZtOjpQSElOb2RlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQaGlOb2Rl KGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSkgewotLSAgICBs bHZtOjpQSElOb2RlICpwbiA9IGxsdm06OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFt ZSA/IG5hbWUgOiAicGhpIiwgYmJsb2NrKTsKLStsbHZtOjpQSElOb2RlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSsgICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpD cmVhdGUodHlwZSwgY291bnQsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gInBoaSIgOiBuYW1l LCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1Bvcyhwbik7Ci0gICAgIHJldHVybiBwbjsKLSB9Ci0g Ci0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNlbGVjdEluc3QobGx2 bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHRlc3QgPT0gTlVM TCB8fCB2YWwwID09IE5VTEwgfHwgdmFsMSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0 TmFtZSh0ZXN0LCAiX3NlbGVjdCIpOwotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IGxsdm06OlNlbGVjdEluc3Q6OkNyZWF0ZSh0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLCBiYmxvY2sp OwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OlNlbGVjdEluc3Q6OkNyZWF0 ZSgKLSsgICAgICAgIHRlc3QsIHZhbDAsIHZhbDEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHRlc3QtPmdldE5hbWUoKSkgKyAiX3NlbGVjdCIpIDogbmFtZSwgYmJsb2Nr KTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLUBAIC0z MjI2LDcgKzMyMDQsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGxDYWxsZWVBcmdDb3VudChsbHZt OjpWYWx1ZSAqY2FsbGVlLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bgotIH0KLSAKLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNv bnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoZnVuYyA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5V TEw7Ci1AQCAtMzI1OCw5ICszMjM2LDkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGxsdm06OlBvaW50 ZXJUeXBlICpmdW5jX3B0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+ KGZ1bmMtPmdldFR5cGUoKSk7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvblR5cGUgKmZ1bmNfdHlw ZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZ1bmN0aW9uVHlwZT4oZnVuY19wdHJfdHlwZS0+Z2V0 UG9pbnRlckVsZW1lbnRUeXBlKCkpOwotLSAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0 ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1ZhbHMsIG5hbWUg PyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3Qg PSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlwZSwgZnVuYywgYXJnVmFscywgbmFtZSwg YmJsb2NrKTsKLSAjZWxzZQotLSAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2 bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBhcmdWYWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxv Y2spOwotKyAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6 OkNyZWF0ZShmdW5jLCBhcmdWYWxzLCBuYW1lLCBiYmxvY2spOwotICNlbmRpZgotIAotICAgICAg ICAgLy8gV2UgY291bGQgYmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb24gcG9pbnRlciBpbiB3aGlj aCBjYXNlIHRoaXMgd2lsbCBub3QgYmUgYSAnbGx2bTo6RnVuY3Rpb24nLgotQEAgLTM0NjQsMTQg KzM0NDIsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxs dm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUKLSB9Ci0gCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBG dW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3Mu cHVzaF9iYWNrKGFyZyk7Ci0gICAgIHJldHVybiBDYWxsSW5zdChmdW5jLCBmdW5jVHlwZSwgYXJn cywgbmFtZSk7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxs SW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2 bTo6VmFsdWUgKmFyZzAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdz OwotICAgICBhcmdzLnB1c2hfYmFjayhhcmcwKTsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMSk7 Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5oIGIvc3JjL2N0eC5oCi1pbmRleCA2ZTVhZDc0YmEuLjQ4 YjNiYjgyNiAxMDA2NDQKLS0tLSBhL3NyYy9jdHguaAotKysrIGIvc3JjL2N0eC5oCi1AQCAtMzAy LDcgKzMwMiw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICBsbHZtOjpWYWx1 ZSAqR2V0U3RyaW5nUHRyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIpOwotIAotICAgICAvKiogQ3Jl YXRlIGEgbmV3IGJhc2ljIGJsb2NrIHdpdGggZ2l2ZW4gbmFtZSAqLwotLSAgICBsbHZtOjpCYXNp Y0Jsb2NrICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxv Y2sgKmluc2VydEFmdGVyID0gTlVMTCk7Ci0rICAgIGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJh c2ljQmxvY2soY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2Vy dEFmdGVyID0gTlVMTCk7Ci0gCi0gICAgIC8qKiBHaXZlbiBhIHZlY3RvciB3aXRoIGVsZW1lbnQg dHlwZSBpMSwgcmV0dXJuIGEgdmVjdG9yIG9mIHR5cGUKLSAgICAgICAgIExMVk1UeXBlczo6Qm9v bFZlY3RvclR5cGUuICBUaGlzIG1ldGhvZCBoYW5kbGVzIHRoZSBjb252ZXJzaW9uIGZvcgotQEAg LTM4MCwzMyArMzgwLDMzIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAg dGhpcyBhbHNvIGhhbmRsZXMgYXBwbHlpbmcgdGhlIGdpdmVuIG9wZXJhdGlvbiB0byB0aGUgdmVj dG9yCi0gICAgICAgICBlbGVtZW50cy4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkJpbmFyeU9wZXJh dG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBs bHZtOjpWYWx1ZSAqdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgdGhlICJub3QiIG9w ZXJhdG9yLiAgTGlrZSBCaW5hcnlPcGVyYXRvcigpLCB0aGlzIGFsc28gaGFuZGxlcwotICAgICAg ICAgYSBWZWN0b3JUeXBlLWJhc2VkIG9wZXJhbmQuICovCi0tICAgIGxsdm06OlZhbHVlICpOb3RP cGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBs bHZtOjpWYWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdCBhIGNvbXBhcmlzb24gaW5zdHJ1Y3Rpb24u ICBJZiB0aGUgb3BlcmFuZHMgYXJlIFZlY3RvclR5cGVzLAotICAgICAgICAgdGhlbiBhIHZhbHVl IGZvciB0aGUgY29ycmVzcG9uZGluZyBib29sZWFuIFZlY3RvclR5cGUgaXMKLSAgICAgICAgIHJl dHVybmVkLiAqLwotICAgICBsbHZtOjpWYWx1ZSAqQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6 T3RoZXJPcHMgaW5zdCwgbGx2bTo6Q21wSW5zdDo6UHJlZGljYXRlIHByZWQsIGxsdm06OlZhbHVl ICp2MCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVl ICp2MSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBHaXZlbiBh IHNjYWxhciB2YWx1ZSwgcmV0dXJuIGEgdmVjdG9yIG9mIHRoZSBzYW1lIHR5cGUgKG9yIGFuCi0g ICAgICAgICBhcnJheSwgZm9yIHBvaW50ZXIgdHlwZXMpLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAq U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICBsbHZtOjpWYWx1ZSAqU21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpCaXRDYXN0 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKlB0clRv SW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIg Km5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsg ICAgbGx2bTo6VmFsdWUgKkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVl ICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAg ICBsbHZtOjpWYWx1ZSAqSW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06Oklu c3RydWN0aW9uICpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBl LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpUcnVu Y0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkNhc3RJbnN0KGxsdm06 Okluc3RydWN0aW9uOjpDYXN0T3BzIG9wLCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUg KnR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVl ICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqU0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0 aW9uICpaRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBD YXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU0V4dEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0gICAgIC8qKiBHaXZlbiB0d28gaW50ZWdlci10eXBlZCB2YWx1ZXMgKGJ1dCBwb3NzaWJseSBv bmUgdmVjdG9yIGFuZCB0aGUKLSAgICAgICAgIG90aGVyIG5vdCwgYW5kIG9yIG9mIHBvc3NpYmx5 LWRpZmZlcmVudCBiaXQtd2lkdGhzKSwgdXBkYXRlIHRoZWlyCi1AQCAtNDI2LDkgKzQyNiw5IEBA IGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9pbnRlcnMuICBUaGUgdW5k ZXJseWluZyB0eXBlIG9mIHRoZSBiYXNlIHBvaW50ZXIgbXVzdCBiZSBwcm92aWRlZAotICAgICAg ICAgdmlhIHRoZSBwdHJUeXBlIHBhcmFtZXRlciAqLwotICAgICBsbHZtOjpWYWx1ZSAqR2V0RWxl bWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleCwgY29u c3QgVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpWYWx1ZSAqR2V0 RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAs IGxsdm06OlZhbHVlICppbmRleDEsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSAKLSAgICAgLyoqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgcG9pbnRlciB0aGF0IHJl cHJlc2VudHMgb2Zmc2V0dGluZyB0aGUKLSAgICAgICAgIGdpdmVuIGJhc2UgcG9pbnRlciB0byBw b2ludCBhdCB0aGUgZ2l2ZW4gZWxlbWVudCBudW1iZXIgb2YgdGhlCi1AQCAtNDM2LDI2ICs0MzYs MjYgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBwb2ludGVyIG11c3Qg YmUgYSBwb2ludGVyIHRvIGEgc3RydWN0dXJlIHR5cGUuICBUaGUgcHRyVHlwZSBnaXZlcwotICAg ICAgICAgdGhlIHR5cGUgb2YgdGhlIHBvaW50ZXIsIHRob3VnaCBpdCBtYXkgYmUgTlVMTCBpZiB0 aGUgYmFzZSBwb2ludGVyCi0gICAgICAgICBpcyB1bmlmb3JtLiAqLwotLSAgICBsbHZtOjpWYWx1 ZSAqQWRkRWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0s IGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5 cGUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFs dWUgKmJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi LCBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5cGUgPSBOVUxMKTsKLSAKLSAgICAgLyoq IEJvb2wgaXMgc3RvcmVkIGFzIGk4IGFuZCA8V0lEVEggeCBpOD4gYnV0IHJlcHJlc2VudGVkIGlu IElSIGFzIGkxIGFuZAotICAgICAgKiA8V0lEVEggeCBNQVNLPi4gVGhpcyBpcyBhIGhlbHBlciBm dW5jdGlvbiB0byBtYXRjaCBib29sIHNpemUgYXQgc3RvcmFnZQotICAgICAgKiBpbnRlcmZhY2Uu ICovCi0tICAgIGxsdm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZt OjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICAvKiogTG9hZCBmcm9t IHRoZSBtZW1vcnkgbG9jYXRpb24ocykgZ2l2ZW4gYnkgbHZhbHVlLCB1c2luZyB0aGUgZ2l2ZW4K LSAgICAgICAgIG1hc2suICBUaGUgbHZhbHVlIG1heSBiZSB2YXJ5aW5nLCBpbiB3aGljaCBjYXNl IHRoaXMgY29ycmVzcG9uZHMgdG8KLSAgICAgICAgIGEgZ2F0aGVyIGZyb20gdGhlIG11bHRpcGxl IG1lbW9yeSBsb2NhdGlvbnMgZ2l2ZW4gYnkgdGhlIGFycmF5IG9mCi0gICAgICAgICBwb2ludGVy IHZhbHVlcyBnaXZlbiBieSB0aGUgbHZhbHVlLiAgSWYgdGhlIGx2YWx1ZSBpcyBub3QgdmFyeWlu ZywKLSAgICAgICAgIHRoZW4gYm90aCB0aGUgbWFzayBwb2ludGVyIGFuZCB0aGUgdHlwZSBwb2lu dGVyIG1heSBiZSBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFs dWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNo YXIgKm5hbWUgPSBOVUxMLAotKyAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUg KnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9uZV9l bGVtID0gZmFsc2UpOwotIAotICAgICAvKiBMb2FkIGZyb20gbWVtb3J5IGxvY2F0aW9uKHMpIGdp dmVuLgotICAgICAgKiAndHlwZScgbmVlZHMgdG8gYmUgcHJvdmlkZWQgd2hlbiBzdG9yYWdlIHR5 cGUgaXMgZGlmZmVyZW50IGZyb20gSVIgdHlwZS4gRm9yIGV4YW1wbGUsCi0gICAgICAqICd1bmZv cm0gYm9vbCcgaXMgJ2kxJyBpbiBJUiBidXQgc3RvcmVkIGFzICdpOCcuCi0gICAgICAqIE90aGVy d2lzZSBsZWF2ZSB0aGlzIGFzIE5VTEwuICovCi0tICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgY2hhciAqbmFt ZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwg Y29uc3QgVHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwot IAotICAgICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3RydWN0aW9uIHRvIGFsbG9jYXRlIHN0YWNr IHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAgdHlwZS4gIElmIGEgbm9uLXplcm8gYWxp Z25tZW50IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBpcyBhbHNvCi1AQCAtNDYzLDcgKzQ2Myw4 IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgaW5zdHJ1Y3Rpb24gaXMg YWRkZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBpbiB0aGUgZW50cnkKLSAgICAgICAg IGJhc2ljIGJsb2NrOyBpZiBpdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGN1cnJlbnQgYmFzaWMg YmxvY2ssIHRoZW4KLSAgICAgICAgIHRoZSBhdEVudHJ5QmxvY2sgcGFyYW1ldGVyIHNob3VsZCBi ZSBmYWxzZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2 bVR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0RW50 cnlCbG9jayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChsbHZtOjpUeXBl ICpsbHZtVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwgaW50IGFsaWduID0gMCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsK LSAKLSAgICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxvY2F0ZSBzdGFj ayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5vbi16ZXJvIGFs aWdubWVudCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ3NCw3ICs0NzUs NyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIFRoaXMgaW1wbGVtZW50 YXRpb24gaXMgcHJlZmVycmVkIHdoZW4gcG9zc2libGUuIEl0IGlzIG5lZWRlZCB3aGVuCi0gICAg ICAgICBzdG9yYWdlIHR5cGUgaXMgZGlmZmVyZW50IGZyb20gSVIgdHlwZS4gRm9yIGV4YW1wbGUs Ci0gICAgICAgICAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgn LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sg PSB0cnVlKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVu dHJ5QmxvY2sgPSB0cnVlKTsKLSAKLSAgICAgLyoqIFN0YW5kYXJkIHN0b3JlIGluc3RydWN0aW9u OyBmb3IgdGhpcyB2YXJpYW50LCB0aGUgbHZhbHVlIG11c3QgYmUgYQotICAgICAgICAgc2luZ2xl IHBvaW50ZXIsIG5vdCBhIHZhcnlpbmcgbHZhbHVlLgotQEAgLTUwMiwzOSArNTAzLDQxIEBAIGNs YXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRo b2QgbWFwcyB0byBhbiBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3QgaWYgdGhlCi0gICAgICAgICBn aXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0byBhbiBsbHZtOjpFeHRyYWN0 VmFsdWVJbnN0Ci0gICAgICAgICBvdGhlcndpc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpFeHRy YWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICBsbHZtOjpWYWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5p ZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdCBpZiB0aGUKLSAg ICAgICAgIGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFuIGxsdm06 Okluc2VydFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpWYWx1 ZSAqSW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVs dCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqSW5zZXJ0SW5z dChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhv ZCBtYXBzIHRvIGFuIGxsdm06OlNodWZmbGVWZWN0b3JJbnN0LiAqLwotLSAgICBsbHZtOjpWYWx1 ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZh bHVlICptYXNrLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpT aHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBj b252ZW5pZW5jZSBtZXRob2QgdG8gZ2VuZXJhdGUgYnJvYWRjYXN0IHBhdHRlcm4uIEl0IHRha2Vz IGEgdmFsdWUKLSAgICAgICAgIGFuZCBhIHZlY3RvciB0eXBlLiBUeXBlIG9mIHRoZSB2YWx1ZSBt dXN0IG1hdGNoIGVsZW1lbnQgdHlwZSBvZiB0aGUKLSAgICAgICAgIHZlY3Rvci4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2 ZWNUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCcm9h ZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2 bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAg IGxsdm06Okluc3RydWN0aW9uICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpW YWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUgKnZhbDEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgbGx2bTo6UEhJTm9kZSAqUGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAq U2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZh bHVlICp2YWwxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIElSIHRvIGRvIGEgZnVuY3Rp b24gY2FsbCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuICBJZiB0aGUKLSAgICAgICAgIGZ1bmN0 aW9uIHR5cGUgaXMgYSB2YXJ5aW5nIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSwgaXRzIGZ1bGwgdHlw ZQotICAgICAgICAgbXVzdCBiZSBwcm92aWRlZCBpbiBmdW5jVHlwZS4gIGZ1bmNUeXBlIGNhbiBi ZSBOVUxMIGlmIGZ1bmMgaXMgYQotICAgICAgICAgdW5pZm9ybSBmdW5jdGlvbiBwb2ludGVyLiAq LwotICAgICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1 bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZh cmdzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAi Iik7Ci0gCi0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXNzdWVz IGEgY2FsbCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIGp1 c3QgYSBzaW5nbGUgYXJndW1lbnQuICovCi0tICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZt OjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUg KmFyZywgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQ2FsbElu c3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06 OlZhbHVlICphcmcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2Qg dGhhdCBpc3N1ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9uIHRo YXQgdGFrZXMgdHdvIGFyZ3VtZW50cy4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxs dm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1 ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIExhdW5jaCBhbiBhc3luY2hy b25vdXMgdGFzayB0byBydW4gdGhlIGdpdmVuIGZ1bmN0aW9uLCBwYXNzaW5nIGl0Ci0gICAgICAg ICBoZSBnaXZlbiBhcmd1bWVudCB2YWx1ZXMuICovCi1AQCAtNzU2LDkgKzc1OSwxMCBAQCBjbGFz cyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgdm9pZCBtYXNrZWRTdG9yZShsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0clR5cGUsIGxsdm06OlZh bHVlICptYXNrKTsKLSAgICAgdm9pZCBzdG9yZVVuaWZvcm1Ub1NPQShsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICp2YWx1 ZVR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGUpOwotLSAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVl ICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgY29u c3QgY2hhciAqbmFtZSk7Ci0rICAgIGxsdm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21TT0EobGx2 bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJU eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06OlZhbHVl ICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29u c3QgY2hhciAqbmFtZSk7Ci0rICAgIGxsdm06OlZhbHVlICpnYXRoZXIobGx2bTo6VmFsdWUgKnB0 ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZFZhcnlpbmdP ZmZzZXRzSWZOZWVkZWQobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqcHRyVHlwZSk7Ci0g fTsKLWRpZmYgLS1naXQgYS9zcmMvZXhwci5jcHAgYi9zcmMvZXhwci5jcHAKLWluZGV4IDgwY2Mz MDIwYS4uNmQzOGQxODg5IDEwMDY0NAotLS0tIGEvc3JjL2V4cHIuY3BwCi0rKysgYi9zcmMvZXhw ci5jcHAKLUBAIC0xMDIxLDExICsxMDIxLDExIEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXRO ZWdhdGUoRXhwciAqYXJnLCBTb3VyY2VQb3MgcG9zLCBGdW5jdGlvbkVtaXRDb250ZXh0ICpjCi0g ICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAgICAgaWYgKHR5cGUtPklzRmxvYXRUeXBlKCkp IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvID0gbGx2bTo6Q29uc3RhbnRGUDo6Z2V0WmVy b1ZhbHVlRm9yTmVnYXRpb24odHlwZS0+TExWTVR5cGUoZy0+Y3R4KSk7Ci0tICAgICAgICByZXR1 cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6RlN1YiwgemVybywgYXJn VmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfbmVnYXRlIikpOwotKyAgICAgICAgcmV0dXJuIGN0 eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIsIHplcm8sIGFyZ1ZhbCwg bGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9uZWdhdGUiKTsKLSAgICAgfSBlbHNl IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvID0gbExMVk1Db25zdGFudFZhbHVlKHR5cGUs IGctPmN0eCwgMC4pOwotICAgICAgICAgQXNzZXJ0UG9zKHBvcywgdHlwZS0+SXNJbnRUeXBlKCkp OwotLSAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246 OlN1YiwgemVybywgYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfbmVnYXRlIikpOwotKyAg ICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OlN1Yiwg emVybywgYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIp OwotICAgICB9Ci0gfQotIAotQEAgLTEwNDcsMTEgKzEwNDcsMTEgQEAgbGx2bTo6VmFsdWUgKlVu YXJ5RXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAg ICAgICByZXR1cm4gbEVtaXROZWdhdGUoZXhwciwgcG9zLCBjdHgpOwotICAgICBjYXNlIExvZ2lj YWxOb3Q6IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICphcmdWYWwgPSBleHByLT5HZXRWYWx1ZShj dHgpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBMTFZNR2V0TmFt ZShhcmdWYWwsICJfbG9naWNhbG5vdCIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJh dG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9sb2dpY2Fsbm90 Iik7Ci0gICAgIH0KLSAgICAgY2FzZSBCaXROb3Q6IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICph cmdWYWwgPSBleHByLT5HZXRWYWx1ZShjdHgpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3Bl cmF0b3IoYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfYml0bm90IikpOwotKyAgICAgICAg cmV0dXJuIGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5h bWUoKSkgKyAiX2JpdG5vdCIpOwotICAgICB9Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBGQVRB TCgibG9naWMgZXJyb3IiKTsKLUBAIC0xNTE4LDcgKzE1MTgsOCBAQCBzdGF0aWMgbGx2bTo6VmFs dWUgKmxFbWl0QmluYXJ5QXJpdGgoQmluYXJ5RXhwcjo6T3Agb3AsIGxsdm06OlZhbHVlICp2YWx1 ZTAsIGxsdgotICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgfQotIAotLSAgICAg ICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsIExMVk1H ZXROYW1lKG9wTmFtZSwgdmFsdWUwLCB2YWx1ZTEpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJp bmFyeU9wZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFsdWUxLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyB2YWx1ZTAtPmdl dE5hbWUoKSkgKyAiXyIpICsgdmFsdWUxLT5nZXROYW1lKCkpOwotICAgICB9Ci0gfQotIAotQEAg LTE1NjMsNyArMTU2NCw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlDbXAoQmlu YXJ5RXhwcjo6T3Agb3AsIGxsdm06OlZhbHVlICplMFZhbCwgbGx2bTo6Ci0gICAgIH0KLSAKLSAg ICAgbGx2bTo6VmFsdWUgKmNtcCA9IGN0eC0+Q21wSW5zdChpc0Zsb2F0T3AgPyBsbHZtOjpJbnN0 cnVjdGlvbjo6RkNtcCA6IGxsdm06Okluc3RydWN0aW9uOjpJQ21wLCBwcmVkLCBlMFZhbCwgZTFW YWwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUob3BO YW1lLCBlMFZhbCwgZTFWYWwpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKChsbHZtOjpUd2luZShvcE5hbWUpICsgIl8iKSArIGUwVmFsLT5nZXROYW1lKCkpICsgIl8i KSArIGUxVmFsLT5nZXROYW1lKCkpOwotICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHVnbHk6IENt cEluc3QgcmV0dXJucyBpMSB2YWx1ZXMsIGJ1dCB3ZSB1c2UgdmVjdG9ycwotICAgICAvLyBvZiBp MzJzIGZvciB2YXJ5aW5nIGJvb2wgdmFsdWVzOyB0eXBlIGNvbnZlcnQgdGhlIHJlc3VsdCBoZXJl IGlmCi0gICAgIC8vIG5lZWRlZC4KLUBAIC00MTc3LDcgKzQxNzgsNyBAQCBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxDb252ZXJ0VG9TbGljZVBvaW50ZXIoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBs bHZtOjpWYWx1ZQotICAgICAvLyBvZmZzZXRzCi0gICAgIGxsdm06OlZhbHVlICpyZXN1bHQgPSBs bHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHNsaWNlU3RydWN0VHlwZSk7Ci0gICAgIC8vIEFu ZCByZXBsYWNlIHRoZSBwb2ludGVyIGluIHRoZSBzdHJ1Y3Qgd2l0aCB0aGUgZ2l2ZW4gcG9pbnRl cgotLSAgICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0KHJlc3VsdCwgcHRyLCAwLCBMTFZNR2V0TmFt ZShwdHIsICJfc2xpY2UiKSk7Ci0rICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBw dHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfc2xpY2UiKTsKLSB9Ci0gCi0g LyoqIElmIHRoZSBnaXZlbiBhcnJheSBpbmRleCBpcyBhIGNvbXBpbGUgdGltZSBjb25zdGFudCwg Y2hlY2sgdG8gc2VlIGlmIGl0Ci1AQCAtNDI1OCw4ICs0MjU5LDggQEAgbGx2bTo6VmFsdWUgKklu ZGV4RXhwcjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAg ICAgICAgLy8gQ29udmVydCB0byBhIHNsaWNlIHBvaW50ZXIgaWYgd2UncmUgaW5kZXhpbmcgaW50 byBTT0EgZGF0YQotICAgICAgICAgYmFzZVB0clZhbHVlID0gbENvbnZlcnRQdHJUb1NsaWNlSWZO ZWVkZWQoY3R4LCBiYXNlUHRyVmFsdWUsICZiYXNlRXhwclR5cGUpOwotIAotLSAgICAgICAgbGx2 bTo6VmFsdWUgKnB0ciA9Ci0tICAgICAgICAgICAgY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNl UHRyVmFsdWUsIGluZGV4VmFsdWUsIGJhc2VFeHByVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0clZh bHVlLCAiX29mZnNldCIpKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVs ZW1lbnRQdHJJbnN0KGJhc2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdp bmUoYmFzZVB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9vZmZzZXQiKTsKLSAgICAgICAgIHJldHVy biBsQWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChjdHgsIHB0ciwgR2V0TFZhbHVlVHlwZSgpKTsK LSAgICAgfQotIAotQEAgLTQyOTAsOCArNDI5MSw4IEBAIGxsdm06OlZhbHVlICpJbmRleEV4cHI6 OkdldExWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgY3R4LT5T ZXREZWJ1Z1Bvcyhwb3MpOwotIAotICAgICAvLyBBbmQgZG8gdGhlIGFjdHVhbCBpbmRleGluZyBj YWxjdWxhdGlvbi4uCi0tICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgY3R4LT5HZXRF bGVtZW50UHRySW5zdChiYXNlUHRyLCBMTFZNSW50MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJU eXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUg KnB0ciA9IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRl eFZhbHVlLCBiYXNlUHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7 Ci0gICAgIHJldHVybiBsQWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChjdHgsIHB0ciwgR2V0TFZh bHVlVHlwZSgpKTsKLSB9Ci0gCi1AQCAtNDc4OCwxNSArNDc4OSwxNCBAQCBsbHZtOjpWYWx1ZSAq VmVjdG9yTWVtYmVyRXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25z dCB7Ci0gICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlkZW50aWZpZXIuc2l6ZSgpOyAr K2kpIHsKLSAgICAgICAgICAgICBjaGFyIGlkU3RyWzJdID0ge2lkZW50aWZpZXJbaV0sICdcMCd9 OwotICAgICAgICAgICAgIGxsdm06OlZhbHVlICplbGVtZW50UHRyID0KLS0gICAgICAgICAgICAg ICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBl LCBMTFZNR2V0TmFtZShiYXNlUHRyLCBpZFN0cikpOwotKyAgICAgICAgICAgICAgICBjdHgtPkFk ZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwgaW5kaWNlc1tpXSwgYmFzZVB0clR5cGUsIGxsdm06OlR3 aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmVsZW1lbnRWYWx1ZSA9IGN0eC0+TG9hZEluc3QoZWxlbWVudFB0ciwgZWxlbWVudE1hc2ss IGVsZW1lbnRQdHJUeXBlKTsKLSAKLS0gICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHROYW1l ID0gTExWTUdldE5hbWUocmVzdWx0UHRyLCBpZFN0cik7Ci0tICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnB0bXAgPSBjdHgtPkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCByZXN1 bHROYW1lKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVu dE9mZnNldChyZXN1bHRQdHIsIGksIE5VTEwsIGxsdm06OlR3aW5lKHJlc3VsdFB0ci0+Z2V0TmFt ZSgpKSArIGlkU3RyKTsKLSAgICAgICAgICAgICBjdHgtPlN0b3JlSW5zdChlbGVtZW50VmFsdWUs IHB0bXAsIGVsZW1lbnRQdHJUeXBlLCBleHByLT5HZXRUeXBlKCktPklzVW5pZm9ybVR5cGUoKSk7 Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIs IG1lbWJlclR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfc3dpenpsZSIpKTsKLSsgICAgICAg IHJldHVybiBjdHgtPkxvYWRJbnN0KHJlc3VsdFB0ciwgbWVtYmVyVHlwZSwgbGx2bTo6VHdpbmUo YmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfc3dpenpsZSIpOwotICAgICB9Ci0gfQotIAotQEAgLTQ5 MzIsNyArNDkzMiw3IEBAIGxsdm06OlZhbHVlICpNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlv bkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3Mp OwotICAgICBzdGQ6OnN0cmluZyBzdWZmaXggPSBzdGQ6OnN0cmluZygiXyIpICsgaWRlbnRpZmll cjsKLS0gICAgcmV0dXJuIGN0eC0+TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBM TFZNR2V0TmFtZShsdmFsdWUsIHN1ZmZpeC5jX3N0cigpKSk7Ci0rICAgIHJldHVybiBjdHgtPkxv YWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZhbHVlVHlwZSwgbGx2bTo6VHdpbmUobHZhbHVlLT5nZXRO YW1lKCkpICsgc3VmZml4KTsKLSB9Ci0gCi0gY29uc3QgVHlwZSAqTWVtYmVyRXhwcjo6R2V0VHlw ZSgpIGNvbnN0IHsgcmV0dXJuIE5VTEw7IH0KLUBAIC02NTAyLDcgKzY1MDIsNyBAQCBzdGF0aWMg bGx2bTo6VmFsdWUgKmxUeXBlQ29udkF0b21pYyhGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxs dm06OlZhbHVlICpleHByVgotICAgICAgICAgICAgICAgICAvLyBkb2VzIGZvciBldmVyeW9uZSBl bHNlLi4uCi0gICAgICAgICAgICAgICAgIEFzc2VydChjYXN0KTsKLSAgICAgICAgICAgICAgICAg Y2FzdCA9IGN0eC0+U3dpdGNoQm9vbFNpemUoY2FzdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlw ZS0+Z2V0RWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTExWTUdldE5hbWUoY2FzdCwgInRvX2lfYm9vbCIpKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FzdC0+Z2V0TmFtZSgp KSArICJ0b19pX2Jvb2wiKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICAgIC8vIGZyb21UeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpCi1AQCAtODI0Niw3ICs4MjQ2 LDcgQEAgbGx2bTo6VmFsdWUgKk5ld0V4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQg KmN0eCkgY29uc3QgewotICAgICAgICAgLy8gcG9pbnRlciBvZiB0aGUgcmV0dXJuIHR5cGUgYW5k IHRvIHJ1biB0aGUgY29kZSBmb3IgaW5pdGlhbGl6ZXJzLAotICAgICAgICAgLy8gaWYgcHJlc2Vu dC4KLSAgICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSByZXRUeXBlLT5MTFZNVHlwZShnLT5j dHgpOwotLSAgICAgICAgcHRyVmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJU eXBlLCBMTFZNR2V0TmFtZShwdHJWYWx1ZSwgIl9jYXN0X3B0ciIpKTsKLSsgICAgICAgIHB0clZh bHVlID0gY3R4LT5CaXRDYXN0SW5zdChwdHJWYWx1ZSwgcHRyVHlwZSwgbGx2bTo6VHdpbmUocHRy VmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3RfcHRyIik7Ci0gCi0gICAgICAgICBpZiAoaW5pdEV4 cHIgIT0gTlVMTCkKLSAgICAgICAgICAgICBJbml0U3ltYm9sKHB0clZhbHVlLCBhbGxvY1R5cGUs IGluaXRFeHByLCBjdHgsIHBvcyk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xsdm11dGlsLmNwcCBiL3Ny Yy9sbHZtdXRpbC5jcHAKLWluZGV4IDk3MDE3NWRiZi4uZDBiZWNiOWY1IDEwMDY0NAotLS0tIGEv c3JjL2xsdm11dGlsLmNwcAotKysrIGIvc3JjL2xsdm11dGlsLmNwcAotQEAgLTE2MDUsMjMgKzE2 MDUsNiBAQCBsbHZtOjpWYWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwg bGx2bTo6VmFsdWUgKnYyLCBpbnQzMl90IHNodWZbXQotICAgICByZXR1cm4gbmV3IGxsdm06OlNo dWZmbGVWZWN0b3JJbnN0KHYxLCB2MiwgdmVjLCAic2h1ZmZsZSIsIGluc2VydEJlZm9yZSk7Ci0g fQotIAotLWNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFy ICpzKSB7Ci0tICAgIGlmICh2ID09IE5VTEwpCi0tICAgICAgICByZXR1cm4gczsKLS0gICAgc3Rk OjpzdHJpbmcgcmV0ID0gc3RkOjpzdHJpbmcodi0+Z2V0TmFtZSgpKTsKLS0gICAgcmV0ICs9IHM7 Ci0tICAgIHJldHVybiBzdHJkdXAocmV0LmNfc3RyKCkpOwotLX0KLS0KLS1jb25zdCBjaGFyICpM TFZNR2V0TmFtZShjb25zdCBjaGFyICpvcCwgbGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAq djIpIHsKLS0gICAgc3RkOjpzdHJpbmcgciA9IG9wOwotLSAgICByICs9ICJfIjsKLS0gICAgciAr PSB2MS0+Z2V0TmFtZSgpLnN0cigpOwotLSAgICByICs9ICJfIjsKLS0gICAgciArPSB2Mi0+Z2V0 TmFtZSgpLnN0cigpOwotLSAgICByZXR1cm4gc3RyZHVwKHIuY19zdHIoKSk7Ci0tfQotLQotICNp ZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotIGJvb2wgbElzU1ZNTG9hZChsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCkgewotICAgICBBc3NlcnQoaW5zdCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xsdm11dGls LmggYi9zcmMvbGx2bXV0aWwuaAotaW5kZXggNDJjY2U0ZDgzLi4wN2QwODliYjQgMTAwNjQ0Ci0t LS0gYS9zcmMvbGx2bXV0aWwuaAotKysrIGIvc3JjL2xsdm11dGlsLmgKLUBAIC0zMjgsMTEgKzMy OCw2IEBAIGV4dGVybiBsbHZtOjpWYWx1ZSAqTExWTUNvbmNhdFZlY3RvcnMobGx2bTo6VmFsdWUg KnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OkluCi0gZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZN U2h1ZmZsZVZlY3RvcnMobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qg c2h1ZltdLCBpbnQgc2h1ZlNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSk7Ci0gCi0tLyoqIFV0aWxpdHkg cm91dGluZXMgdG8gY29uY2F0IHN0cmluZ3Mgd2l0aCB0aGUgbmFtZXMgb2YgZXhpc3RpbmcgdmFs dWVzIHRvCi0tICAgIGNyZWF0ZSBtZWFuaW5nZnVsIG5ldyBuYW1lcyBmb3IgaW5zdHJ1Y3Rpb24g dmFsdWVzLgotLSovCi0tZXh0ZXJuIGNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGxsdm06OlZhbHVl ICp2LCBjb25zdCBjaGFyICopOwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShjb25z dCBjaGFyICpvcCwgbGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpOwotICNpZmRlZiBJ U1BDX0dFTlhfRU5BQkxFRAotIGVudW0gQWRkcmVzc1NwYWNlIHsgTG9jYWwsIEdsb2JhbCwgRXh0 ZXJuYWwgfTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRl eCA1YjFhYzdiNjMuLjlkNmNhZTA1OCAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9z cmMvb3B0LmNwcAotQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgYm9vbCBsR2V0U291cmNlUG9z RnJvbU1ldGFkYXRhKGNvbnN0IGxsdm06Okluc3RydWN0aW9uICppbnN0LCBTb3VyY2VQb3MgKgot ICAgICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2Fs bEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1 ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFtZSwKLStzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxD YWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZh bHVlICphcmcxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkg ewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1syXSA9IHthcmcwLCBhcmcxfTsKLSAgICAgbGx2bTo6 QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzJdKTsK LUBAIC0yNjUsMjEgKzI2NSwyMiBAQCBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5z dChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdgotIH0KLSAKLSBz dGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywg bGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1sz XSA9IHthcmcwLCBhcmcxLCBhcmcyfTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUg Kj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzNdKTsKLSAgICAgcmV0dXJuIGxsdm06OkNh bGxJbnN0OjpDcmVhdGUoZnVuYywgbmV3QXJnQXJyYXksIG5hbWUsIGluc2VydEJlZm9yZSk7Ci0g fQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9u ICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVl ICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVl ICphcmczLCBjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3Jl ID0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZh bHVlICphcmczLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkg ewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s0XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczfTsK LSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0s ICZhcmdzWzRdKTsKLSAgICAgcmV0dXJuIGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgbmV3 QXJnQXJyYXksIG5hbWUsIGluc2VydEJlZm9yZSk7Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0 cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJn MCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJn NCwgY29uc3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzVd ID0ge2FyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzR9OwotICAgICBsbHZtOjpBcnJheVJlZjxs bHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbNV0pOwotQEAgLTI4Nyw3 ICsyODgsNyBAQCBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5j dGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUg KmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUg KmFyZzQsIGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAq YXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRC ZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzZdID0ge2FyZzAsIGFyZzEs IGFyZzIsIGFyZzMsIGFyZzQsIGFyZzV9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1 ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbNl0pOwotQEAgLTk5MSwyMyArOTkyLDI0 IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnJldHVyblR5cGUgPSBjYWxsSW5z dC0+Z2V0VHlwZSgpOwotICAgICAgICAgICAgICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZl Y3RvclR5cGU+KHJldHVyblR5cGUpKTsKLSAgICAgICAgICAgICAgICAgLy8gY2FzdCB0aGUgaTgg KiB0byB0aGUgYXBwcm9wcmlhdGUgdHlwZQotLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfY2FzdCIpOwot LSAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0 SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6 OmdldChyZXR1cm5UeXBlLCAwKSwgbmFtZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqY2FzdFB0ciA9Ci0rICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0 Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpn ZXQocmV0dXJuVHlwZSwgMCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkg KyAiX2Nhc3QiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoY2Fz dFB0ciwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBpbnQgYWxpZ247Ci0gICAgICAgICAg ICAgICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5KQotICAgICAgICAgICAgICAgICAg ICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAg ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5n ZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSAgICAgICAg ICAgICAgICBuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJf bG9hZCIpOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotLSAgICAg ICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZElu c3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAg ICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPQotKyAgICAgICAgICAgICAg ICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5n ZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1h eWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotICAg ICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9h ZEluc3QoCi0tICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVy VHlwZT4oY2FzdFB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNhc3RQ dHIsIG5hbWUsCi0tICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8s IGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSwgKGxsdm06Okluc3RydWN0aW9u ICopTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2lu dGVyVHlwZT4oY2FzdFB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNh c3RQdHIsCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAq LywKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JP bmUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0gICAgICAgICAgICAg ICAgIGxDb3B5TWV0YWRhdGEobG9hZEluc3QsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAg bGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbG9hZEluc3QpOwotQEAgLTEwMjgs OSArMTAzMCw5IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJh c2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIC8vIGFsbCBsYW5lcyBzdG9yaW5nLCBz byByZXBsYWNlIHdpdGggYSByZWd1bGFyIHN0b3JlCi0gICAgICAgICAgICAgICAgIGxsdm06OlZh bHVlICpydmFsdWUgPSBjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgyKTsKLSAgICAgICAgICAgICAg ICAgbGx2bTo6VHlwZSAqc3RvcmVUeXBlID0gcnZhbHVlLT5nZXRUeXBlKCk7Ci0tICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwgIl9wdHJjYXN0Iik7Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0 UHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHN0b3JlVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0 KTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAg ICAgICAgICAgbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDAp LCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHN0b3JlVHlwZSwgMCksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09w ZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX3B0cmNhc3QiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAg ICAgICAgIGxDb3B5TWV0YWRhdGEoY2FzdFB0ciwgY2FsbEluc3QpOwotIAotICAgICAgICAgICAg ICAgICBpbnQgYWxpZ247Ci1AQCAtMTMzOSw4ICsxMzQxLDggQEAgc3RhdGljIGxsdm06OlZhbHVl ICpsR2V0QmFzZVBvaW50ZXIobGx2bTo6VmFsdWUgKnYsIGxsdm06Okluc3RydWN0aW9uICppbnNl cnRCZWYKLSAgICAgICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICByZXR1cm4gTlVM TDsKLSAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxsdm06OkNhc3RJbnN0 OjpDcmVhdGUoY2ktPmdldE9wY29kZSgpLCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBl KCksIExMVk1HZXROYW1lKHQsICJfY2FzdCIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIGxsdm06 OkNhc3RJbnN0OjpDcmVhdGUoY2ktPmdldE9wY29kZSgpLCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRT Y2FsYXJUeXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VHdpbmUodC0+Z2V0TmFtZSgpKSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAg ICAgICB9Ci0gICAgIH0KLSAKLUBAIC0xNTgzLDEzICsxNTg1LDEzIEBAIHN0YXRpYyB2b2lkIGxF eHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25z dE9mZnNldCwKLSAgICAgICAgIGlmIChjbyA9PSBOVUxMKQotICAgICAgICAgICAgICpjb25zdE9m ZnNldCA9IE5VTEw7Ci0gICAgICAgICBlbHNlCi0tICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0K LS0gICAgICAgICAgICAgICAgbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUo KSwgY28sIGNhc3QtPmdldFR5cGUoKSwgTExWTUdldE5hbWUoY28sICJfY2FzdCIpLCBpbnNlcnRC ZWZvcmUpOwotKyAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVh dGUoY2FzdC0+Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjby0+Z2V0 TmFtZSgpKSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBpZiAodm8gPT0gTlVM TCkKLSAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQot LSAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNh c3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksIExM Vk1HZXROYW1lKHZvLCAiX2Nhc3QiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2 bywgY2FzdC0+Z2V0VHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUodm8tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBp bnNlcnRCZWZvcmUpOwotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi1AQCAtMTYwOCwxNiAr MTYxMCwxOCBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVl ICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgZWxzZSBpZiAo YzEgPT0gTlVMTCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPihjMSkp Ci0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGMwOwotICAgICAgICAgICAgIGVsc2UK LS0gICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCBjMCwgYzEsIExMVk1HZXROYW1lKCJhZGQiLCBj MCwgYzEpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNl dCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIGMw LT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgICAgIGlmICh2MCA9PSBOVUxMIHx8IGxsdm06 OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KHYwKSkKLSAgICAgICAgICAgICAgICAg KnZhcmlhYmxlT2Zmc2V0ID0gdjE7Ci0gICAgICAgICAgICAgZWxzZSBpZiAodjEgPT0gTlVMTCB8 fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MSkpCi0gICAgICAgICAg ICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHYwOwotICAgICAgICAgICAgIGVsc2UKLS0gICAgICAg ICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2MCwgdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFkZCIs IHYwLCB2MSksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNl dCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2MCwgdjEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHYw LT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0gZWxzZSBp ZiAoYm9wLT5nZXRPcGNvZGUoKSA9PSBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsKSB7Ci0gICAgICAg ICAgICAgbEV4dHJhY3RDb25zdGFudE9mZnNldChvcDAsICZjMCwgJnYwLCBpbnNlcnRCZWZvcmUp OwotQEAgLTE2MzMsMTAgKzE2MzcsMTIgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9m ZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAg ICAgICAgICAgICAqY29uc3RPZmZzZXQgPSB2ZWM7Ci0gICAgICAgICAgICAgICAgICp2YXJpYWJs ZU9mZnNldCA9IE5VTEw7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg KmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVj dGlvbjo6U2hsLCBjMCwgYzEsIExMVk1HZXROYW1lKCJzaGwiLCBjMCwgYzEpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2Vy dEJlZm9yZSk7Ci0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFy eU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExMVk1HZXROYW1lKCJzaGwiLCB2MCwgYzEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAg ICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAg ICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCAoKGxsdm06OlR3 aW5lKCJzaGxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZhcmlh YmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAg ICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBjMSwgKChsbHZtOjpUd2luZSgic2hs XyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAg ICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHJl dHVybjsKLSAgICAgICAgIH0gZWxzZSBpZiAoYm9wLT5nZXRPcGNvZGUoKSA9PSBsbHZtOjpJbnN0 cnVjdGlvbjo6TXVsKSB7Ci1AQCAtMTY0OCwyNSArMTY1NCwzMCBAQCBzdGF0aWMgdm9pZCBsRXh0 cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RP ZmZzZXQsCi0gICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSBmaXJzdCB0ZXJtIGlzIGEgY29u c3RhbnQgYW5kIHRoZSBsYXN0IHRocmVlIGFyZQotICAgICAgICAgICAgIC8vIHZhcmlhYmxlLgot ICAgICAgICAgICAgIGlmIChjMCAhPSBOVUxMICYmIGMxICE9IE5VTEwpCi0tICAgICAgICAgICAg ICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5z dHJ1Y3Rpb246Ok11bCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIGMxKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b246Ok11bCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSAr ICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3Jl KTsKLSAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IE5V TEw7Ci0gCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnZhID0gTlVMTCwgKnZiID0gTlVMTCwg KnZjID0gTlVMTDsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQot LSAgICAgICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMxLCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIGMxKSwKLSsg ICAgICAgICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Oklu c3RydWN0aW9uOjpNdWwsIHYwLCBjMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1lKCkp ICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmIChjMCAh PSBOVUxMICYmIHYxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZiID0gbGx2bTo6QmluYXJ5 T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgdjEsIExMVk1HZXRO YW1lKCJtdWwiLCBjMCwgdjEpLAotKyAgICAgICAgICAgICAgICB2YiA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYxLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgi bXVsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7 Ci0gICAgICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAg ICAgICAgdmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9u OjpNdWwsIHYwLCB2MSwgTExWTUdldE5hbWUoIm11bCIsIHYwLCB2MSksCi0rICAgICAgICAgICAg ICAgIHZjID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6 TXVsLCB2MCwgdjEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2 MS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmFi ID0gTlVMTDsKLSAgICAgICAgICAgICBpZiAodmEgIT0gTlVMTCAmJiB2YiAhPSBOVUxMKQotLSAg ICAgICAgICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Oklu c3RydWN0aW9uOjpBZGQsIHZhLCB2YiwgTExWTUdldE5hbWUoImFkZCIsIHZhLCB2YiksCi0rICAg ICAgICAgICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5z dHJ1Y3Rpb246OkFkZCwgdmEsIHZiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHZhLT5nZXROYW1lKCkp ICsgIl8iKSArIHZiLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlm ICh2YSAhPSBOVUxMKQotICAgICAgICAgICAgICAgICB2YWIgPSB2YTsKLUBAIC0xNjc0LDggKzE2 ODUsOSBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2 ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZi OwotIAotICAgICAgICAgICAgIGlmICh2YWIgIT0gTlVMTCAmJiB2YyAhPSBOVUxMKQotLSAgICAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFk ZCIsIHZhYiwgdmMpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFyaWFibGVP ZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywgKChsbHZtOjpUd2luZSgiYWRkXyIp ICsgdmFiLT5nZXROYW1lKCkpICsgIl8iKSArIHZjLT5nZXROYW1lKCksCi0rICAgICAgICAgICAg ICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2UgaWYgKHZhYiAhPSBOVUxM KQotICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2YWI7Ci0gICAgICAgICAgICAg ZWxzZQotQEAgLTE5NDMsNyArMTk1NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZl KGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAg ICAgICAgICAgLy8gYWxsIHplcm9zIChpLmUuIGEgQ29uc3RhbnRBZ2dyZWdhdGVaZXJvLCBidXQg anVzdCBpbiBjYXNlLAotICAgICAgICAgICAgIC8vIGRvIHRoZSBtb3JlIGdlbmVyYWwgY2hlY2sg d2l0aCBsVmVjdG9ySXMzMkJpdEludHMoKS4KLSAgICAgICAgICAgICB2YXJpYWJsZU9mZnNldCA9 IG5ldyBsbHZtOjpUcnVuY0luc3QodmFyaWFibGVPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0 b3JUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMTFZNR2V0TmFtZSh2YXJpYWJsZU9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpU d2luZSh2YXJpYWJsZU9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUp OwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotQEAg LTE5NTIsNyArMTk2NCw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZh bHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICBpZiAo bFZlY3RvcklzMzJCaXRJbnRzKGNvbnN0T2Zmc2V0KSkgewotICAgICAgICAgICAgIC8vIFRydW5j YXRlIHRoZW0gc28gd2UgaGF2ZSBhIDMyLWJpdCB2ZWN0b3IgdHlwZSBmb3IgdGhlbS4KLSAgICAg ICAgICAgICBjb25zdE9mZnNldCA9IG5ldyBsbHZtOjpUcnVuY0luc3QoY29uc3RPZmZzZXQsIExM Vk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjb25zdE9mZnNldCwgIl90cnVuYyIpLCBpbnNl cnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpUd2luZShjb25zdE9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRC ZWZvcmUpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBGSVhNRTogb3RoZXJ3 aXNlIHdlIGp1c3QgYXNzdW1lIHRoYXQgYWxsIGNvbnN0YW50IG9mZnNldHMKLSAgICAgICAgICAg ICAvLyBjYW4gYWN0dWFsbHkgYWx3YXlzIGZpdCBpbnRvIDMyLWJpdHMuLi4gIChUaGlzIGNvdWxk IGJlCi1AQCAtMTk2Myw3ICsxOTc1LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUo bGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAgICAg ICAgICAgICAvLyBsbHZtOjpDb25zdGFudEZvbGRJbnN0cnVjdGlvbigpIGRvZXNuJ3Qgc2VlbSB0 byBiZSBkb2luZwotICAgICAgICAgICAgIC8vIGVub3VnaCBmb3IgdXMgaW4gc29tZSBjYXNlcyBp ZiB3ZSBjYWxsIGl0IGZyb20gaGVyZS4KLSAgICAgICAgICAgICBjb25zdE9mZnNldCA9IG5ldyBs bHZtOjpUcnVuY0luc3QoY29uc3RPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFt ZShjb25zdE9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjb25zdE9mZnNldC0+ Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgfQotICAgICB9 Ci0gCi1AQCAtMjAxMiw4ICsyMDI0LDggQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUo bGx2bTo6VmFsdWUgKipvZmZzZXRQdHIsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnQKLSAKLSAg ICAgICAgIC8vIEFsdGVybmF0aXZlbHksIG9mZnNldCBjb3VsZCBiZSBhIHNlcXVlbmNlIG9mIGFk ZHMgdGVybWluYXRpbmcKLSAgICAgICAgIC8vIGluIHNhZmUgY29uc3RhbnQgdmVjdG9ycyBvciBh IFNFeHQuCi0tICAgICAgICAqb2Zmc2V0UHRyID0KLS0gICAgICAgICAgICBuZXcgbGx2bTo6VHJ1 bmNJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9m ZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgKm9mZnNldFB0ciA9IG5l dyBsbHZtOjpUcnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwgbGx2 bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgcmV0dXJu IHRydWU7Ci0gICAgIH0gZWxzZQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyMjksNyAr MjI0MSw4IEBAIHN0YXRpYyBib29sIGxHU1RvR1NCYXNlT2Zmc2V0cyhsbHZtOjpDYWxsSW5zdCAq Y2FsbEluc3QpIHsKLSAgICAgfQotICAgICAvLyBDYXN0IHRoZSBiYXNlIHBvaW50ZXIgdG8gYSB2 b2lkICosIHNpbmNlIHRoYXQncyB3aGF0IHRoZQotICAgICAvLyBfX3BzZXVkb18qX2Jhc2Vfb2Zm c2V0c18qIGZ1bmN0aW9ucyB3YW50LgotLSAgICBiYXNlUHRyID0gbmV3IGxsdm06OkludFRvUHRy SW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTUdldE5hbWUoYmFz ZVB0ciwgIl8ydm9pZCIpLCBjYWxsSW5zdCk7Ci0rICAgIGJhc2VQdHIgPSBuZXcgbGx2bTo6SW50 VG9QdHJJbnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBsbHZtOjpUd2lu ZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl8ydm9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNhbGxJbnN0KTsKLSAgICAgbENvcHlNZXRhZGF0YShiYXNlUHRyLCBj YWxsSW5zdCk7Ci0gICAgIGxsdm06OkZ1bmN0aW9uICpnYXRoZXJTY2F0dGVyRnVuYyA9IGluZm8t PmJhc2VPZmZzZXRzRnVuYzsKLSAKLUBAIC0yODAzLDcgKzI4MTYsNyBAQCBzdGF0aWMgYm9vbCBs R1NUb0xvYWRTdG9yZShsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICAg ICAgbENvcHlNZXRhZGF0YShwdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgRGVidWco cG9zLCAiVHJhbnNmb3JtZWQgZ2F0aGVyIHRvIHVuYWxpZ25lZCB2ZWN0b3IgbG9hZCEiKTsKLSAg ICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0NhbGwgPQotLSAgICAgICAgICAg ICAgICAgICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIsIG1hc2ss IExMVk1HZXROYW1lKHB0ciwgIl9tYXNrZWRfbG9hZCIpKTsKLSsgICAgICAgICAgICAgICAgICAg IGxDYWxsSW5zdChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywgcHRyLCBtYXNrLCBsbHZtOjpU d2luZShwdHItPmdldE5hbWUoKSkgKyAiX21hc2tlZF9sb2FkIik7Ci0gICAgICAgICAgICAgICAg IGxDb3B5TWV0YWRhdGEobmV3Q2FsbCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsbHZt OjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBuZXdDYWxsKTsKLSAgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA0LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E5NGQ4NDQzYTVlLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDM0ICswLDAgQEAKLUZyb20gYzAzYTUxNDI0NDQ0NzZhMWNhYTVjMmJhN2ZhMmQ5MmQ3NzkzZDZm MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERlZXBhayBSYWplbmRyYWt1bWFyYW4g PGRlZXBhay5yYWplbmRyYWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogTW9uLCAyNSBKYW4gMjAy MSAwOToyMjo0OSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXhpbmcgYnVpbGQgb24gbGx2bSB0 cnVuay4KLQotLS0tCi0gc3JjL2N0eC5jcHAgfCA3ICsrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5j cHAgYi9zcmMvY3R4LmNwcAotaW5kZXggZGVkNTI0YjcxLi5iNjBlNmZlODQgMTAwNjQ0Ci0tLS0g YS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xMDIwLDggKzEwMjAsNyBAQCB2 b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFiZWwoaW50IHZhbHVlLCBib29sIGNo ZWNrTWFzaywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYkNhc2VJbXBs ID0gTlVMTDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVNYXNrKCkpIHsKLSAgICAgICAgIC8v IENyZWF0ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNlIGltcGxlbWVudGF0aW9uCi0tICAg ICAgICBsbHZtOjpUd2luZSBiYk5hbWUgPSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkg KyAiX2ltcGwiOwotLSAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1l LCBiYkNhc2UpOwotKyAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2sobGx2bTo6 VHdpbmUoYmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIiwgYmJDYXNlKTsKLSAgICAgfQotICNl bmRpZgotIAotQEAgLTMxNDIsOCArMzE0MSw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0g ICAgIGxsdm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodmVjVHlwZSk7 Ci0gCi0gICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1lLmlz VHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNh c3QiKSA6IG5hbWUgKyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLS0gICAgbGx2bTo6VmFsdWUgKmlu c2VydCA9IEluc2VydEluc3QodW5kZWYxLCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSsgICAg bGx2bTo6VmFsdWUgKmluc2VydCA9Ci0rICAgICAgICBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJf YnJvYWRjYXN0IikgOiBuYW1lICsgIl9pbml0Iik7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZTk2YjAw YWJmYS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNzIgKzAsMCBAQAotRnJvbSBjMWQwYTUxYmY4NDE2 ZDQyMTQ0ZGU5ZTJiZGQ1OTgyNWVhZWZmMWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBG cmksIDggSmFuIDIwMjEgMTQ6MTM6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gTExWTSAxMSBz dXBwb3J0IGZvciBnZW4gY29kZQotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAg ICAgIHwgIDEzICsrLQotIHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgfCAgIDkgKy0K LSBzcmMvb3B0LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgNDEg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1p bmRleCBiNjBlNmZlODQuLjJhNzJlNjgzNyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysg Yi9zcmMvY3R4LmNwcAotQEAgLTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAx MC0yMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDEwLTIwMjEsIElu dGVsIENvcnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVkaXN0cmli dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 Ci1AQCAtMzY4NSw4ICszNjg1LDE3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6Ci0gICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdl dFR5cGUoKSkpOwotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotICAgICBpZiAoZGVmYXVsdHMgPT0g TlVMTCkgewotLSAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQodmFsdWUtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpD b25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25z dGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5n ZXROdW1FbGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0 RWxlbWVudFR5cGUoKSkpOwotKyNlbHNlCi0rICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0 YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6Omdl dChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2Up LAotKyAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1l bnRUeXBlKCkpKTsKLSsjZW5kaWYKLSAgICAgfQotIAotICAgICBhdXRvIEZuID0gbGx2bTo6R2Vu WEludHJpbnNpYzo6Z2V0R2VuWERlY2xhcmF0aW9uKG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJp bnNpYzo6Z2VueF9zaW1kY2ZfcHJlZGljYXRlLAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFs c0xvY2FsaXphdGlvbi5jcHAgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRl eCBhMTc2ZTk0NjIuLjQxZjNiMDBlMiAxMDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2Fs aXphdGlvbi5jcHAKLSsrKyBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC0x LDUgKzEsNSBAQAotIC8qCi0tICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMCwgSW50ZWwg Q29ycG9yYXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNi0yMDIxLCBJbnRlbCBDb3Jw b3JhdGlvbgotICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAgIFJlZGlzdHJpYnV0aW9uIGFu ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotQEAgLTUz LDggKzUzLDEwIEBACi0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWEludHJPcHRz Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWEludHJpbnNpY3MuaD4KLSAj aW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YTWV0YWRhdGEuaD4KLS0jaW5jbHVkZSA8 bGx2bS9JUi9DRkcuaD4KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAot ICNpbmNsdWRlIDxsbHZtL0lSL0NhbGxTaXRlLmg+Ci0rI2VuZGlmCi0rI2luY2x1ZGUgPGxsdm0v SVIvQ0ZHLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRGVidWdJbmZvLmg+Ci0gI2luY2x1ZGUgPGxs dm0vSVIvRG9taW5hdG9ycy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0Z1bmN0aW9uLmg+Ci1AQCAt NDcwLDcgKzQ3Miw4IEBAIHZvaWQgR2xvYmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxz KExvY2FsaXphdGlvbkluZm8gJkxJKSB7Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0g KkZuLT5nZXRFbnRyeUJsb2NrKCkuYmVnaW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdW LT5nZXRUeXBlKCktPmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxv Y2EgPSBuZXcgQWxsb2NhSW5zdChFbGVtVHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwg JkZpcnN0SSk7Ci0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWdu KEdWLT5nZXRBbGlnbm1lbnQoKSkpOwotKyAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2 bTo6TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0rCi0gICAg ICAgICBpZiAoIWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAg ICAgICAgbmV3IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJ KTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBkNThk NzdmNzMuLjE3ODliODQ3NiAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0 LmNwcAotQEAgLTI4OTksMTUgKzI4OTksMTcgQEAgc3RhdGljIGxsdm06OkZ1bmN0aW9uICpsR2Vu WE1hc2tlZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0LCBib29sIGlzU3RvcmUKLSBz dGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxs dm06OlZhbHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChn LT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSkpOwotLSAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9m Ml8zMih2YWwtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3Nl cnQodmFsLT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9X T1JEKTsKLSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsgICAgQXNzZXJ0KGxsdm06 OmlzUG93ZXJPZjJfMzIodmFsVmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICBBc3Nl cnQodmFsVmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQp OwotIAotICAgICAvLyBUaGUgZGF0YSB3cml0ZSBvZiBzdm0gc3RvcmUgbXVzdCBoYXZlIGEgc2l6 ZSB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIGZyb20gMTYgdG8gMTI4Ci0gICAgIC8vIGJ5dGVzLiBI b3dldmVyIGZvciBpbnQ4IHR5cGUgYW5kIHNpbWQgd2lkdGggPSA4LCB0aGUgZGF0YSB3cml0ZSBz aXplIGlzIDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgc3RvcmUgZnVuY3Rpb24gaGVyZSBp bnN0ZWFkIG9mIHN2bSBzdG9yZSB3aGljaCBwcm9jZXNzIGludDggdHlwZQotICAgICAvLyBjb3Jy ZWN0bHkuCi0tICAgIGlmICh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygp IC8gOCA8IDE2KSB7Ci0tICAgICAgICBBc3NlcnQodmFsLT5nZXRUeXBlKCktPmdldFNjYWxhclR5 cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSsgICAgaWYgKHZhbFZlY1R5cGUtPmdldFBy aW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewotKyAgICAgICAgQXNzZXJ0KHZhbFZlY1R5 cGUtPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlm IChsbHZtOjpGdW5jdGlvbiAqbWFza2VkRnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwg dHJ1ZSkpCi0gICAgICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0 PihsQ2FsbEluc3QobWFza2VkRnVuYywgcHRyLCB2YWwsIExMVk1NYXNrQWxsT24sICIiKSk7Ci0g ICAgICAgICBlbHNlIHsKLUBAIC0yOTIzLDE1ICsyOTI1LDE3IEBAIHN0YXRpYyBsbHZtOjpDYWxs SW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwg bGx2bTo6Ci0gCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGxsdm06OlR5cGUgKnJldFR5cGUsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7 Ci0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLSAg ICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpKSk7Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwot LSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICog T1dPUkQpOwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSk7Ci0rICAgIEFzc2VydChsbHZtOjppc1Bv d2VyT2YyXzMyKHJldFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgQXNzZXJ0KHJl dFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSk7Ci0rICAgIEFzc2VydChyZXRWZWNU eXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gICAgIC8v IFRoZSBkYXRhIHJlYWQgb2Ygc3ZtIGxvYWQgbXVzdCBoYXZlIGEgc2l6ZSB0aGF0IGlzIGEgcG93 ZXIgb2YgdHdvIGZyb20gMTYgdG8gMTI4Ci0gICAgIC8vIGJ5dGVzLiBIb3dldmVyIGZvciBpbnQ4 IHR5cGUgYW5kIHNpbWQgd2lkdGggPSA4LCB0aGUgZGF0YSByZWFkIHNpemUgaXMgOC4KLSAgICAg Ly8gU28gd2UgdXNlIG1hc2tlZCBsb2FkIGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gbG9h ZCB3aGljaCBwcm9jZXNzIGludDggdHlwZQotICAgICAvLyBjb3JyZWN0bHkuCi0tICAgIGlmIChy ZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFz c2VydChyZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0r ICAgIGlmIChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsK LSsgICAgICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVz OjpJbnQ4VHlwZSk7Ci0gICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBs R2VuWE1hc2tlZEludDhJbnN0KGluc3QsIGZhbHNlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIExM Vk1NYXNrQWxsT24sICIiKSk7Ci0gICAgICAgICBlbHNlIHsKLUBAIC01NjIyLDE1ICs1NjI2LDI0 IEBAIHN0YXRpYyBib29sIGxWZWN0b3JpemVHRVBzKGxsdm06OlZhbHVlICpwdHIsIHN0ZDo6dmVj dG9yPFB0clVzZT4gJnB0clVzZXMsIHN0ZDo6Ci0gICAgICAgICBsbHZtOjpQdHJUb0ludEluc3Qg KnB0clRvSW50ID0KLSAgICAgICAgICAgICBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHB0ciwgTExW TVR5cGVzOjpJbnQ2NFR5cGUsICJ2ZWN0b3JpemVkX3B0cnRvaW50IiwgaW5zZXJ0QmVmb3JlKTsK LSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICphZGRyID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6 OkNyZWF0ZUFkZChwdHJUb0ludCwgb2Zmc2V0LCAidmVjdG9yaXplZF9hZGRyZXNzIiwgaW5zZXJ0 QmVmb3JlKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAg ICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2Fs YXJfdHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSk7Ci0rI2Vsc2UKLSAgICAgICAgIGxsdm06OlR5cGUg KnJldFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0 X3NpemUpOwotKyNlbmRpZgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZuID0gbGx2bTo6R2Vu WEludHJpbnNpYzo6Z2V0R2VuWERlY2xhcmF0aW9uKAotICAgICAgICAgICAgIG0tPm1vZHVsZSwg bGx2bTo6R2VuWEludHJpbnNpYzo6Z2VueF9zdm1fYmxvY2tfbGRfdW5hbGlnbmVkLCB7cmV0VHlw ZSwgYWRkci0+Z2V0VHlwZSgpfSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbGQgPSBs bHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZuLCB7YWRkcn0sICJ2ZWN0b3JpemVkX2xkIiwgaW5zZXJ0 QmVmb3JlKTsKLSAKLSAgICAgICAgIGlmIChsb2FkaW5nUHRyKSB7Ci0gICAgICAgICAgICAgLy8g Q2FzdCBpbnQgdG8gcHRyIHZpYSBpbnR0b3B0cgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChs ZCwgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQob3JpZ2luYWxUeXBlLCByZXFTaXplIC8gdF9z aXplKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcml6 ZWRfaW50dG9wdHIiLCBpbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGQgPSBu ZXcgbGx2bTo6SW50VG9QdHJJbnN0KGxkLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQob3JpZ2luYWxU eXBlLCByZXFTaXplIC8gdF9zaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInZlY3Rvcml6ZWRfaW50dG9wdHIiLCBpbnNlcnRCZWZvcmUpOwotKyNlbmRpZgot ICAgICAgICAgfQotIAotICAgICAgICAgLy8gU2NhbGFyIGV4dHJhY3RzIGZvciBhbGwgbG9hZGVk IGVsZW1lbnRzCi1AQCAtNjE2MCwxOSArNjE3MywzNCBAQCBib29sIFJlcGxhY2VMTFZNSW50cmlu c2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9ICYqSTsKLSAgICAgICAgIGlmIChsbHZtOjpDYWxsSW5z dCAqY2kgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4oaW5zdCkpIHsKLSAgICAgICAg ICAgICBsbHZtOjpGdW5jdGlvbiAqZnVuYyA9IGNpLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAg ICAgICAgICAgIGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKSA9PSAibGx2bS50cmFwIikgewot KyAgICAgICAgICAgIGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0udHJh cCIpKSB7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKmFyZ1R5cGVzW10gPSB7TExWTVR5 cGVzOjpJbnQxVmVjdG9yVHlwZSwgTExWTVR5cGVzOjpJbnQxNlZlY3RvclR5cGV9OwotICAgICAg ICAgICAgICAgICAvLyBEZXNjcmlwdGlvbiBvZiBwYXJhbWV0ZXJzIGZvciBnZW54X3Jhd19zZW5k X25vcmVzdWx0IGNhbiBiZSBmb3VuZCBpbiB0YXJnZXQtZ2VueC5sbAotICAgICAgICAgICAgICAg ICBhdXRvIEZuID0gK2xsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAg ICAgICAgICAgICAgICAgICAgIG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6Z2VueF9y YXdfc2VuZF9ub3Jlc3VsdCwgYXJnVHlwZXMpOwotICAgICAgICAgICAgICAgICBsbHZtOjpTbWFs bFZlY3RvcjxsbHZtOjpWYWx1ZSAqLCA4PiBBcmdzOwotICAgICAgICAgICAgICAgICBBcmdzLnB1 c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKSk7 Ci0tICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpn ZXRTcGxhdChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpD b25zdGFudEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKyAgICAgICAgICAgICAgICBBcmdzLnB1 c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGlu dD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8v IExMVk0gMTIuMCsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0 KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpKSwgZmFsc2UpLAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3Rh bnRJbnQ6OmdldFRydWUoKmctPmN0eCkpKTsKLSsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNo X2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMzkpKTsK LSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChM TFZNVHlwZXM6OkludDMyVHlwZSwgMzM1NTQ0NDgpKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotLSAgICAg ICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLCBsbHZtOjpD b25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDE2VHkoKmctPmN0eCkpKTsK LSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAg ICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExW TV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGlj X2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBm YWxzZX0sCi0rI2Vsc2UgLy8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6 RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDE2VHko KmctPmN0eCkpKTsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2soemVyb01hc2spOwot IAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbmV3SW5zdCA9IGxsdm06OkNh bGxJbnN0OjpDcmVhdGUoRm4sIEFyZ3MsIGNpLT5nZXROYW1lKCkpOwotQEAgLTYxODEsNyArNjIw OSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6 QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0gdHJ1 ZTsKLSAgICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLSAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxs dm0uYXNzdW1lIikgewotKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZnVuYyAmJiBmdW5jLT5nZXRO YW1lKCkuZXF1YWxzKCJsbHZtLmFzc3VtZSIpKSB7Ci0gICAgICAgICAgICAgICAgIGNpLT5lcmFz ZUZyb21QYXJlbnQoKTsKLSAgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnkgPSB0cnVlOwotICAg ICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7Ci1AQCAtNjMzNSw3ICs2MzYzLDcgQEAgYm9vbCBD aGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZi YikgewotICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICBmb3IgKGludCBp ID0gMDsgaSA8IHVuc3VwcG9ydGVkRnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICAg ICAgc3RkOjpzbWF0Y2ggbWF0Y2g7Ci0tICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNO YW1lID0gZnVuYy0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5j TmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgaWYgKHN0ZDo6 cmVnZXhfbWF0Y2goZnVuY05hbWUsIG1hdGNoLCB1bnN1cHBvcnRlZEZ1bmNzW2ldKSkgewotICAg ICAgICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uIEdlbmVy YXRlIGVycm9yIGFuZCBzdG9wIGNvbXBpbGF0aW9uLgotICAgICAgICAgICAgICAgICAgICAgU291 cmNlUG9zIHBvczsKLUBAIC02NDE4LDEyICs2NDQ2LDE0IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVp bHRpbnM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAg ICAgIGlmIChmdW5jLT5nZXROYW1lKCkuc3RhcnRzd2l0aCgiX19zcGlydl9vY2wiKSkgewotICAg ICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBtYW5nbGVkTmFtZTsKLSAgICAgICAgICAgICAgICAg bGx2bTo6VHlwZSAqcmV0VHlwZSA9IGZ1bmMtPmdldFJldHVyblR5cGUoKTsKLS0gICAgICAgICAg ICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAg ICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAg ICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpUeXBlICo+IEFyZ1R5OwotICAgICAgICAg ICAgICAgICAvLyBzcGlydiBPcGVuQ0wgYnVpbHRpbnMgYXJlIHVzZWQgZm9yIGRvdWJsZSB0eXBl cyBvbmx5Ci0tICAgICAgICAgICAgICAgIEFzc2VydChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYg cmV0VHlwZS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpIHx8Ci0rICAgICAg ICAgICAgICAgIEFzc2VydChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+ Z2V0RWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg ICByZXRUeXBlLT5pc1NpbmdsZVZhbHVlVHlwZSgpICYmIHJldFR5cGUtPmlzRG91YmxlVHkoKSk7 Ci0tICAgICAgICAgICAgICAgIGlmIChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYgcmV0VHlwZS0+ Z2V0VmVjdG9yRWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0rICAgICAgICAgICAgICAg IGlmIChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5p c0RvdWJsZVR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgIEFyZ1R5LnB1c2hfYmFjayhMTFZN VHlwZXM6OkRvdWJsZVZlY3RvclR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgLy8gX0R2V0lE VEggc3VmZml4IGlzIHVzZWQgaW4gdGFyZ2V0IGZpbGUgdG8gZGlmZmVyZW50aWF0ZSBzY2FsYXIK LSAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB2ZWN0b3IgdmVyc2lvbnMgb2YgaW50cmluc2lj cy4gSGVyZSB3ZSByZW1vdmUgdGhpcwotQEAgLTY1MTEsOCArNjU0MSwxNSBAQCBsbHZtOjpWYWx1 ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpW YWx1ZSAqUHRyLCBsbAotIAotICAgICAvLyBDYXN0IG9mZnNldHMgdG8gaW50NjQKLSAgICAgT2Zm c2V0cyA9IG5ldyBsbHZtOjpaRXh0SW5zdCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLSsgICAgICAgIE9mZnNldHMsCi0rICAgICAgICBsbHZtOjpGaXhlZFZlY3Rv clR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9mZnNldHMtPmdl dFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAgInN2bV9vZmZzZXRfemV4dCIs IEluc2VydEJlZm9yZSk7Ci0rI2Vsc2UKLSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5 cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0 b3JOdW1FbGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZv cmUpOwotKyNlbmRpZgotIAotICAgICBpZiAoIWxsdm06OmlzYTxsbHZtOjpDb25zdGFudFBvaW50 ZXJOdWxsPihQdHIpKSB7Ci0gICAgICAgICAvLyBDYXN0IHB0ciB0byBpbnQ2NAotQEAgLTY1MjAs MTMgKzY1NTcsMzEgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0 aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgICAgIC8vIFZl Y3Rvcml6ZSBwdHIKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVlID0KLSsj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZt OjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAg ICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAg ICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVz OjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2Vu ZGlmCi0gICAgICAgICBhZGRyZXNzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSh1 bmRlZkluc2VydFZhbHVlLCBhZGRyZXNzLCBMTFZNSW50MzIoMCksICJzdm1fcHRyX2llaSIsIElu c2VydEJlZm9yZSk7Ci0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNv bnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xM Vk1fMTFfMAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygp LAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAg ICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVt RWxlbWVudHMoKSwgZmFsc2V9LAotKyNlbHNlCi0rICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6 OmdldCgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxs dm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUtPmdldE51bUVsZW1lbnRzKCksIGZhbHNl KSwKLSsjZW5kaWYKLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxs dm06OlR5cGU6OmdldEludDMyVHkoSW5zZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0rCi0g ICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZTaHVmZmxlVmFsdWUgPQotKyNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6 OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLSsgICAgICAgICAgICAgICAgTExWTVR5 cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NU eXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5k ZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwg YWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSsjZW5kaWYKLSAgICAgICAg IGFkZHJlc3MgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QoYWRkcmVzcywgdW5kZWZTaHVm ZmxlVmFsdWUsIHplcm9WZWMsICJzdm1fcHRyX3N2aSIsIEluc2VydEJlZm9yZSk7Ci0gCi0gICAg ICAgICAvLyBDYWxjdWxhdGUgYWRkcmVzcwotQEAgLTY1NTMsOSArNjYwOCwxMiBAQCBsbHZtOjpJ bnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2Fk SW5zdCAqTEkpIHsKLSAgICAgaWYgKHJldFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVy VHkoKSkgewotICAgICAgICAgaXNQdHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFy VHlwZSA9IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZN VHlwZXM6OkludDY0VHlwZTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEx XzAKLSsgICAgICAgIHJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJU eXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxl bWVudHMoKSk7Ci0rI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlm Ci0gICAgIH0KLS0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKnJlcyA9IGxHZW5YTG9hZEluc3Qo cHRyLCByZXRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4oTEkpKTsKLSAg ICAgQXNzZXJ0KHJlcyk7Ci0gCi1AQCAtNjU4MCwxMSArNjYzOCwxNiBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yTG9hZChsbHZtOjpJbnN0cnVj dGlvbiAqQ0kpCi0gICAgIHB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QocHRyLCBsbHZtOjpQ b2ludGVyVHlwZTo6Z2V0KHJldFR5cGUsIDApLCBDSS0+Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIs IENJKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gTlVMTDsKLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2 bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlw ZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGxvYWRJbnN0LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilO VUxMKTsKLSsgICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBl KCksIHB0ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUo KSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25t ZW50KCkpLnZhbHVlT3JPbmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vsc2UKLS0gICAgbG9hZEluc3QgPSBuZXcg bGx2bTo6TG9hZEluc3QocHRyLCBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilO VUxMKTsKLSsgICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBDSS0+Z2V0TmFt ZSgpLCBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5 YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25l KCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotICNlbmRpZgotKwotICAgICBBc3NlcnQobG9hZEluc3QpOwotICAgICByZXR1 cm4gbG9hZEluc3Q7Ci0gfQotQEAgLTY2MDYsNyArNjY2OSwxMSBAQCBsbHZtOjpJbnN0cnVjdGlv biAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpT SSkgewotICAgICAvLyBOb3RlOiBpdCBkb2Vzbid0IGxvb2sgbGlrZSBhIG5vcm1hbCBjYXNlIGZv ciBHZW5YIHRhcmdldAotICAgICBpZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50 ZXJUeSgpKSB7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQo KSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICB2YWxUeXBlID0gbGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAg ICB2YWxUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZhbFR5cGUtPmdl dFZlY3Rvck51bUVsZW1lbnRzKCkpOwotKyNlbmRpZgotICAgICAgICAgdmFsID0gbmV3IGxsdm06 OlB0clRvSW50SW5zdCh2YWwsIHZhbFR5cGUsICJzdm1fc3RfdmFsX3B0cnRvaW50IiwgU0kpOwot ICAgICB9Ci0gCi1AQCAtNjYzMSwxMiArNjY5OCw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhB ZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1WZWN0b3JTdG9yZShsbHZtOjpJbnN0cnVjdGlvbiAqQ0kp Ci0gICAgIHB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlw ZTo6Z2V0KHZhbFR5cGUsIDApLCBDSS0+Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIsIENJKTsKLSAK LSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKnN0b3JlSW5zdCA9IE5VTEw7Ci0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OlN0 b3JlSW5zdCh2YWwsIGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5 cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RvcmVJbnN0LCBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24g KilOVUxMKTsKLS0jZWxzZQotLSAgICBzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZh bCwgcHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZW5kaWYKLSsgICAgc3RvcmVJ bnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICop TlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFs aWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7 Ci0gICAgIEFzc2VydChzdG9yZUluc3QpOwotICAgICByZXR1cm4gc3RvcmVJbnN0OwotIH0KLUBA IC02NjQ1LDE1ICs2NzA4LDE4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6 OmNyZWF0ZUludDhXclJlZ2lvbihsbHZtOjpWYWx1ZSAqVmFsLCBsbHZtOjpWCi0gICAgIGludCB3 aWR0aCA9IGctPnRhcmdldC0+Z2V0VmVjdG9yV2lkdGgoKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUg KkFyZ3NbOF07Ci0tCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0r ICAgIEFyZ3NbMF0gPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBl OjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KSk7IC8vIG9sZCB2YWx1ZQotKyNl bHNlCi0gICAgIEFyZ3NbMF0gPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlw ZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQgdmFsdWUKLS0g ICAgQXJnc1sxXSA9IFZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0tICAg IEFyZ3NbMl0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAw KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2c3RyaWRlCi0tICAgIEFyZ3NbM10g PSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWR0aAotLSAgICBBcmdzWzRdID0gbGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgNCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gc3RyaWRlCi0tICAgIEFyZ3NbNV0gPSBsbHZtOjpDb25zdGFudEludDo6 Z2V0KExMVk1UeXBlczo6SW50MTZUeXBlLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBvZmZzZXRzCi0tICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1U eXBlczo6SW50MzJUeXBlLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXJl bnQgd2lkdGggKGlnbm9yZWQpCi0tICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBtYXNrCi0rI2VuZGlmCi0rICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0rICAgIEFyZ3Nb Ml0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAg IC8vIHZzdHJpZGUKLSsgICAgQXJnc1szXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5 cGVzOjpJbnQzMlR5cGUsIHdpZHRoKTsgLy8gd2lkdGgKLSsgICAgQXJnc1s0XSA9IGxsdm06OkNv bnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgLy8gc3RyaWRlCi0r ICAgIEFyZ3NbNV0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MTZUeXBl LCAwKTsgICAgIC8vIG9mZnNldHMKLSsgICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50SW50Ojpn ZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVk KQotKyAgICBBcmdzWzddID0gTWFzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBtYXNrCi0gCi0gICAgIGxsdm06OlR5cGUgKlR5c1s0XTsKLSAKLUBA IC02NzA4LDcgKzY3NzQsMTIgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6 cHJvY2Vzc0dhdGhlclNjYXR0ZXJQcml2YXRlKGxsdm06OkNhbGxJbnN0ICoKLSAgICAgICAgIHJl dHVybiBOVUxMOwotIAotICAgICBsbHZtOjpWYWx1ZSAqYWRkcmVzcyA9IGNhbGN1bGF0ZUdhdGhl clNjYXR0ZXJBZGRyZXNzKHB0ciwgb2Zmc2V0cywgQ0kpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpG aXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpOwotKyNl bHNlCi0gICAgIGxsdm06OlR5cGUgKmk4VmVjVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChM TFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpOwotKyNlbmRpZgotKwotICAgICBib29sIGlz SW50OCA9ICh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJ bnQ4VHlwZSk7Ci0gCi0gICAgIEFzc2VydChhZGRyZXNzICYmICJCYWQgZ2F0aGVyL3NjYXR0ZXIg YWRkcmVzcyEiKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYu cGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBhODI5ZWE0ODM5MWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI2 ICswLDAgQEAKLUZyb20gYmIzZjQ5M2QxZmJkNDVjNzllMWQ5ZGVlNjdhMDQzMGJhMzEzZWFhZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5l c2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCAxOSBKYW4gMjAyMSAxMTowNzozMyAtMDgw MAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBpZmRlZnMgZm9yIExMVk1fMTEKLQotLS0tCi0gc3Jj L2N0eC5jcHAgfCAgNiArKystLS0KLSBzcmMvb3B0LmNwcCB8IDE4ICsrKysrKysrKy0tLS0tLS0t LQotIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCAyYTcyZTY4Mzcu LjUyN2EwMmYzMCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAot QEAgLTE2OTEsNyArMTY5MSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpT bWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUCi0gICAgIGlmIChs bHZtOjpDb25zdGFudCAqY29uc3RfdmFsID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q29uc3RhbnQ+ KHZhbHVlKSkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAg ICAgICByZXQgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXRW ZWN0b3JXaWR0aCgpLCBjb25zdF92YWwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElT UENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAot ICAgICAgICAgcmV0ID0KLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgp KSwgZmFsc2V9LCBjb25zdF92YWwpOwotICNlbHNlIC8vIExMVk0gMTIuMCsKLUBAIC0zMTQ4LDcg KzMxNDgsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFs dWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8IElTUENfTExWTV8xMV8wCi0gICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgdmVjVHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJ bnQzMlR5KCpnLT5jdHgpKSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZN XzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgIGxs dm06OkNvbnN0YW50ICp6ZXJvVmVjID0KLSAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpn ZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSks IGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpD b25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsK LUBAIC0zNjg4LDcgKzM2ODgsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OgotICNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNv bnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLS0jZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50 cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUo KSkpOwotICNlbHNlCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5k ZXggMTc4OWI4NDc2Li4zZmYxOTFhMGEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIv c3JjL29wdC5jcHAKLUBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAg ICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAg ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5n ZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2Fk SW5zdCA9Ci0gICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwg bGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xv YWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotQEAgLTE0NzIsNyArMTQ3Miw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdl dEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNl Ci0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPQotICNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGN2LT5nZXRUeXBlKCktPmdldFZlY3Rvck51 bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAK LSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY3YtPmdl dFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjAr Ci1AQCAtMTQ5NSw3ICsxNDk1LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsR2V0QmFzZVB0ckFu ZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0cnMsIGxsdm06OlZhbHVlICoqb2Zmc2UKLSAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9wX3Zhcl90eXBlLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0r I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYm9wX3Zhcl90 eXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi1AQCAt MjgwMyw3ICsyODAzLDcgQEAgc3RhdGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbElu c3QgKmNhbGxJbnN0KSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0KLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBs bHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY2FsbEluc3QtPmdldFR5cGUoKS0+Z2V0VmVj dG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1f MTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAgICAg ICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGNhbGxJbnN0LT5nZXRUeXBl KCkpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gCi1AQCAtMzEwMCw3ICszMTAwLDcgQEAg c3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRMb2FkKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCwg bGx2bTo6QmFzaWNCbG9jazo6aXRlcmEKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBsbHZtOjpU eXBlICpwdHJUeXBlID0gbGx2bTo6UG9pbnRlclR5cGU6OmdldChjYWxsSW5zdC0+Z2V0VHlwZSgp LCAwKTsKLSAgICAgICAgICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBwdHJU eXBlLCAicHRyX2Nhc3RfZm9yX2xvYWQiLCBjYWxsSW5zdCk7Ci0tI2lmIElTUENfTExWTV9WRVJT SU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzExXzAKLSAgICAgICAgICAgICBsb2FkID0gbmV3IGxsdm06OkxvYWRJbnN0KAotICAgICAgICAg ICAgICAgICBwdHIsIGNhbGxJbnN0LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAq LywKLSAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVk TWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFs aWduKQotQEAgLTM0NTksNyArMzQ1OSw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZt OjpWYWx1ZSAqYmFzZVB0ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFs dWUgKnB0ciA9IGxHRVBJbnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2Ui LCBpbnNlcnRCZWZvcmUpOwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBs bHZtOjpQb2ludGVyVHlwZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUp OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZElu c3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1h eWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAg ICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVy VHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotQEAg LTYxODMsNyArNjE4Myw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNo X2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19M TFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAg ICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5z aWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi1A QCAtNjE5NSw3ICs2MTk1LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgIGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzEyXzAKLSAgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZN IDEyLjArCi0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0 aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSks IGZhbHNlKSwKLUBAIC02NTY3LDcgKzY1NjcsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1Nw YWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAot ICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAg ICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UK LSAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KApkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiOTc1Zjg5NmM3ZS4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNjAgKzAsMCBAQAotRnJvbSA2MmY1YTZjMzdiZjI2ZmMyNWE3 Y2Y4MTg2ODA1MmQzNDcyODc0NjEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJp bmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIz IE1hciAyMDIxIDIzOjA3OjMwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBnZW5lcmF0 ZSBmdW5jdGlvbiBtYXNrIHdoZW4gaXQgaXMgbm90IHJlcXVpcmVkCi0KLS0tLQotIHNyYy9jdHgu Y3BwICAgICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrLS0tLS0tLQotIHRlc3Rz L2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMK LQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDUyN2EwMmYz MC4uOWU3NzVmYzVjIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3Bw Ci1AQCAtMjMxLDEwICsyMzEsMTggQEAgRnVuY3Rpb25FbWl0Q29udGV4dDo6RnVuY3Rpb25FbWl0 Q29udGV4dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0sIGxsdm06OkYKLSAgICAgaW50 ZXJuYWxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImludGVy bmFsX21hc2tfbWVtb3J5Iik7Ci0gICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBpbnRlcm5h bE1hc2tQb2ludGVyKTsKLSAKLS0gICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBMTFZNTWFza0FsbE9u OwotLQotLSAgICBmdWxsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5 cGUsICJmdWxsX21hc2tfbWVtb3J5Iik7Ci0tICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBm dWxsTWFza1BvaW50ZXIpOwotKyAgICAvLyBJZiB0aGUgZnVuY3Rpb24gZG9lc24ndCBoYXZlIF9f bWFzayBpbiBwYXJhbWV0ZXJzLCB0aGVyZSBpcyBubyBuZWVkIHRvCi0rICAgIC8vIGhhdmUgZnVu Y3Rpb24gbWFzawotKyAgICBpZiAoKGZ1bmMtPkdldFR5cGUoKS0+aXNFeHBvcnRlZCAmJgotKyAg ICAgICAgIChsZi0+Z2V0RnVuY3Rpb25UeXBlKCktPmdldE51bVBhcmFtcygpID09IGZ1bmMtPkdl dFR5cGUoKS0+R2V0TnVtUGFyYW1ldGVycygpKSkgfHwKLSsgICAgICAgIChmdW5jLT5HZXRUeXBl KCktPmlzVW5tYXNrZWQpIHx8IChmdW5jLT5HZXRUeXBlKCktPmlzVGFzaykpIHsKLSsgICAgICAg IGZ1bmN0aW9uTWFza1ZhbHVlID0gTlVMTDsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IE5V TEw7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IExMVk1NYXNr QWxsT247Ci0rICAgICAgICBmdWxsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6 TWFza1R5cGUsICJmdWxsX21hc2tfbWVtb3J5Iik7Ci0rICAgICAgICBTdG9yZUluc3QoTExWTU1h c2tBbGxPbiwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgfQotIAotICAgICBibG9ja0VudHJ5TWFz ayA9IE5VTEw7Ci0gICAgIGJyZWFrTGFuZXNQdHIgPSBjb250aW51ZUxhbmVzUHRyID0gTlVMTDsK LUBAIC0zODksMjAgKzM5NywyNiBAQCBsbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpHZXRDdXJyZW50QmFzaWNCbG9jaygpIHsgcmV0dXJuIGJibG9jazsgfQotIAotIHZvaWQg RnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0Q3VycmVudEJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9j ayAqYmIpIHsgYmJsb2NrID0gYmI7IH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2V0RnVuY3Rpb25NYXNrKCkgeyByZXR1cm4gZnVuY3Rpb25NYXNrVmFsdWU7IH0KLSts bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVuY3Rpb25NYXNrKCkgeyByZXR1 cm4gZnVsbE1hc2tQb2ludGVyID8gZnVuY3Rpb25NYXNrVmFsdWUgOiBMTFZNTWFza0FsbE9uOyB9 Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEludGVybmFsTWFzaygp IHsgcmV0dXJuIExvYWRJbnN0KGludGVybmFsTWFza1BvaW50ZXIsIE5VTEwsICJsb2FkX21hc2si KTsgfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFzaygp IHsKLS0gICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdl dEludGVybmFsTWFzaygpLCBmdW5jdGlvbk1hc2tWYWx1ZSwgImludGVybmFsX21hc2smZnVuY3Rp b25fbWFzayIpOwotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gQmluYXJ5T3BlcmF0b3Io bGx2bTo6SW5zdHJ1Y3Rpb246OkFuZCwgR2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1Zh bHVlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVy bmFsX21hc2smZnVuY3Rpb25fbWFzayIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBH ZXRJbnRlcm5hbE1hc2soKTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkdldEZ1bGxNYXNrUG9pbnRlcigpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlcjsgfQotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7Ci0r ICAgIHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdWxsTWFza1BvaW50ZXIgOiBpbnRlcm5hbE1h c2tQb2ludGVyOwotK30KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEZ1bmN0aW9u TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsKLS0gICAgZnVuY3Rpb25NYXNrVmFsdWUgPSB2YWx1 ZTsKLS0gICAgaWYgKGJibG9jayAhPSBOVUxMKQotLSAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxN YXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIgIT0gTlVM TCkgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSB2YWx1ZTsKLSsgICAgICAgIGlmIChi YmxvY2sgIT0gTlVMTCkKLSsgICAgICAgICAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVs bE1hc2tQb2ludGVyKTsKLSsgICAgfQotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6 OlNldEJsb2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0VudHJ5TWFzayA9 IHZhbHVlOyB9Ci1AQCAtNDEwLDcgKzQyNCw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7IGJsb2NrRW50cnlNYXNrCi0g dm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRJbnRlcm5hbE1hc2sobGx2bTo6VmFsdWUgKnZh bHVlKSB7Ci0gICAgIFN0b3JlSW5zdCh2YWx1ZSwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gICAg IC8vIGtsdWRnZSBzbyB0aGF0IF9fbWFzayByZXR1cm5zIHRoZSByaWdodCB2YWx1ZSBpbiBpc3Bj IGNvZGUuCi0tICAgIFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwot KyAgICBpZiAoZnVsbE1hc2tQb2ludGVyKQotKyAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNr KCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 U2V0SW50ZXJuYWxNYXNrQW5kKGxsdm06OlZhbHVlICpvbGRNYXNrLCBsbHZtOjpWYWx1ZSAqdGVz dCkgewotQEAgLTEyNjUsNyArMTI4MCw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3Vy cmVudExhbmVzUmV0dXJuZWQoRXhwciAqZXhwciwgYm9vbCBkb0NvaGVyZW5jZUNoZWNrCi0gICAg ICAgICAvLyBsYW5lcyBoYXZlIHJldHVybmVkCi0gICAgICAgICBpZiAoZG9Db2hlcmVuY2VDaGVj aykgewotICAgICAgICAgICAgIC8vIGlmIG5ld1JldHVybmVkTGFuZXMgPT0gZnVuY3Rpb25NYXNr VmFsdWUsIGdldCBvdXQgb2YgaGVyZSEKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0g TWFza3NBbGxFcXVhbChmdW5jdGlvbk1hc2tWYWx1ZSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0rICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoR2V0RnVuY3Rpb25NYXNr KCksIG5ld1JldHVybmVkTGFuZXMpOwotICAgICAgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJE b1JldHVybiA9IENyZWF0ZUJhc2ljQmxvY2soImRvX3JldHVybiIpOwotICAgICAgICAgICAgIGxs dm06OkJhc2ljQmxvY2sgKmJOb1JldHVybiA9IENyZWF0ZUJhc2ljQmxvY2soIm5vX3JldHVybiIp OwotICAgICAgICAgICAgIEJyYW5jaEluc3QoYkRvUmV0dXJuLCBiTm9SZXR1cm4sIGNtcCk7Ci1k aWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIGIvdGVzdHMvbGl0LXRl c3RzL2Z1bGxfbWFzay5pc3BjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAw Li5hYzBiMGJjYTMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21h c2suaXNwYwotQEAgLTAsMCArMSw2MyBAQAotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfRVhQ T1JUIC0tZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxl Q2hlY2sgLS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19FWFBPUlQg JXMKLSsKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX1VOTUFTS0VEIC0tZW1pdC1sbHZtLXRl eHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxl PSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19VTk1BU0tFRCAlcwotKwotKy8vIFJVTjog JXtpc3BjfSAlcyAtRElTUENfTk9RVUFMSUYgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAg LW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXBy ZWZpeD1DSEVDS19JU1BDX05PUVVBTElGICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQ Q19UQVNLIC0tZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBG aWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19UQVNL ICVzCi0rCi0rc3RydWN0IFBhcmFtZXRlcnMgewotKyAgICBmbG9hdCAqdm91dDsKLSsgICAgaW50 IHBhcmFtOwotK307Ci0rCi0rI2lmZGVmIElTUENfRVhQT1JUCi0rLy8gQ0hFQ0tfSVNQQ19FWFBP UlQ6IGRlZmluZSB2b2lkIEBzaW1wbGVfZXhwb3J0X19fCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6 ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6IGRlZmlu ZSB2b2lkIEBzaW1wbGVfZXhwb3J0KAotKy8vIENIRUNLX0lTUENfRVhQT1JULU5PVDogJWZ1bGxf bWFza19tZW1vcnkgPSBhbGxvY2EKLStleHBvcnQgdm9pZCBzaW1wbGVfZXhwb3J0KHZvaWQgKnVu aWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1 bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAg cC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30K LSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19VTk1BU0tFRAotKy8vIENIRUNLX0lTUENfVU5NQVNLRUQ6 IGRlZmluZSB2b2lkIEBzaW1wbGVfdW5tYXNrZWQKLSsvLyBDSEVDS19JU1BDX1VOTUFTS0VELU5P VDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt1bm1hc2tlZCB2b2lkIHNpbXBsZV91bm1h c2tlZCh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQ YXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJh bSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dy YW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfTk9RVUFMSUYKLSsvLyBDSEVDS19J U1BDX05PUVVBTElGOiBkZWZpbmUgdm9pZCBAc2ltcGxlCi0rLy8gQ0hFQ0tfSVNQQ19OT1FVQUxJ RjogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt2b2lkIHNpbXBsZSh2b2lkICp1bmlmb3Jt IF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9y bSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZv dXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rI2Vu ZGlmCi0rI2lmZGVmIElTUENfVEFTSwotKwotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZv aWQgQHNpbXBsZV90YXNrCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLLU5PVDogJWZ1bGxfbWFza19tZW1v cnkgPSBhbGxvY2EKLSsvLyBDSEVDS19JU1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50 cnlfcG9pbnRfXwotKy8vIENIRUNLX0lTUENfVEFTSzogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxv Y2EKLSsvLyBDSEVDS19JU1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50cnlfcG9pbnQo Ci0rLy8gQ0hFQ0tfSVNQQ19UQVNLLU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt0 YXNrIHZvaWQgc2ltcGxlX3Rhc2sodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJz ICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3Jh bUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9n cmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotK2V4cG9ydCB2b2lkIHNpbXBsZV9lbnRyeV9w b2ludCh2b2lkICp1bmlmb3JtIHBhcmFtZXRlcnMsIHVuaWZvcm0gaW50IGRpbTAsIHVuaWZvcm0g aW50IGRpbTEsIHVuaWZvcm0gaW50IGRpbTIpIHsKLSsgICAgbGF1bmNoW2RpbTAsIGRpbTEsIGRp bTJdIHNpbXBsZV90YXNrKHBhcmFtZXRlcnMpOwotK30KLSsjZW5kaWYKLVwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw OC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NDEzZDhiNzg4Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx NDkgKzAsMCBAQAotRnJvbSBhZmFkMTQyMjdkOTIwNGEzYzhhNjI2Y2E2MDhmNWI0M2MzMjE4ZmU5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEu bmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDQgTWF5IDIwMjEgMTE6NDM6NTIgLTA3 MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgSVNQQyBnZW4gYnVpbGQgZm9yIExMVk0xMgotCi0t LS0KLSBzcmMvY3R4LmNwcCB8ICA0ICsrKysKLSBzcmMvb3B0LmNwcCB8IDQzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDMzIGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAg Yi9zcmMvY3R4LmNwcAotaW5kZXggMGM3MDUwNTkxLi5mN2RjMDY5MzkgMTAwNjQ0Ci0tLS0gYS9z cmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0zNzM4LDcgKzM3MzgsMTEgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZBbnkobGx2bTo6VmFsdWUg KnZhbHVlKSB7Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1k Q0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqZGVmYXVsdHMpIHsK LSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2 YWx1ZS0+Z2V0VHlwZSgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MV8wCi0rICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpGaXhlZFZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIGxsdm06 OlZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUt PmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSB7Ci0gI2lm IElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGRlZmF1bHRzID0g bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygp LAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGNlYTRhZmEy My4uNGUzM2Q2YjFhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3Bw Ci1AQCAtMjkxNiw5ICsyOTE2LDEzIEBAIHN0YXRpYyBsbHZtOjpGdW5jdGlvbiAqbEdlblhNYXNr ZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBpc1N0b3JlCi0gCi0gc3Rh dGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQoZy0+ dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMV8wCi0rICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2 YWwtPmdldFR5cGUoKSkpOwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZhbFZlY1R5cGUg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsK LSsjZWxzZQotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0 VHlwZSgpKSk7Ci0tCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gICAg IEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkp KTsKLSAgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDgg PD0gOCAqIE9XT1JEKTsKLSAKLUBAIC0yOTQyLDkgKzI5NDYsMTMgQEAgc3RhdGljIGxsdm06OkNh bGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRy LCBsbHZtOjoKLSB9Ci0gCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxs dm06OlZhbHVlICpwdHIsIGxsdm06OlR5cGUgKnJldFR5cGUsIGxsdm06Okluc3RydWN0aW9uICpp bnN0KSB7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFz c2VydChsbHZtOjppc2E8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0rICAgIGxs dm06OkZpeGVkVmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZp eGVkVmVjdG9yVHlwZT4ocmV0VHlwZSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxs bHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0tCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnJl dFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsj ZW5kaWYKLSAgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVt RWxlbWVudHMoKSkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUlu Qml0cygpKTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMo KSAvIDggPD0gOCAqIE9XT1JEKTsKLUBAIC01NDg1LDggKzU0OTMsMTMgQEAgc3RhdGljIHZvaWQg bENyZWF0ZUJsb2NrTERVc2UobGx2bTo6SW5zdHJ1Y3Rpb24gKmN1cnJJbnN0LCBzdGQ6OnZlY3Rv cjxsbHZtOjpFeHQKLSAgICAgICAgIH0gZWxzZSBpZiAoYXV0byBnYXRoZXIgPSBsR2V0UHNldWRv R2F0aGVyKGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPih1aS0+Z2V0VXNlcigpKSkp IHsKLSAgICAgICAgICAgICAvLyBDb2xsZWN0IGlkeHMgZnJvbSBnYXRoZXIgYW5kIGZpeCB1c2Vy cwotICAgICAgICAgICAgIGxsdm06OlZhbHVlICpyZXMgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQo Z2F0aGVyLT5nZXRUeXBlKCkpOwotLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGVu ZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0 TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsKLS0gICAgICAgICAgICAgICAgICsraSkgewotKyNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGZvciAodW5z aWduZWQgaSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4o cmVzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotKyAgICAgICAgICAg ICAgICAgKytpKQotKyNlbHNlCi0rICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5k ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmVzLT5nZXRUeXBlKCkpLT5nZXRO dW1FbGVtZW50cygpOyBpIDwgZW5kOyArK2kpCi0rI2VuZGlmCi0rICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgICAvLyBHZXQgZWxlbWVudCB2aWEgSUVJCi0gICAgICAgICAgICAgICAgIHJl cyA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUocmVzLCBFRUlzW3B0clVzZS5pZHhz W2N1cnJfaWR4KytdXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBl LCBpKSwKLUBAIC01NTIyLDEwICs1NTM1LDExIEBAIHN0YXRpYyBib29sIGxWZWN0b3JpemVHRVBz KGxsdm06OlZhbHVlICpwdHIsIHN0ZDo6dmVjdG9yPFB0clVzZT4gJnB0clVzZXMsIHN0ZDo6Ci0g Ci0gICAgIC8vIEFkanVzdCB2YWx1ZXMgZm9yIHZlY3RvciBsb2FkCi0gI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih0eXBlKSkgewotKyAgICBpZiAoYXV0byB2ZWNU eSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpCi0gI2Vsc2UK LS0gICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih0 eXBlKSkgewotKyAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KHR5cGUpKQotICNlbmRpZgotKyAgICB7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVs ZW1lbnQgc2l6ZQotICAgICAgICAgdF9zaXplIC89IHZlY1R5LT5nZXROdW1FbGVtZW50cygpOwot ICAgICAgICAgLy8gR2V0IHNpbmdsZSBlbGVtZW50IHR5cGUKLUBAIC02NDc3LDcgKzY0OTEsNyBA QCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRk cmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotICAgICAgICAgT2Zmc2V0cywKLSAgICAgICAgIGxsdm06OkZpeGVkVmVjdG9y VHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oT2Zmc2V0cy0+Z2V0 VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KE9mZnNldHMtPmdl dFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4dCIs IEluc2VydEJlZm9yZSk7Ci0gI2Vsc2UKLSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5 cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0 b3JOdW1FbGVtZW50cygpKSwKLUBAIC02NDkyLDcgKzY1MDYsNyBAQCBsbHZtOjpWYWx1ZSAqRml4 QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAq UHRyLCBsbAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmSW5zZXJ0VmFsdWUgPQotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxsdm06OlVu ZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLS0gICAgICAgICAgICAg ICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICAgICAgICAgICAgICBMTFZN VHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihh ZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSAjZWxzZQotICAgICAgICAgICAgIGxs dm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2 NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1A QCAtNjUwMSwxNyArNjUxNSwxNiBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxj dWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUt PmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0gI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BD X0xMVk1fMTJfMAotLSAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsgICAgICAgICAgICB7 bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51 bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZQotLSAgICAgICAgbGx2bTo6RWxlbWVudENvdW50 OjpnZXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxs bHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50cygpLCBmYWxz ZSksCi0rICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQobGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZh bHNlKSwKLSAjZW5kaWYKLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVl KGxsdm06OlR5cGU6OmdldEludDMyVHkoSW5zZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0g Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZTaHVmZmxlVmFsdWUgPQotICNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFs dWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLS0gICAgICAgICAgICAgICAgTExW TVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJl c3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6 OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNz VHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSAjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVu ZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUs IGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1AQCAtNjU0 Miw3ICs2NTU1LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vz c1ZlY3RvckxvYWQobGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0 cnVlOwotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBM TFZNVHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZp eGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KHJldFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsgICAgICAgIHJldFR5cGUgPQot KyAgICAgICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRz KCkpOwotICNlbHNlCi0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNj YWxhclR5cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgotQEAg LTY2MDQsNyArNjYxOCw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnBy b2Nlc3NWZWN0b3JTdG9yZShsbHZtOjpTdG9yZUluc3QgKlNJKSB7Ci0gICAgIGlmICh2YWxUeXBl LT5nZXRTY2FsYXJUeXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFy VHlwZSA9IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZN VHlwZXM6OkludDY0VHlwZTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEx XzAKLS0gICAgICAgIHZhbFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJU eXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxl bWVudHMoKSk7Ci0rICAgICAgICB2YWxUeXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZl Y3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3Rv clR5cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgdmFs VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2YWxUeXBlLT5nZXRWZWN0 b3JOdW1FbGVtZW50cygpKTsKLSAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDkucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2VhNjc4Mjg1ODIuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjEwOSArMCwwIEBACi1Gcm9tIDk3YjEzYzMyMTMyZTI3MDRhNWUzZTdiMmVh ZTQ5ZDg1NGQwODdlM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNo bHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAy MSAxMTozMTo1NSAtMDcwMAotU3ViamVjdDogW1BBVENIXSBVcGRhdGVkIGJ1aWx0aW5zLWNtKiBm b3Igc3dpdGNoIHRvIExMVk0xMgotCi0tLS0KLSBidWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCB8 IDIzNCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCi0gYnVpbHRpbnMvYnVp bHRpbnMtY20tNjQubGwgfCAyMzIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t Ci0gMiBmaWxlcyBjaGFuZ2VkLCAyMzMgaW5zZXJ0aW9ucygrKSwgMjMzIGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwgYi9idWlsdGlucy9idWls dGlucy1jbS0zMi5sbAotaW5kZXggMzJkZWJmMzJlLi40ODFiYmRjNDggMTAwNjQ0Ci0tLS0gYS9i dWlsdGlucy9idWlsdGlucy1jbS0zMi5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIu bGwKLUBAIC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVt SVB2RUV2diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNv bnN0YW50IFs1IHggaThdIGMiJTA4WFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStk ZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNj KGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNs YXJlIDwxIHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4s IGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmlu ZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFf Y1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAg LTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVm aW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVF RXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUg PSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJD TXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwg c2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4 IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAs NyArODkwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkz Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0r ZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4 IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8 MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHgg aTg+LCA8MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4 IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+ LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJf Y1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25l eHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7 Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24g MgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkxRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54 LnJkcmVnaW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYs IGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8 MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBA IC0xMTQzLDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8 NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcg KzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAt MTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxz MTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWdu ZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRz b19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBz aWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2Piwg PDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0g ICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkx Nj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUw MSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2 IHggaTE2PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEg ewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwx NiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgot QEAgLTE1MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFs bG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxp Z24gNjQKLUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwg aTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAs NyArMTczMCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4g QGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkz Mj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNN Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8 MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkz MikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBp bnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNf KDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf aVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4 Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmho KGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBf Wk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEg eCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIx IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYw LDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4Pikg IzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVm aW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVF dTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNf KDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2 IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9T MV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+ LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBp OD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFf dTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6 ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIx IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4 IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+ LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICsz MTU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9 IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hT Xyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBh bGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxv Y2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYg emVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0z Mjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4 IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAg JTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyAr MzI5NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2Pikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcg QEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMkVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZF RUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcg QEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0 KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9l eHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6 ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90 U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEg eCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotQEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4 IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1A QCAtMzY3OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBp MTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjky LDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkx Nj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMg PSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBh bGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyAr MzcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkx Nj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAg ICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBp MTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0z NzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8 MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMx OCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2Eg PDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmlu ZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikg IzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBh bGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4 OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMx NCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5l IGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUy Q012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxs b2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf alNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAg JTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTMyRUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkz MiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEg eCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot QEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4s IDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5 Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBp MzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUz ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcg KzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4p ICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBh bGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGln biAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcy MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4p ICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+ LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0 LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4 Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZv aWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIz ICFkYmcgITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4 KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxv Y2EgaTgqLCBhbGlnbiA0Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMCA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLUBAIC00OTg4LDcgKzQ5ODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg dm9pZCBAX1pON2RldGFpbHMxNl9jbV9wcmludF9mb3JtYXRJTGkxMjhFRUV2MTVjbV9zdXJmYWNl aW5kZXhqdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkz MiosIGkzMiwgaTMyLCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0rZGVmaW5lIGludGVybmFs IHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwg aTMyLCBpMzIpICMyNiAhZGJnICExMTcgewotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAot ICAgJTExID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTEyID0gYWxsb2NhIGkzMiwgYWxpZ24g NAotQEAgLTUwNjksNyArNTA2OSw3IEBAIGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmlu dF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0gICAlNjcg PSBsb2FkIGk2NCwgaTY0KiAlMTMsIGFsaWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5Ci0gICAl NjggPSBsb2FkIDw1IHggaTMyPiwgPDUgeCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJnICExNjAs ICF0YmFhICE3Ci0gICBjYWxsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJD TXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMjMsIGkzMiogZGVyZWZlcmVuY2VhYmxlKDQp ICUxOSwgaTMyKiogZGVyZWZlcmVuY2VhYmxlKDQpICUxNCwgaTMyICU2NiwgaTY0ICU2NywgPDUg eCBpMzI+ICU2OCksICFkYmcgITE2MQotLSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJO U184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MjMpLCAhZGJnICExNjIKLSsgICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSAgIGJy IGxhYmVsICU3MCwgIWRiZyAhMTYzCi0gCi0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTYwCi1AQCAtNTE4Nyw3ICs1MTg3LDcgQEAg ZGVmaW5lIGludGVybmFsIDw1IHggaTMyPiBAX1oxN2dldF9hdXhpbGlhcnlfc3RydigpICMyOCBj b21kYXQgIWRiZyAhMTc4IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5l IGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29t ZGF0ICFkYmcgITE5MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhF bmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0g ICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1X cml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxp Z24gMzIKLUBAIC01MTk2LDcgKzUxOTYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAg JTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE5Ngot ICAgJTkgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE5 NgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl OCwgaTgqIGFsaWduIDMyICU5LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBz aWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUpLCAhZGJn ICExOTgKLSsgICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5j b2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4 dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBh bGlnbiAzMiAlNSksICFkYmcgITE5OAotICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxhYmVsICUx MSwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjExOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC01MjA0LDcgKzUyMDQsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyMTNWYXJ5aQotICAgJTEzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTYg dG8gaTgqLCAhZGJnICEyMDEKLSAgICUxNCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUyIHRvIGk4KiwgIWRiZyAhMjAxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICUxMywgaTgqIGFsaWduIDMyICUxNCwgaTMyIDY0LCBpMSBmYWxz ZSksICFkYmcgITIwMSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotICAgYnIgbGFi ZWwgJTE2LCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMTEsICUzCi1AQCAtNTI3OSw3ICs1Mjc5LDcgQEAg ZGVmaW5lIGludGVybmFsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJDTXZi NV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRi ZyAhMjM2IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEy MzYgewotICAgcmV0IGkzMiAtMSwgIWRiZyAhMjM3Ci0gfQotIAotQEAgLTg4NjAsNyArODg2MCw3 IEBAIGRlY2xhcmUgZHNvX2xvY2FsIHZvaWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJpbnNpY19p bXBsX3N2bV9zY2F0dGVyX3dyaXRlSWlMaTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdlbnguc3Zt LnNjYXR0ZXIudjFpMS52MWk2NC52MWkzMig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4sIDwxIHgg aTMyPikgIzI3Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dp dGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0 ICFkYmcgITE2NDUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VU XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwg YWxpZ24gMQotQEAgLTg4NjksNyArODg2OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0g ICAlNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY0 NwotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITE2NDcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NDcsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4 Ci0gICByZXQgaTEgJTksICFkYmcgITE2NDkKLSB9Ci0gCi1AQCAtODg3Nyw3ICs4ODc3LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUKLSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIG5vY2FwdHVyZSB3cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVhZG9ubHks IGkzMiwgaTEpICMzMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8y MnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNv bWRhdCAhZGJnICExNjUwIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2Rp bmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUzID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxp Z24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIsIGFsaWduIDEKLUBAIC04ODg2LDEyICs4ODg2LDEyIEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dy aXRlCi0gICAlNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4KiwgIWRi ZyAhMTY1MgotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NTIKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NTIsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUpLCAhZGJn ICExNjUzCi0gICByZXQgaTEgJTksICFkYmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2 NTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAg JTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24g MQotQEAgLTg5MTQsNyArODkxNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjIg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2NTcKLSAg ICUyMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1 NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl MjIsIGk4KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlNiksICFkYmcgITE2NTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUs ICFkYmcgITE2NTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTg5MjIsNyArODkyMiw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNyB0 byBpOCosICFkYmcgITE2NjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4KSwgIWRi ZyAhMTY2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkxICUyOSwg bGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04OTMwLDcg Kzg5MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTkgdG8gaTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24g MzIgJTMzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0ICExOTcK LS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMCksICFk YmcgITE2NjYKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITE2NjcK LSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlMzAKLUBAIC04OTM4LDcgKzg5MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4KiwgIWRi ZyAhMTY2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcg ITE2NjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITE2NzAK LSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKSBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwgbGFiZWwg JTYwLCBsYWJlbCAlNDAsICFkYmcgITE2NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC04OTQ2LDcgKzg5NDYs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0 MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl NDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxICUxNCksICFkYmcgITE2NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl NDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCksICFkYmcg ITE2NzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2NzUKLSAK LSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJl ZHMgPSAlNDAKLUBAIC04OTU0LDcgKzg5NTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgot ICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAh MTY3NwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAh ZGJnICExNjc3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFs aWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NzcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSsg ICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYw LCBsYWJlbCAlNTAsICFkYmcgITE2NzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC04OTYyLDcgKzg5NjIsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1Mywg aTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxICUxOCksICFkYmcgITE2ODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFkYmcgITE2 ODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMKLSAKLSA7 IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlNTAKLUBAIC04OTcwLDcgKzg5NzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAg JTU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMTY4 NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJn ICExNjg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWdu IDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODUs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0rICAl NTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICEx NjgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTg5 NzksNyArODk3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNjg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMDUs NyArOTAwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ aTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNjk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMzEsNyAr OTAzMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNzA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNTcsNyArOTA1 Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwODMsNyArOTA4Myw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMDksNyArOTEwOSw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXgxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEx NzMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0ID0gYWxs b2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTgg JTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMzUsNyArOTEzNSw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQy IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNjEsNyArOTE2MSw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBhbGxvY2Eg aTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwg aTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTk4NCw3ICs5OTg0LDcgQEAgZGVmaW5l IGludGVybmFsIGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90eXBlX29jbElQdkVFTlNfMThT SEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5l IGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNTUgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIwNTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTEwMDA3LDcg KzEwMDA3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA1NwotICAgJTIzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDU3Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWdu IDMyICUyMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNTcsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEyMDU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU2KSwgIWRi ZyAhMjA1OAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMjA1OQot IAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICUzCi1AQCAtMTAwMTUsNyArMTAwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRl cgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTcgdG8gaTgqLCAhZGJn ICEyMDYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITIwNjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MjA2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSsg ICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEgJTgpLCAhZGJnICEyMDYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwg bGFiZWwgJTMwLCAhZGJnICEyMDYzCi0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtMTAwMjMsNyArMTAwMjMsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTkgdG8gaTgqLCAhZGJnICEyMDY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjUKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBp MzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSAlMTApLCAhZGJnICEyMDY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy ICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMCksICFkYmcgITIwNjYK LSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITIwNjcKLSAKLSA7IDxs YWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAl MzAKLUBAIC0xMDAzMSw3ICsxMDAzMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAl MzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICEyMDY5 Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITIwNjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2OSwg IXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3MAotKyAgJTM5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3MAotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxh YmVsICU0MCwgIWRiZyAhMjA3MQotIAotIDsgPGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEwMDM5LDcgKzEwMDM5LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxMyB0byBpOCosICFkYmcgITIwNzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGkz MiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDczLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSAlMTQpLCAhZGJnICEyMDc0Ci0rICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy ICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDc0 Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICEyMDc1Ci0gCi0gOyA8 bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0g JTQwCi1AQCAtMTAwNDcsNyArMTAwNDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAg JTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMjA3 NwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJn ICEyMDc3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWdu IDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzcs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITIwNzgKLSsgICU0 OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKSBhbGlnbiAxICUxNiksICFkYmcgITIwNzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBs YWJlbCAlNTAsICFkYmcgITIwNzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0xMDA1NSw3ICsxMDA1NSw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEyMDgxCi0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODEKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBp MzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEgJTE4KSwgIWRiZyAhMjA4MgotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAz MiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4 MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAhMjA4MwotIAotIDsg PGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICU1MAotQEAgLTEwMDYzLDcgKzEwMDYzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAg ICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxOSB0byBpOCosICFkYmcgITIw ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMjA4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGln biAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDg1 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotKyAg JTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxICUyMCksICFkYmcgITIwODYKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAh MjA4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC0x MDA3Miw3ICsxMDA3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMDg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEy MDg4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEw MDk4LDcgKzEwMDk4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIwOTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIw OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAx MjQsNyArMTAxMjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjEwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEw NiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE1 MCw3ICsxMDE1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTE1 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTc2 LDcgKzEwMTc2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjQg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMDIs NyArMTAyMDIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjEzMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMyB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIyOCw3 ICsxMDIyOCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTQyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQyIHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjU0LDcg KzEwMjU0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQ djEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLWRpZmYgLS1naXQg YS9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbCBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0Lmxs Ci1pbmRleCAzOWEyZGQ4YmUuLjM3NWQwMWJlZCAxMDA2NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0 aW5zLWNtLTY0LmxsCi0rKysgYi9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbAotQEAgLTU1Nyw3 ICs1NTcsNyBAQCAkX1pOMTNWYXJ5aW5nV3JpdGVyMTJXcml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29t ZGF0IGFueQotIEAuc3RyLjEwID0gcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzggeCBp OF0gYyIlMDE2bGxYXDAwIiwgYWxpZ24gMQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRl cm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4 dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAg LTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIGRlY2xhcmUgPDEgeCBp OD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpOC52MWk4LmkxNig8MSB4IGk4PiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFs IDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBp OD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAg JTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4s IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtNjgwLDcgKzY4 MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZy ZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBp OD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFs bG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTgxOCw3ICs4MTgsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9f Y1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMy IHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtODY0LDcgKzg2NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19jUzFf UzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2Mo aTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkg IzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTg5MCw3ICs4OTAsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZp bmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIx X2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLUBAIC05MDQsNyArOTA0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+ LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIy X2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBp OD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBA IC05MTgsNyArOTE4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC05MzIsNyArOTMyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfY1NfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8 OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4 Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBp OD4sIGFsaWduIDgKLUBAIC05NDYsNyArOTQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1Nf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4 IGk4PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBh bGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGln biAxNgotQEAgLTk2MCw3ICs5NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHgg aTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4Pikg IzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIK LUBAIC05NzQsNyArOTc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4 dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNp Z25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0g YWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDU4LDcgKzEwNTgsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNN dmJUX19zUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMTY+IEBsbHZtLmdlbngucmRyZWdpb25p LnYxaTE2LnYxaTE2LmkxNig8MSB4IGkxNj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4 IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2Pikg IzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8 MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAg LTEwNzQsNyArMTA3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwy IHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAg JTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTExNDMsNyAr MTE0Myw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2Pikg IzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxv Y2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgK LSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTEzNTAsNyArMTM1MCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlM aTE2RUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGln biA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNDE5LDcgKzE0 MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9k aXZyZW1JTGkzMkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsK LStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwg YWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1LDcgKzE0NDUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNp Z25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkx NiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8 MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0xNDU5LDcgKzE0NTksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBA IC0xNDczLDcgKzE0NzMsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8 NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xNDg3LDcg KzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4p ICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLSAgICUzID0gYWxs b2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24g MTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0xNTAxLDcgKzE1MDEs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAj MTEgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0gICAlMyA9 IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2Piwg YWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMTUxNSw3 ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHgg aTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewot ICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4 IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAg LTE1MjksNyArMTUyOSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50 ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTczMCw3ICsxNzMwLDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkxRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTMyPiBAbGx2bS5nZW54 LnJkcmVnaW9uaS52MWkzMi52MWkzMi5pMTYoPDEgeCBpMzI+LCBpMzIsIGkzMiwgaTMyLCBpMTYs IGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTE3NDYsNyArMTc0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8 MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4 Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2Rl dGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMy PiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBA IC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFp bHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+ LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewot K2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIs IGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzAy LDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3MTYsNyArMjcxNiw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9p U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxv Y2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMjczMCw3ICsyNzMwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8 MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNzQ0LDcgKzI3NDQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMy PiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgot ICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBp MzI+LCBhbGlnbiAzMgotQEAgLTI3NTgsNyArMjc1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDgg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwx NiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHgg aTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC0yNzcyLDcgKzI3NzIsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18o PDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjc4Niw3ICsyNzg2LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4 dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBA IC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEg eCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NjAsNyArMjg2MCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2Rl ZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxv Y2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0yOTA2LDcgKzI5MDYsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19o UzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0 IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4s IDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotQEAgLTMwNDQsNyArMzA0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9a TjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMy IHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4 PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24g MzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg emVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4 IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMTYsNyArMzExNiw3IEBAIGRlZmluZSBk c29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHpl cm9leHQsIGk4IHplcm9lCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJu YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4 IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQot ICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICszMTMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8 MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAj MjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwy IHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTMx NDQsNyArMzE0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMTU4LDcgKzMxNTgsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hT Xyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxp Z24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4 IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3Miw3ICszMTcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+ LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+ LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0g ICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBp OD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3ICszMTg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+ LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJf aFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi1AQCAtMzIwMCw3ICszMjAwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVy b2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAj MjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFs aWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyNzgsNyArMzI3 OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTFFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIy IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9j YSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzI5NCw3ICszMjk0LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2Rl ZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHgg aTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zMzYwLDcgKzMzNjAsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJD TXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGlu dGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNf KDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBh bGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM1NTgsNyArMzU1OCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRf X3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVy bmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18o PDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBh bGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNjI0LDcgKzM2MjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1 MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9l eHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAl NCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24g MgotQEAgLTM2NTAsNyArMzY1MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkx Nj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMy MiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAt MzY2NCw3ICszNjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIg eCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAg ICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zNjc4LDcg KzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4p ICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWdu IDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM2OTIsNyArMzY5Miw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsK LStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8 OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0g ICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMzcwNiw3ICszNzA2LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsK LStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcgewotICAgJTMgPSBhbGxv Y2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWdu IDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAgLTM3MjAsNyArMzcy MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4p ICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUz ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+ LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNzM0 LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFs IGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotICAg JTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM4OTIsNyArMzg5Miw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFF RUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZp bmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBh bGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzkwOCw3ICszOTA4LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pT Xyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8 MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxp Z24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8 MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00MDU0LDcgKzQwNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9falMx X1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMy PiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot ICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBp MzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIsNyArNDQ5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYg eCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2pTMV9T MV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NjM4LDcgKzQ2MzgsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNN dmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamoo aTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwx IHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY3OCw3 ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+ KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00NjkyLDcgKzQ2OTIs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot ICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ3MDYsNyArNDcwNiw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4 IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtNDcyMCw3ICs0NzIwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0 Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTQ3MzQsNyArNDczNCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMx OSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0g YWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwg YWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NzQ4 LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19w cmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUg ewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2 NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0gICAlOCA9IGFsbG9jYSBpOCosIGFs aWduIDgKLSAgICU5ID0gYWxsb2NhIGk4KiwgYWxpZ24gOAotICAgJTEwID0gYWxsb2NhIGkzMiwg YWxpZ24gNAotQEAgLTUwNzAsNyArNTA3MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19k b19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0g ICAlNjcgPSBsb2FkIGk2NCwgaTY0KiAlMTMsIGFsaWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5 Ci0gICAlNjggPSBsb2FkIDw1IHggaTMyPiwgPDUgeCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJn ICExNjAsICF0YmFhICE3Ci0gICBjYWxsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBL aml5dTJDTXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMjMsIGk2NCogZGVyZWZlcmVuY2Vh YmxlKDgpICUxOSwgaTMyKiogZGVyZWZlcmVuY2VhYmxlKDgpICUxNCwgaTMyICU2NiwgaTY0ICU2 NywgPDUgeCBpMzI+ICU2OCksICFkYmcgITE2MQotLSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiAlMjMpLCAhZGJnICExNjIKLSsgICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIK LSAgIGJyIGxhYmVsICU3MCwgIWRiZyAhMTYzCi0gCi0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTYwCi1AQCAtNTE4OCw3ICs1MTg4 LDcgQEAgZGVmaW5lIGludGVybmFsIDw1IHggaTMyPiBAX1oxN2dldF9hdXhpbGlhcnlfc3Rydigp ICMyOCBjb21kYXQgIWRiZyAhMTc4IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlz aW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAj MjUgY29tZGF0ICFkYmcgITE5MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5 MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVu aWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRl ciwgYWxpZ24gMzIKLUBAIC01MTk3LDcgKzUxOTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5 aQotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcg ITE5NgotICAgJTkgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITE5NgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlOCwgaTgqIGFsaWduIDMyICU5LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAh dGJhYS5zdHJ1Y3QgITE5NwotLSAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VU XyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUp LCAhZGJnICExOTgKLSsgICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dp dGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTgg c2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiAlNSksICFkYmcgITE5OAotICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxh YmVsICUxMSwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjExOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC01MjA1LDcgKzUyMDUsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyMTNWYXJ5aQotICAgJTEzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTYgdG8gaTgqLCAhZGJnICEyMDEKLSAgICUxNCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUyIHRvIGk4KiwgIWRiZyAhMjAxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAw aTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUxMywgaTgqIGFsaWduIDMyICUxNCwgaTY0IDY0LCBp MSBmYWxzZSksICFkYmcgITIwMSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotICAg YnIgbGFiZWwgJTE2LCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMTEsICUzCi1AQCAtNTI4MCw3ICs1Mjgw LDcgQEAgZGVmaW5lIGludGVybmFsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBLaml5 dTJDTXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAj MjkgIWRiZyAhMjM2IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAh ZGJnICEyMzYgewotICAgcmV0IGkzMiAtMSwgIWRiZyAhMjM3Ci0gfQotIAotQEAgLTg4NzAsNyAr ODg3MCw3IEBAIGRlY2xhcmUgZHNvX2xvY2FsIHZvaWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJp bnNpY19pbXBsX3N2bV9zY2F0dGVyX3dyaXRlSWlMaTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdl bnguc3ZtLnNjYXR0ZXIudjFpMS52MWk2NC52MWkzMig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4s IDwxIHggaTMyPikgIzI3Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdF VF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUg Y29tZGF0ICFkYmcgITE2NDUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBh bGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiwgYWxpZ24gMQotQEAgLTg4NzksNyArODg3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdy aXRlCi0gICAlNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRi ZyAhMTY0NwotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NDcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCog YWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NDcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJn ICExNjQ4Ci0gICByZXQgaTEgJTksICFkYmcgITE2NDkKLSB9Ci0gCi1AQCAtODg4Nyw3ICs4ODg3 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVu Y29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUKLSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIG5vY2FwdHVyZSB3cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVh ZG9ubHksIGk2NCwgaTEpICMzMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUz ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRl ciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIsIGFsaWduIDEKLUBAIC04ODk2LDEyICs4ODk2LDEyIEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFy eWluZ1dyaXRlCi0gICAlNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4 KiwgIWRiZyAhMTY1MgotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITE2NTIKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITE2NTIsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4 IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUp LCAhZGJnICExNjUzCi0gICByZXQgaTEgJTksICFkYmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE2NTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotICAgJTQgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAz MgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwg YWxpZ24gMQotQEAgLTg5MjQsNyArODkyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0g ICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2 NTcKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMTY1NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJl bCAlMjUsICFkYmcgITE2NTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTg5MzIsNyArODkzMiw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlNyB0byBpOCosICFkYmcgITE2NjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4 KSwgIWRiZyAhMTY2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkx ICUyOSwgbGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04 OTQwLDcgKzg5NDAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTkgdG8gaTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBpOCog YWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0 ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUx MCksICFkYmcgITE2NjYKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcg ITE2NjcKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlMzAKLUBAIC04OTQ4LDcgKzg5NDgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4 KiwgIWRiZyAhMTY2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExNjY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTY0IDY0LCBpMSBmYWxzZSks ICFkYmcgITE2NjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcg ITE2NzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwg bGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITE2NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC04OTU2LDcg Kzg5NTYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWdu IDMyICU0MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcgITE2NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCks ICFkYmcgITE2NzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2 NzUKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlNDAKLUBAIC04OTY0LDcgKzg5NjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE1IHRvIGk4Kiwg IWRiZyAhMTY3NwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExNjc3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQo aTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITE2NzcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2 NzgKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFi ZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITE2NzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC04OTcyLDcgKzg5 NzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMy ICU1MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxICUxOCksICFkYmcgITE2ODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFk YmcgITE2ODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMK LSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlNTAKLUBAIC04OTgwLDcgKzg5ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRi ZyAhMTY4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgq IGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcg ITE2ODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1 NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2 Ci0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAh ZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwot QEAgLTg5ODksNyArODk4OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICExNjg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNjg4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAg LTkwMTUsNyArOTAxNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNjk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEx Njk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkw NDEsNyArOTA0MSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNzA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNjcs NyArOTA2Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwOTMsNyAr OTA5Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNzI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMTksNyArOTEx OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNzMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNDUsNyArOTE0NSw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzQyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNzEsNyArOTE3MSw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWQxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTc1MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBh bGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBp OCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAwMTMsNyArMTAwMTMsNyBA QCBkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVfb2NsSVB2 RUVOU18xOFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA2MSB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjA2MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFs bG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAt MTAwMzYsNyArMTAwMzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIyID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJnICEyMDYzCi0gICAlMjMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjMKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTIyLCBp OCogYWxpZ24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2MywgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNjQKLSsgICUyNCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEg JTYpLCAhZGJnICEyMDY0Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJn ICEyMDY1Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTMKLUBAIC0xMDA0NCw3ICsxMDA0NCw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNyB0byBp OCosICFkYmcgITIwNjcKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMjA2NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICEyMDY3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAh MjA2OAotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjgKLSAgIGJyIGkxICUyOSwgbGFi ZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITIwNjkKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDA1Miw3ICsx MDA1Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNzEKLSAgICUzMyA9IGJpdGNhc3Qg JWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3MQotICAgY2FsbCB2b2lk IEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAz MiAlMzMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDcxLCAhdGJhYS5zdHJ1Y3QgITE5Nwot LSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxICUxMCksICFkYmcgITIwNzIKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEwKSwgIWRi ZyAhMjA3MgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMjA3Mwot IAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICUzMAotQEAgLTEwMDYwLDcgKzEwMDYwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0 ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBpOCosICFk YmcgITIwNzUKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMjA3NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4 KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJn ICEyMDc1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUz NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDc2 Ci0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDc2Ci0gICBiciBpMSAlMzksIGxhYmVs ICU2MCwgbGFiZWwgJTQwLCAhZGJnICEyMDc3Ci0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwNjgsNyArMTAw NjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3OQotICAgJTQzID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc5Ci0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMy ICU0MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzksICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxICUxNCksICFkYmcgITIwODAKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNCksICFk YmcgITIwODAKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITIwODEK LSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlNDAKLUBAIC0xMDA3Niw3ICsxMDA3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8gaTgqLCAh ZGJnICEyMDgzCi0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBp OCosICFkYmcgITIwODMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChp OCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMjA4MywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl NDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA4 NAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA4NAotICAgYnIgaTEgJTQ5LCBsYWJl bCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMjA4NQotIAotIDsgPGxhYmVsPjo1MDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDg0LDcgKzEw MDg0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODcKLSAgICU1MyA9IGJpdGNhc3Qg JWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4NwotICAgY2FsbCB2b2lk IEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAz MiAlNTMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDg3LCAhdGJhYS5zdHJ1Y3QgITE5Nwot LSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICEyMDg4Ci0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTgpLCAh ZGJnICEyMDg4Ci0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEyMDg5 Ci0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTUwCi1AQCAtMTAwOTIsNyArMTAwOTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRvIGk4Kiwg IWRiZyAhMjA5MQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8g aTgqLCAhZGJnICEyMDkxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQo aTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITIwOTEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICEy MDkyCi0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA5MgotICAgYnIgbGFiZWwgJTYw LCAhZGJnICEyMDg5Ci0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAl MwotQEAgLTEwMTAxLDcgKzEwMTAxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwOTQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIwOTQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAxMjcsNyArMTAxMjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEwMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjEwMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDE1Myw3ICsxMDE1Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTEyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTEyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMTc5LDcgKzEwMTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMjEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAyMDUsNyArMTAyMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjEzMCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC0xMDIzMSw3ICsxMDIzMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMTM5IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMTM5IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAg LTEwMjU3LDcgKzEwMjU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIxNDggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIxNDggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt MTAyODMsNyArMTAyODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIxNTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMTU3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9pc3BjL3RlbXBsYXRlIGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCmlu ZGV4IDljM2FjYjQyYTljZi4uNjhmZWQ1YTRjNjU5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lzcGMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdpc3BjJwogcGtnbmFtZT1pc3BjCi12ZXJzaW9uPTEuMTUuMAot cmV2aXNpb249MgordmVyc2lvbj0xLjE3LjAKK3JldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIgog YnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURB Uk1fRU5BQkxFRD1PRkYiCitjb25maWd1cmVfYXJncz0iLURJU1BDX05PX0RVTVBTPU9OIC1EQVJN X0VOQUJMRUQ9T0ZGIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIgogaG9zdG1ha2VkZXBlbmRz PSJjbGFuZyBjbGFuZy10b29scy1leHRyYSBweXRob24zIG00IGJpc29uIGZsZXggbGx2bSIKIG1h a2VkZXBlbmRzPSJuY3Vyc2VzLWRldmVsIG5jdXJzZXMtbGlidGluZm8tZGV2ZWwgemxpYi1kZXZl bCIKIHNob3J0X2Rlc2M9IkNvbXBpbGVyIGZvciBoaWdoLXBlcmZvcm1hbmNlIFNJTUQgcHJvZ3Jh bW1pbmcgb24gdGhlIENQVSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iQW5kcmVhIEJy YW5jYWxlb25pIDxhYmNAcG9tcGVsLm1lPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVw YWdlPSJodHRwczovL2lzcGMuZ2l0aHViLmlvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5j b20vaXNwYy9pc3BjL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MjY1OGZm MDBkYzA0NWFjOWZjZWZiZjZiZDI2ZGZmYWY3MjNiMDU5YTk0MmEyN2RmOTFiYmI2MWJjNTAzYTI4 NQorY2hlY2tzdW09MzdmYjEwNTVkNmM2YjIzMmUxMTJkOGQ1MDE0NWQ3MjY4MjRlZDRkOGRhOTNh NzM5NjMxNWRjZWJhNmM3NmU2Mgogbm9jcm9zcz15ZXMKIG5vcGllPXllcwogCg== --===============9203997984090032047==--