From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 2577 invoked from network); 25 May 2022 01:22:31 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 May 2022 01:22:31 -0000 Content-Type: multipart/mixed; boundary="===============7042650374300135509==" 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, 25 May 2022 03:22:30 +0200 List-Id: Message-ID: <20220525012230.DOUYDWpvqePYTYaKPd5WouX5kAZY-Yv4M8G2d2Ipgz0@z> GitHub notification mails are now in MIME to allow UTF8. --===============7042650374300135509== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHJleiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcHJlei92 b2lkLXBhY2thZ2VzIGxsdm0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM2OTYyCgpMbHZtMTQKU3VwZXJzZWRlcyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjksIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDgwMCAtIHRoYW5rIHlvdSBAbW90b3J0byBhbmQg QERCTG91aXMuDQoNClVwZGF0ZWQgcGF0Y2hlcywgcGluZyBAcTY2IC4NCg0KW2NpIHNraXBdCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMzY5NjIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============7042650374300135509== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm-36962.patch" RnJvbSBkYjNiNWM5YWI1NDI4MTIyMDdhNmViM2EzNzY4ZGEyOGU5MjZhNmNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yNl0gTmV3IHBhY2thZ2U6IGxsdm0xNC0xNC4wLjMKCi0tLQogY29tbW9uL3NobGlicyAgICAg 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 cwppbmRleCAwNTgxMDk2NjQ2NTguLjBjYTVkN2Q1ZDZmOSAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzMsMTEgKzk3MywxMiBAQCBsaWJ1Y2hhcmRl dC5zby4wIHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtz b3VyY2V2aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVz ZS5zby4yIGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJj bGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5n LWNwcC0xMi4wLjBfMQorbGlibGxkYi5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJjbGFuZy5zby4x NCBsaWJjbGFuZy0xNC4wLjNfMQorbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQogbGliaXNv ZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8x CiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKQEAgLTQxNzAsMyArNDE3MSwxMiBAQCBs aWJUaHJlYWQuc28gcm9vdC02LjI0LjA2XzEKIGxpYlRNVkEuc28gcm9vdC02LjI0LjA2XzEKIGxp Yk1hdGhDb3JlLnNvIHJvb3QtNi4yNC4wNl8xCiBsaWJsb3dkb3duLnNvIGxvd2Rvd24tMC4xMS4y XzEKK2xpYm9tcC5zbyBsaWJvbXAtMTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwuYW1kZ3B1LnNv IGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0LnJ0bC5jdWRhLnNvIGxpYm9tcC0xNC4wLjNf MQorbGlib21wdGFyZ2V0LnJ0bC54ODZfNjQuc28gbGlib21wLTE0LjAuM18xCitsaWJhcmNoZXIu c28gbGlib21wLTE0LjAuM18xCitsaWJvbXB0YXJnZXQuc28gbGlib21wLTE0LjAuM18xCitsaWJs bGRiSW50ZWxGZWF0dXJlcy5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJMVE8uc28uMTQgbGx2bTE0 LTE0LjAuM18xCitsaWJSZW1hcmtzLnNvLjE0IGxsdm0xNC0xNC4wLjNfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jbGFuZyBiL3NyY3BrZ3MvY2xhbmcKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3 NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmcKKysrIGIvc3JjcGtncy9jbGFuZwpAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy1hbmFseXpl ciBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMy YTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKKysrIGIvc3JjcGtncy9jbGFu Zy1hbmFseXplcgpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jbGFuZy10b29scy1leHRyYSBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKaW5kZXggY2Q2 MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctdG9vbHMt ZXh0cmEKKysrIGIvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQpAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZyBiL3NyY3BrZ3MvbGliY2xhbmcK aW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGli Y2xhbmcKKysrIGIvc3JjcGtncy9saWJjbGFuZwpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZy1jcHAgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcApp bmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJj bGFuZy1jcHAKKysrIGIvc3JjcGtncy9saWJjbGFuZy1jcHAKQEAgLTEgKzEgQEAKLWxsdm0xMgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4IGIvc3JjcGtncy9saWJjeHgKaW5kZXgg Y2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4Cisr KyBiL3NyY3BrZ3MvbGliY3h4CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmN4eC1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4LWRldmVsCmluZGV4IGNkNjBm ZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmN4eC1kZXZlbAor KysgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJjeHhhYmkgYi9zcmNwa2dzL2xpYmN4eGFiaQppbmRleCBjZDYw ZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHhhYmkKKysr IGIvc3JjcGtncy9saWJjeHhhYmkKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsIGIvc3JjcGtncy9saWJjeHhhYmktZGV2ZWwKaW5k ZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4 YWJpLWRldmVsCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmxsdm0xNCBiL3NyY3BrZ3MvbGlibGx2 bTE0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMWQ0MmVkNzYzMmE2 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJsbHZtMTQKQEAgLTAsMCArMSBAQAorbGx2 bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJv bXAgYi9zcmNwa2dzL2xpYm9tcAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAw MDAKLS0tIGEvc3JjcGtncy9saWJvbXAKKysrIGIvc3JjcGtncy9saWJvbXAKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlib21wLWRldmVsIGIvc3JjcGtn cy9saWJvbXAtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0t LSBhL3NyY3BrZ3MvbGlib21wLWRldmVsCisrKyBiL3NyY3BrZ3MvbGlib21wLWRldmVsCkBAIC0x ICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZCBiL3NyY3BrZ3Mv bGxkCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dz L2xsZAorKysgYi9zcmNwa2dzL2xsZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbGQtZGV2ZWwgYi9zcmNwa2dzL2xsZC1kZXZlbAppbmRleCBjZDYwZmQ3 YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGQtZGV2ZWwKKysrIGIv c3JjcGtncy9sbGQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGxkYiBiL3NyY3BrZ3MvbGxkYgppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2 MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiCisrKyBiL3NyY3BrZ3MvbGxkYgpAQCAtMSAr MSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGRiLWRldmVsIGIvc3Jj cGtncy9sbGRiLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xsZGItZGV2ZWwKKysrIGIvc3JjcGtncy9sbGRiLWRldmVsCkBAIC0xICsx IEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kIGIv c3JjcGtncy9sbHZtLWxpYnVud2luZAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVud2luZAorKysgYi9zcmNwa2dzL2xsdm0tbGli dW53aW5kCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCits bHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0tbGlidW53aW5kLWRldmVsIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbAppbmRleCBj ZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVu d2luZC1kZXZlbAorKysgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCkBAIC0xICsxIEBA Ci1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5n LTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFu Zy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjdiNjQwZTEwMmJlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKQEAgLTAsMCArMSwx MTAgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCisrKysgYi9j bGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorQEAgLTIwODMsNyArMjA4Myw4IEBA IHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0ND UHJlZml4ZXMoCisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7 ImFybS1saW51eC1nbnVlYWJpaGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJhcm12N2hsLXJlZGhhdC1saW51eC1nbnVlYWJpIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdu dWVhYmkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVl YWJpaGYifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsi L2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJh cm1lYi1saW51eC1nbnVlYWJpIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJI RlRyaXBsZXNbXSA9IHsKK0BAIC0yMTUxLDggKzIxNTIsNyBAQCB2b2lkIEdlbmVyaWNfR0NDOjpH Q0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgICAgICJw b3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhzcGUifTsKKyAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwgIi9s aWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNbXSA9IHsicG93 ZXJwY2xlLWxpbnV4LWdudSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1tdXNsIn07Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS11 bmtub3duLWxpbnV4LWdudSJ9OworCisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRM aWJEaXJzW10gPSB7Ii9saWI2NCIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDNjRUcmlwbGVzW10gPSB7CitAQCAtMjIzMSw2ICsyMjMxLDg3IEBAIHZvaWQgR2VuZXJp Y19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisg ICAgIHJldHVybjsKKyAgIH0KKworKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNo NjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNs VHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1s aW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg QVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVz bCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsi aTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVz bFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4 LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNs aGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxl c1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0 LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNs VHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAo VGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2 NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRN dXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJE aXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwor KyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxl cyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBs bHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJz KSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25t ZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlh c2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMp KTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o QVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0 TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJE aXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5k KGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Cisr ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZf NjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2 XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsK KysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVn aW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGly cy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBl bmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlw bGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMp LCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAg ICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2 NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBD NjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBD TEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykp OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlm IChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJj aFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVy bjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGlu dXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkg eworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10g PSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1k eW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0w MDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjQ3MTI4YWY3OWI3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0 Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xp bnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAg LTQ5MCwxMCArNDkwLDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29u c3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAg IGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGli NjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhB cmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsK KyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOwor ICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0w MDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmct MDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDgg QEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIv QmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAg ICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAg fSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7 CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkg PSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0 OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAi ZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NP cGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0g TG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZv LmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5 ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRU YXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJn ZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJp cGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJ S2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFy Z2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FC SUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJ KCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYx OworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29m dCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIv VG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9D bGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0 QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0 VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsK KyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRP U01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwg VC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0g ICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6 CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBh dGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQt bXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxMzVi ZmQ0NDg2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGls ZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorLS0tIGEv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAorKysr IGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAor QEAgLTc0LDYgKzc0LDEwIEBACisgI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisgI2VuZGlmCisK KysjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18pCisrI2luY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5J VElaRVJfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4KKyAjZW5kaWYKKy0t LSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAorQEAgLTkyLDcgKzkyLDcgQEAKKyAj IGluY2x1ZGUgPHV0aW1lLmg+CisgIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisgIyAgICBpZiBk ZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKKy0gICAgICAgIGRlZmluZWQoX19oZXhhZ29uX18pIHx8IFNBTklUSVpFUl9SSVND VjY0CisrICAgICAgICBkZWZpbmVkKF9faGV4YWdvbl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19f KSB8fCBTQU5JVElaRVJfUklTQ1Y2NAorICMgICAgICBpbmNsdWRlIDxhc20vcHRyYWNlLmg+Cisg IyAgICAgIGlmZGVmIF9fYXJtX18KKyB0eXBlZGVmIHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnBy ZWdzZXRfdDsKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXpl cl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9z YW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAK K0BAIC0zMSw3ICszMSw3IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QK KyAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3IgaW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8v IGZvciBOVF9QUlNUQVRVUworLSNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVS X1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5J VElaRVJfQU5EUk9JRAorIC8vIEdMSUJDIDIuMjArIHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUg YXNtL3B0cmFjZS5oCisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNs LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBj ODk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1y dC14cmF5LXBwYzY0LW11c2wucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXIt cnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCisrKysgYi9jb21waWxlci1ydC9saWIveHJh eS94cmF5X3Bvd2VycGM2NC5pbmMKK0BAIC0xMiw3ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxj c3RkaW50PgorICNpbmNsdWRlIDxtdXRleD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUg PHN5cy9wbGF0Zm9ybS9wcGMuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1 ZGUgPGNzdHJpbmc+CisrI2luY2x1ZGUgPGNzdGRsaWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUg InhyYXlfZGVmcy5oIgorIAorQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsK KyAKKyBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05F VkVSX0lOU1RSVU1FTlQgeworICAgQ1BVID0gMDsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1 cm4gX19wcGNfZ2V0X3RpbWViYXNlKCk7CisrI2Vsc2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBj X2dldF90aW1lYmFzZSgpOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFND RnJlcXVlbmN5KCkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4 IE07CisgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9f R0xJQkNfXworICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysg IC8qIEZJWE1FOiBhIGxlc3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCisrICBzdGF0aWMgdWlu dDY0X3QgYmFzZTsKKysgIGlmICghYmFzZSkgeworKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9j L2NwdWluZm8iLCAicmIiKTsKKysgICAgaWYgKGYpIHsKKysgICAgICBzc2l6ZV90IG5yOworKyAg ICAgIC8qIHZpcnR1YWxseSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCisr ICAgICAgY2hhciBidWZbNTEyXTsKKysgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVm KSwgZikpIHsKKysgICAgICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOwor KyAgICAgICAgaWYgKCFyZXQpIHsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9Cisr ICAgICAgICByZXQgKz0gc2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0 cmNocihyZXQsICc6Jyk7CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIs IDEwKTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIH0KKysgICAgICBmY2xvc2UoZik7CisrICAg IH0KKysgIH0KKysgIHJldHVybiBiYXNlOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBw cm9iZVJlcXVpcmVkQ1BVRmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTE0L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5iYmQzMWZmYzJjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBh L2xpYmN4eC9pbmNsdWRlL2xvY2FsZQorKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAt NzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9f YSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAg IGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19saW51eF9f KSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRv bGwoX19hLCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwg PSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Cisr I2VuZGlmCisgICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5v KT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50 X2Vycm5vID09IDApCisgICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgy LDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19h LCBjb25zdCBjaGFyKiBfX2FfZW5kLAorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5j ZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOworICAgICAgICAg ZXJybm8gPSAwOworICAgICAgICAgY2hhciAqX19wMjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18p ICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xs ID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQ UF9HRVRfQ19MT0NBTEUpOworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVy ZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAg ICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19z YXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBj LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAg KzEsMjIgQEAKK1RoaXMgZW5zdXJlcyBgaXNfaWVjNTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1 bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKK2luY2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0 IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Agb3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZp bmVkIG9uIGdjYy4KKworLS0tIGEvbGliY3h4L2luY2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgv aW5jbHVkZS9saW1pdHMKK0BAIC00MjYsOCArNDI2LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJ QkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWdu YWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4gX19idWlsdGluX25hbnNsKCIiKTt9CisgICAg IF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUg ZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fTERCTF9ERU5PUk1fTUlOX187fQorIAor LSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9N QVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RC TF9NQU5UX0RJR19fKQorKyAgICAvKiBJRUVFIDc1NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNp c2lvbiAqLworKyAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1 NTkgPSB0cnVlOworKyNlbHNlCisrICAgIC8qIDEyOC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8K KyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFs c2U7CisrI2VuZGlmCisgI2Vsc2UKKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNzAyOTJiZWIyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDEx IEBACistLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3Rz LnR4dAorQEAgLTc2OSw2ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFy aWVzIHRhcmdldCkKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRF IGF0b21pYykKKyAgIGVuZGlmKCkKKyAKKysjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0 YXJnZXR9IFBSSVZBVEUgc3NwX25vbnNoYXJlZCkKKysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30i KQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhh YmktZGwucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNo CkBAIC0wLDAgKzEsMjUgQEAKK0Fsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVk IHJlZmVyZW5jZXMuCisKKy0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBi L2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKK0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRp ZigpCisgCisgICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisr ICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkK KyAKKyBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtl TGlzdHMudHh0CisrKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEw IEBACisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQorICAg ZW5kaWYoKQorIAorKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIpCisrICAgIHRhcmdldF9saW5rX2xp YnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkKKysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJD WFhfSEFTX1JUX0xJQikKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklW QVRFIHJ0KQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9s bGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYwMWMwZDEzODUyMwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCkBA IC0wLDAgKzEsMzEgQEAKKy0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAorKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5o CitAQCAtMTAsMjEgKzEwLDEyIEBACisgLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXgg Zm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KKyAKKyAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCistI2lmZGVmIF9fQU5EUk9JRF9fCist I2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLXR5cGVkZWYg dW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OworLXR5cGVkZWYgZWxmX2dyZWdfdAorLSAgICBlbGZf Z3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdf dCkpXTsKKy10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsK Ky0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCist I2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKy0jaWZuZGVm IE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8v IE5UX0ZQUkVHU0VUCistI2VuZGlmCistI2Vsc2UgLy8gX19BTkRST0lEX18KKysjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNkZWZpbmUgcHRfcmVncyBt dXNsX3B0X3JlZ3MKKysjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorKyN1bmRlZiBwdF9yZWdzCisr I2Vsc2UKKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorLSNlbmRpZiAvLyBfX0FORFJPSURfXwor KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjJhM2Y4ZDYyODEzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCkBA IC0wLDAgKzEsNTcgQEAKK0Zyb20gZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5 YWM0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8 bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAor U3ViamVjdDogW1BBVENIIDMvM10gbXVzbAorCistLS0KKyBpbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCB8IDkgKysrKysrKysrCisgbGliL1N1cHBvcnQvRHluYW1pY0xp YnJhcnkuY3BwICAgICAgICAgICAgfCAyICstCisgbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmlu YyAgICAgICAgICAgICAgfCA2ICsrKy0tLQorIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3Jj L2d0ZXN0LmNjICAgIHwgMSArCisgNSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1Rhcmdl dExpYnJhcnlJbmZvLmggYi9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8u aAoraW5kZXggMzRhOGExZTMuLjEyMTRlY2U1IDEwMDY0NAorLS0tIGEvbGx2bS9pbmNsdWRlL2xs dm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAorKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0v QW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAorQEAgLTE4LDYgKzE4LDE1IEBACisgI2luY2x1 ZGUgImxsdm0vSVIvUGFzc01hbmFnZXIuaCIKKyAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCisgCisr I3VuZGVmIGZvcGVuNjQKKysjdW5kZWYgZnNlZWtvNjQKKysjdW5kZWYgZnN0YXQ2NAorKyN1bmRl ZiBmc3RhdHZmczY0CisrI3VuZGVmIGZ0ZWxsbzY0CisrI3VuZGVmIGxzdGF0NjQKKysjdW5kZWYg c3RhdDY0CisrI3VuZGVmIHRtcGZpbGU2NAorKworIG5hbWVzcGFjZSBsbHZtIHsKKyB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4gY2xhc3MgQXJyYXlSZWY7CisgY2xhc3MgVHJpcGxlOworZGlmZiAtLWdp dCBhL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5p eC9EeW5hbWljTGlicmFyeS5pbmMKK2luZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKKy0t LSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKKysrKyBiL2xsdm0v bGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKK0BAIC0xMDIsNyArMTAyLDcgQEAg c3RhdGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKKyAKKyAvLyBU aGlzIG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBz eW1ib2wKKyAjZGVmaW5lIEVYUExJQ0lUX1NZTUJPTChTWU0pIFwKKy0gICBpZiAoIXN0cmNtcChT eW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0KKysgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1l LCAjU1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQorIAorIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUg YSB3ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKKyAv LyBtYWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWly ZW1lbnRzLiBTbywgd2UKK2RpZmYgLS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3Ny Yy9ndGVzdC5jYyBiL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitpbmRl eCBkODgyYWIyZS4uZjFmYjEyZDAgMTAwNjQ0CistLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dv b2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCisrKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjCitAQCAtMTI4LDYgKzEyOCw3IEBACisgCisgI2lmIEdURVNUX0NBTl9T VFJFQU1fUkVTVUxUU18KKyAjIGluY2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCisrIyBp bmNsdWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUgPG5ldGRiLmg+ICAv LyBOT0xJTlQKKyAjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+ICAvLyBOT0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjAwNzFkOTY0YmQzNwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApAQCAt MCwwICsxLDMwIEBACitUaGlzIHBhdGNoZXMgTExWTSB0byB1c2UgRUxGdjIgb24gcHBjNjQgdW5j b25kaXRpb25hbGx5IHVubGVzcyBvdmVycmlkZGVuLiBXZQorbmVlZCB0aGlzIGJlY2F1c2UgdW5s aWtlIG1vc3QgZGlzdHJvcyB3ZSB1c2UgRUxGdjIgZm9yIGJvdGggZ2xpYmMgYW5kIG11c2wKK29u IGJpZyBlbmRpYW4gcHBjNjQuCisKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBD VGFyZ2V0TWFjaGluZS5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5j cHAKK2luZGV4IDA2MzQ4MzNlLi5iN2NiYzJlNyAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorQEAgLTIyMiw5ICsyMjIsOCBAQCBzdGF0aWMgUFBD VGFyZ2V0TWFjaGluZTo6UFBDQUJJIGNvbXB1dGVUYXJnZXRBQkkoY29uc3QgVHJpcGxlICZUVCwK KyAKKyAgIHN3aXRjaCAoVFQuZ2V0QXJjaCgpKSB7CisgICBjYXNlIFRyaXBsZTo6cHBjNjRsZToK Ky0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7CisgICBjYXNlIFRy aXBsZTo6cHBjNjQ6CistICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYx OworKyAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGRlZmF1 bHQ6CisgICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX1VOS05PV047CisgICB9 CitkaWZmIC0tZ2l0IGEvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbCBiL3Rl c3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKK2luZGV4IDhiMWNmNmI1Li4yOTZh MmFmYSAxMDA2NDQKKy0tLSBhL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFi aS5sbAorKysrIGIvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitA QCAtMSw0ICsxLDUgQEAKKy07IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBs ZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2st cHJlZml4PUNIRUNLLUVMRnYxCisrOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10 cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNo ZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJz IC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LW11c2wgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IC10YXJnZXQtYWJpIGVs ZnYxIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorIDsgUlVO OiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxp bnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MiA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVm aXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBs ZT1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVj ay1wcmVmaXg9Q0hFQ0stRUxGdjIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2 bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmI1ZDE1OTc0Mzc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApAQCAtMCwwICsxLDExIEBACist LS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCisrKysgYi9sbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCitAQCAtMTY1LDcgKzE2NSw3IEBA IHZvaWQgUFBDU3VidGFyZ2V0Ojppbml0U3VidGFyZ2V0RmVhdHVyZXMoU3RyaW5nUmVmIENQVSwg U3RyaW5nUmVmIEZTKSB7CisgCisgICBpZiAoKFRhcmdldFRyaXBsZS5pc09TRnJlZUJTRCgpICYm IFRhcmdldFRyaXBsZS5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorICAgICAgIFRhcmdl dFRyaXBsZS5pc09TTmV0QlNEKCkgfHwgVGFyZ2V0VHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwKKy0g ICAgICBUYXJnZXRUcmlwbGUuaXNNdXNsKCkpCisrICAgICAgaXNUYXJnZXRMaW51eCgpKQorICAg ICBTZWN1cmVQbHQgPSB0cnVlOworIAorICAgaWYgKEhhc1NQRSAmJiBJc1BQQzY0KQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gg Yi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxZDBlNGIzMWIzMgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0 LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoZSBv cHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9ybXMgY2FuCitkZWFsIHdpdGggLU8z LgorCistLS0gYS9sbHZtL0NNYWtlTGlzdHMudHh0CisrKysgYi9sbHZtL0NNYWtlTGlzdHMudHh0 CitAQCAtOTE4LDYgKzkxOCwxMiBAQCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFLRV9DWFhfQ09N UElMRVJfSUR9IiBNQVRDSEVTICJDbGFuZyIgKQorICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29w dGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiLU8yIikKKyBlbmRpZigpCisgCisr c2V0KFZPSURfQ1hYX09QVF9GTEFHUyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXphdGlvbiBsZXZl bCB0byB1c2UiKQorKworK2lmIChOT1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVRVUFMICIiKQor KyAgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNF ICItTzMiICIke1ZPSURfQ1hYX09QVF9GTEFHU30iKQorK2VuZGlmKCkKKysKKyAjIFB1dCB0aGlz IGJlZm9yZSB0YmxnZW4uIEVsc2Ugd2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVuY2UuCisgYWRk X3N1YmRpcmVjdG9yeShsaWIvRGVtYW5nbGUpCisgYWRkX3N1YmRpcmVjdG9yeShsaWIvU3VwcG9y dCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3Bp Yy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMzI2ODdiOWQ5Mgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJp Z3BpYy5wYXRjaApAQCAtMCwwICsxLDM2IEBACitGcm9tIGYzZGJkZDQ5YzA2YmZhZmMxZDYxMzgw OTRjZjQyODg5YzE0ZDM4YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW11ZWwg SG9sbGFuZCA8c2FtdWVsQHNob2xsYW5kLm9yZz4KK0RhdGU6IFN1biwgMyBOb3YgMjAxOSAxMDo1 NzoyNyAtMDYwMAorU3ViamVjdDogW1BBVENIXSBbTExWTV1bUG93ZXJQQ10gQXNzdW1lIEJpZ1BJ QyBpZiBubyBQSUMgbGV2ZWwgaXMgc3BlY2lmaWVkCisKKy0tLQorIGxsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwICB8IDIgKy0KKyBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENNQ0luc3RMb3dlci5jcHAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMv UFBDQXNtUHJpbnRlci5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAK K2luZGV4IGNjZTIxZjMyLi44N2NhNWY5YiAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9Q UENBc21QcmludGVyLmNwcAorQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFBQQ0FzbVByaW50ZXI6 OkVtaXRUbHNDYWxsKGNvbnN0IE1hY2hpbmVJbnN0ciAqTUksCisgCisgICAvLyBBZGQgMzI3Njgg b2Zmc2V0IHRvIHRoZSBzeW1ib2wgc28gd2UgZm9sbG93IHVwIHRoZSBsYXRlc3QgR09UL1BMVCBB QkkuCisgICBpZiAoS2luZCA9PSBNQ1N5bWJvbFJlZkV4cHI6OlZLX1BMVCAmJiBTdWJ0YXJnZXQt PmlzU2VjdXJlUGx0KCkgJiYKKy0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpC aWdQSUMpCisrICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMpCisg ICAgIFRsc1JlZiA9IE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKAorICAgICAgICAgVGxzUmVmLCBN Q0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBPdXRDb250ZXh0KSwgT3V0Q29udGV4dCk7Cisg ICBjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8gPSBNSS0+Z2V0T3BlcmFuZCgyKTsKK2RpZmYgLS1n aXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIGIvbGliL1RhcmdldC9Q b3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAoraW5kZXggNWNjMTgwZDcuLmE1YjAyNTY1IDEwMDY0 NAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCisrKysg Yi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKK0BAIC0xMTcsNyAr MTE3LDcgQEAgc3RhdGljIE1DT3BlcmFuZCBHZXRTeW1ib2xSZWYoY29uc3QgTWFjaGluZU9wZXJh bmQgJk1PLCBjb25zdCBNQ1N5bWJvbCAqU3ltYm9sLAorICAgY29uc3QgTUNFeHByICpFeHByID0g TUNTeW1ib2xSZWZFeHByOjpjcmVhdGUoU3ltYm9sLCBSZWZLaW5kLCBDdHgpOworICAgLy8gSWYg LW1zZWN1cmUtcGx0IC1mUElDLCBhZGQgMzI3NjggdG8gc3ltYm9sLgorICAgaWYgKFN1YnRhcmdl dC0+aXNTZWN1cmVQbHQoKSAmJiBUTS5pc1Bvc2l0aW9uSW5kZXBlbmRlbnQoKSAmJgorLSAgICAg IE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJQyAmJgorKyAgICAgIE0tPmdldFBJ Q0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElDICYmCisgICAgICAgTU8uZ2V0VGFyZ2V0Rmxh Z3MoKSA9PSBQUENJSTo6TU9fUExUKQorICAgICBFeHByID0KKyAgICAgICAgIE1DQmluYXJ5RXhw cjo6Y3JlYXRlQWRkKEV4cHIsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIEN0eCksIEN0 eCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQt bWZfZXhlYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1t Zl9leGVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAw YWJkMjE2NjY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZt LTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRml4IGZhaWx1cmVz IGluIEFsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Liogb24gYWFyY2g2NDoKKworICAg IEZhaWxpbmcgVGVzdHMgKDgpOgorICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBv cnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5BbGxvY0FuZFJlbGVhc2Uv MworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9u VGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5EdXBsaWNhdGVOZWFyLzMKKyAgICAgICAgTExWTS1Vbml0 IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRl c3QuRW5hYmxlZFdyaXRlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0 VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuTXVsdGlwbGVBbGxvY0FuZFJl bGVhc2UvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxv Y2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5TdWNjZXNzaXZlTmVhci8zCisgICAgICAgIExM Vk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRN ZW1vcnlUZXN0LlVuYWxpZ25lZE5lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8u L1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvTmVhci8z CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25U ZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9TaXplTmVhci8zCisKK1Vwc3RyZWFtLUlzc3VlOiBo dHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjc4I2MxMAorCistLS0gYS9s bHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5LmluYworKysrIGIvbGx2bS9saWIvU3VwcG9ydC9V bml4L01lbW9yeS5pbmMKK0BAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBpbnQgZ2V0UG9zaXhQcm90 ZWN0aW9uRmxhZ3ModW5zaWduZWQgRmxhZ3MpIHsKKyAgICAgcmV0dXJuIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUgfCBQUk9UX0VYRUM7CisgICBjYXNlIGxsdm06OnN5czo6TWVtb3J5OjpNRl9FWEVD OgorICNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX1BPV0VSUENfXykgfHwg ZGVmaW5lZCAoX19wcGNfXykgfHwgXAorLSAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQo X0FSQ0hfUFBDKSkKKysgICAgIGRlZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykg fHwgKGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKSkpCisgICAgIC8v IE9uIFBvd2VyUEMsIGhhdmluZyBhbiBleGVjdXRhYmxlIHBhZ2UgdGhhdCBoYXMgbm8gcmVhZCBw ZXJtaXNzaW9uCisgICAgIC8vIGNhbiBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLiAgVGhl IGZ1bmN0aW9uIEludmFsaWRhdGVJbnN0cnVjdGlvbi0KKyAgICAgLy8gQ2FjaGUgdXNlcyBpbnN0 cnVjdGlvbnMgZGNiZiBhbmQgaWNiaSwgYm90aCBvZiB3aGljaCBhcmUgdHJlYXRlZCBieQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNlN2U2YWIyYzAwYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCkBAIC0wLDAgKzEsNDI0 IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsbHZtMTQnCitwa2duYW1lPWxsdm0xNAordmVyc2lv bj0xNC4wLjMKK3JldmlzaW9uPTEKK3dya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3Jj IgorYnVpbGRfd3Jrc3JjPWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0i CisgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgLVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJf QlVJTERfSUQ9WUVTCisgLURMTERCX1VTRV9TWVNURU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9B Qkk9bGliY3h4YWJpCisgLURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAt RExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUj1ZRVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RB VElDX1VOV0lOREVSPVlFUworIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBf SU5TVEFMTF9BTElBU0VTPU5PCisgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJ TERfRE9DUz1ZRVMKKyAtRExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5H U19BU19FUlJPUlM9Tk8KKyAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERf TExWTV9EWUxJQj1ZRVMKKyAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFC TEVfUlRUST1ZRVMKKyAtRExMVk1fRU5BQkxFX0ZGST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5D RElSPS91c3IvaW5jbHVkZSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2 ZWwgbGliZmZpLWRldmVsIHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFy ayBweXRob24zLXNwaGlueC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwg emxpYi1kZXZlbCBlbGZ1dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxp YnhtbDItZGV2ZWwgYmludXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGli bGx2bTE0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZp cnR1YWwgTWFjaGluZSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Igor bGljZW5zZT0iQXBhY2hlLTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rv d25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9sbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFy Lnh6IgorY2hlY2tzdW09NDRkM2U3YTc4NGQ1Y2Y4MDVlNzI4NTNiYjAzZjIxOGJkMTA1OGQ0NDhj MDNjYTg4M2RhYmJlYmM5OTIwNGUwYworbGliMzJkaXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9u PTMKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1 cmVfYXJncys9IiAtRExJQkNYWF9IQVNfTVVTTF9MSUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBs aWJleGVjaW5mby1kZXZlbCIKKwlkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKwor IyAib3BlcmFuZCBvdXQgb2YgcmFuZ2UiIGFzc2VtYmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0i IC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7Citlc2FjCisKK19lbmFibGVkX3Byb2plY3Rz PSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xp YnVud2luZDtsbGQiCisKK19sbGRiX2VuYWJsZT15ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0bGUqKSA7OworCXBwYyp8aTY4Niop IF9sbGRiX2VuYWJsZT1ubyA7OworZXNhYworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMK Kworc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNs YW5nCitpZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCV9lbmFibGVkX3By b2plY3RzKz0iO29wZW5tcCIKKwlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgor CSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28u KgorCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorZmkKKworc3Vi cGFja2FnZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisg bGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAor IGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTE0IgorCitpZiBbICIkX2xsZGJfZW5h YmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0 byBweXRob24KKwlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxs ZGIgbGxkYi1kZXZlbCIKK2ZpCisKK3N1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2Nv bmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0 c30iCisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0 aGVuCisJCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2Vk IC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3Vy Y2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJ IyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQg LWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtl TGlzdHMudHh0CisJZmkKKworCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRm b3JtIGRldGVjdGlvbgorCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUv YXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKKwkJJHt3cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4 IGxpbmtlciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5 X2V4aXN0cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkk e3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hl Y2tfbGlicmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcg XAorCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVk IGxpYnNzcF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2Rl ZmF1bHRsaWJzKQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7 CisJCXBwYyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0 dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dy a3NyY30vbGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1 cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jr c3JjfS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcg JHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIg Y3VycmVudGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAt aSAncywjIFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1P Tl9MSU5LX0xJQlMgZXhlY2luZm8pLCcgXAorCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFr ZUxpc3RzLnR4dAorCQkJOzsKKwkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29k ZSBpcyBicm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAt aSAncy9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJ TEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29t cGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCisJCQk7OworCWVzYWMKK30KKworcHJlX2Nv bmZpZ3VyZSgpIHsKKwlsb2NhbCB0cmlwbGV0CisKKwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBk ZWJ1Z2dpbmcgc3ltYm9sczoKKwlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9 JHtDWFhGTEFHUy8gLWcvIC1nMX0KKworCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRv IGJsb3cgdXAgZm9yIHBwYzMyIGFwcGFyZW50bHkgYmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcg dG9vIGxhcmdlIGZvciBhIDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBv cHRpbWl6ZSBmb3Igc2l6ZSBpbnN0ZWFkCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGlu CisJCXBwYzY0KikgOzsKKwkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZP SURfQ1hYX09QVF9GTEFHUz0tT3MiIDs7CisJZXNhYworCisJaWYgWyAiJENST1NTX0JVSUxEIiBd OyB0aGVuCisJCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1w IGJ1aWxkL0hPU1QKKwkJY2QgYnVpbGQvSE9TVAorCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlM RF9DWFgiIENGTEFHUz0iJEJVSUxEX0NGTEFHUyIgXAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhG TEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxBR1MiIFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0Vf QlVJTERfVFlQRT1SZWxlYXNlIFwKKwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxl ZF9wcm9qZWN0c30KKwkJbWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtl ICR7bWFrZWpvYnN9IC1DIHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9l bmFibGUiID0gInllcyIgXSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMv VGFibGVHZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9s bHZtL2J1aWxkL0hPU1QvYmluL2xsdm0tdGJsZ2VuIgorCQljb25maWd1cmVfYXJncys9IiAtRENM QU5HX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIK KwkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExE Ql9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJ Y2QgLi4vLi4KKwlmaQorCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYq KSBfYXJjaD0iWDg2Ijs7CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJj aD0iQXJtdjV0ZSI7OworCQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlhcm12NyopIF9hcmNo PSJBcm12NyI7OworCQlhYXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNo PSJNaXBzIjs7CisJCXBwYyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0i UklTQ1Y2NCI7OworCWVzYWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBT X1RSSVBMRVR9CisKKwljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJj aH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJ Y29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9 IgorfQorCitkb19pbnN0YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxM X1BSRUZJWD0ke0RFU1RESVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVp cmVkIGZvciBtdWx0aWxpYi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0 IiBdOyB0aGVuCisJCWZvciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNU RElSfS91c3IvaW5jbHVkZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0 YWxsICR7RklMRVNESVJ9L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9p bmNsdWRlL2xsdm0vQ29uZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkKKworCSMgUmVtb3Zl IGxsdm0tY29uZmlnLWhvc3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZp CisKKwkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGli Y3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3Rh bGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQor CisJIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVu d2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1 ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVz ci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9j b21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQor CitjbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUv c2Nhbi12aWV3IgorCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9u MyBwZXJsIgorCXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29y ayIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1v dmUgIi91c3IvYmluL3NjYW4tKiIKKwkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92 ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKKwl9Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3Bh Y2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259 XyR7cmV2aXNpb259IHB5dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xz IgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2Ns YW5nLWFwcGx5LXJlcGxhY2VtZW50cworCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZt b3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2 bW92ZSB1c3IvYmluL2RpYWd0b29sCisJCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwor CQl2bW92ZSB1c3IvYmluL2htYXB0b29sCisJCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2 bW92ZSB1c3IvYmluL3BwLXRyYWNlCisJCXZtb3ZlIHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZ1F1ZXJ5KiIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVz ci9zaGFyZS9jbGFuZy8qdGlkeSoiCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMK KwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVz ci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCisJfQorfQorCitjbGFuZ19wYWNrYWdlKCkgewor CWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZl bCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9u dGVuZCIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwo KSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5n LWMKKwkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKKwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRl c3QKKwkJdm1vdmUgdXNyL2xpYi9jbGFuZworCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJ CXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyou c28iCisJCXZtb3ZlIHVzci9zaGFyZS9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5n CisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19w YWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9 CisKK2xpYmNsYW5nLWNwcF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5k IHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7 CisJbGliMzJkaXNhYmxlZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdl PSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jp bi9sbGQqCisJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoK KwkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9 Cit9CisKK2xsZC1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRf ZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczov L2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ cGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGli L2NtYWtlL2xsZAorCQl2bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFj a2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJ c2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5s bHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZt b3ZlIHVzci9saWIvbGlibGxkYipzby4qCisJCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9 CisKK2xsZGItZGV2ZWxfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9 ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVi dWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNy L2luY2x1ZGUvbGxkYgorCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xs dm0tbGlidW53aW5kX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJfQorfQor CitsbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1 bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNy L2xpYi9saWJ1bndpbmQuYQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3Zl IHVzci9pbmNsdWRlL21hY2gtbworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0K K30KKworbGliY3h4YWJpX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBz dXBwb3J0IGZvciBsaWJjKysiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmMrK2FiaS5zby4qIgorCX0KK30KKworbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBm aWxlcyIKKwlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9s aWIvbGliYysrYWJpLmEKKwkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgorCX0KK30KKwor bGliY3h4X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9 CisKK2xpYmN4eC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRh cmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJj Kysuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4 cGVyaW1lbnRhbC5hCisJCXZtb3ZlIHVzci9pbmNsdWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUv ZG9jL2xpYmN4eAorCX0KK30KKworbGlib21wX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAt IENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl IHVzci9saWIvbGlib21wLnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5z byIKKwkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28KKwkJdm1vdmUgInVzci9saWIvbGlib21w Ki5zby4qIgorCX0KK30KKworbGlib21wLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9 IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlk ZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28iCisJCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hl cioiCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCisJCXZtb3ZlICJ1c3IvbGliL2NsYW5n LyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9s bHZtb3Blbm1wLjEKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKKwl9Cit9CisKK2xpYmxs dm0xNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYkxMVk0tKi5zbyoiCisJfQorfQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdXBkYXRlIGIvc3JjcGtncy9sbHZtMTQvdXBkYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTk1Y2YyNmIzNTg2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvdXBkYXRlCkBAIC0wLDAgKzEsMyBAQAorc2l0 ZT0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzIgorcGF0dGVy bj0ibGx2bW9yZy1cSyhcZCsuKXsyfVxkKygtcmNcZCspPyIKK2lnbm9yZT0iKi1yYyoiCgpGcm9t IGIzNjlkNDc1ZGJmZmE5Mjk3YjFmMDc0NGE4ZDIwMzM1N2FjMmJiYTAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTY6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzI2 XSBsbHZtOiB1cGRhdGUgdG8gMTQuMC4zLgoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxh dGUKaW5kZXggYTkyZGI2Zjk0ZjlmLi5kMjI2YzYxYzczNGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bGx2bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIu MC4wCit2ZXJzaW9uPTE0LjAuMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5k cz0ibGx2bTEyIgotcmVwbGFjZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+ PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTE0IgorcmVw bGFjZXM9Imxsdm0xMz49MCBsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBs bHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZN IG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgoKRnJvbSBmYTI4MjlkN2FiMTY1YzJiYTk2 ZjcxN2RiMjg3YjcyNWZmNzI3M2QzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6 IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIy IDIxOjM2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNl0gbGx2bTEyOiBkcm9wIG5vbi1s bHZtIGNvbXBvbmVudHMKCi0tLQogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVz aW9uLnBhdGNoIHwgIDQ0IC0tLQogLi4uL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBs ZXMucGF0Y2ggIHwgMTEwIC0tLS0tLS0KIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaCB8ICAxMyAtCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaCAgfCAgNDggLS0tCiAuLi4vY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5w YXRjaCAgICAgICAgfCAgMTEgLQogLi4uL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNs LnBhdGNoICAgIHwgIDM1IC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90 LnBhdGNoICAgfCAgMTAgLQogLi4uL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNs LnBhdGNoIHwgIDYyIC0tLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2ggICAgICB8ICAyNiAtLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNo ICAgICAgIHwgIDIyIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQu cGF0Y2ggfCAgMTEgLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gg ICAgIHwgIDI1IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRj aCAgfCAgNjMgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAg ICAgIHwgIDMxIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gg ICAgfCAgMjEgLS0KIHNyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg ICB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCA4MzIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxl ci1ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAx LWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGU0ZWFhNzc4M2U3YS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSAzNTI5NzQxNjlmMGQyYjVk YTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IFNlcCAy MDE1IDIyOjE0OjU3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi83XSBmaXggdW53aW5kIGNoYWlu IGluY2x1c2lvbgotCi0tLS0KLSBsaWIvSGVhZGVycy91bndpbmQuaCB8IDkgKysrKystLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIvbGliL0hlYWRlcnMvdW53aW5kLmgKLWluZGV4 IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0Ci0tLS0gYS9jbGFuZy9saWIvSGVhZGVycy91bndpbmQu aAotKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKLUBAIC05LDkgKzksNiBAQAotIAot IC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3MiIGluIHRoZSBMaW51eCBTdGFu ZGFyZCBCYXNlLiovCi0gCi0tI2lmbmRlZiBfX0NMQU5HX1VOV0lORF9ICi0tI2RlZmluZSBfX0NM QU5HX1VOV0lORF9ICi0tCi0gI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX2hhc19pbmNsdWRl X25leHQoPHVud2luZC5oPikKLSAvKiBEYXJ3aW4gKGZyb20gMTEueCBvbikgcHJvdmlkZSBhbiB1 bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKLSAgKiB1c2UgaXQuIGxpYnVud2luZCB3cmFw cyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAjaWZkZWYgX0dOVV9TT1VSQ0UsCi1AQCAtMzks NiArMzYsOSBAQAotICMgZW5kaWYKLSAjZWxzZQotIAotKyNpZm5kZWYgX19DTEFOR19VTldJTkRf SAotKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAotKwotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAK LSAjaWZkZWYgX19jcGx1c3BsdXMKLUBAIC0zMjIsNiArMzIyLDcgQEAgX1Vud2luZF9QdHIgX1Vu d2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotIH0KLSAjZW5k aWYKLSAKLSsjZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwotKwotICNlbmRpZgotIAotLSNl bmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0tLSAKLTIuNS4xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2ODhkNDBkYmMyLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvR251LmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0du dS5jcHAKLUBAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxs YXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQt bGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1z dXNlLWxpbnV4LWdudWVhYmkiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Ci0gICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJv aWRlYWJpIn07Ci1AQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5z dGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAgICAicG93ZXJw YzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07Ci0gICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07 Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNs ZS1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93 bi1saW51eC1nbnUifTsKLSAKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRp cnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQ UEM2NFRyaXBsZXNbXSA9IHsKLUBAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dD Qzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAg cmV0dXJuOwotICAgfQotIAotKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgewotKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQt bGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJp cGxlc1tdID0gewotKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51 eC1tdXNsZWFiaWhmIgotKyAgICB9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJN TXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07Ci0rICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9 OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4 Ni1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRy aXBsZXNbXSA9IHsKLSsgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11 c2wiLAotKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYi Ci0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1td ID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKLSsgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxp bnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJp cGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Ci0rCi0rICAgIHN3aXRjaCAoVGFy Z2V0VHJpcGxlLmdldEFyY2goKSkgewotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoK LSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0 TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNs VHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJz LmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAg ICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyks IGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZt OjpUcmlwbGU6OmFybToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwg ZW5kKEFSTUxpYkRpcnMpKTsKLSsgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50 KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsK LSsgICAgICB9IGVsc2UgewotKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJN TXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9Ci0rICAgICAgYnJl YWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Ci0rICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVz bFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJz KSwgZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFr OwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJl Z2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRM aWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsg ICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o TUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFw cGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMp KTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQo UFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7 Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVz KSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBl bmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKLSsgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGly cyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVh azsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0rICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRM RU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVM aWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwot KyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rICAg IFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7Ci0rICAgIGlmIChU YXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQotKyAgICAgIEJpYXJjaFRy aXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7Ci0rICAgIHJldHVybjsK LSsgIH0KLSsKLSAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXgg dG9vbHMgb3IgbGlicmFyaWVzLgotICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewot ICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNGFkNjQxMmQxZTZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9M aW51eC5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLUBA IC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWljTGlua2VyKGNv bnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAgICAgTG9hZGVyID0gImxkLnNvLjEiOwotICAg ICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKLS0gICAgTGliRGlyID0gImxp YjY0IjsKLS0gICAgTG9hZGVyID0KLS0gICAgICAgICh0b29sczo6cHBjOjpoYXNQUENBYmlBcmco QXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKLS0gICAgYnJlYWs7 Ci0gICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgTGliRGlyID0gImxpYjY0IjsK LSAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmct MDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5n LTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyMWZjODAwM2M1ZjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDgg KzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLSsrKyBiL2NsYW5n L2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi1AQCAtNDE1LDExICs0MTUsMTAgQEAgcHVibGljOgot ICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBGbG9hdDo6SUVFRWRvdWJsZSgpOwot ICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRs ZSkpIHsKLSAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAg IEFCSSA9ICJlbGZ2MiI7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgRGF0YUxheW91dCA9ICJFLW06 ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkgPSAiZWxmdjEiOwotICAgICB9Ci0rICAgIEFC SSA9ICJlbGZ2MiI7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0ZyZWVCU0QoKSB8fCBUcmlwbGUu aXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsKLSAgICAgICBMb25nRG91YmxlV2lk dGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKLS0tLSBhL2NsYW5nL2xpYi9Db2RlR2VuL1Rhcmdl dEluZm8uY3BwCi0rKysgYi9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAotQEAgLTEw OTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdlbkluZm8gJkNvZGVHZW5Nb2R1bGU6 OmdldFRhcmdldENvZGVHZW5JbmZvKCkgewotICAgICAgIHJldHVybiBTZXRDR0luZm8obmV3IEFJ WFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQqLyB0cnVlKSk7Ci0gCi0gICAgIGlm IChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7Ci0tICAgICAgUFBDNjRfU1ZSNF9BQklJbmZv OjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwotLSAgICAgIGlmIChn ZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQotLSAgICAgICAgS2luZCA9IFBQQzY0X1NW UjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtp bmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOwotKyAgICAgIGlmIChnZXRUYXJnZXQoKS5n ZXRBQkkoKSA9PSAiZWxmdjEiKQotKyAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6 RUxGdjE7Ci0gICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENvZGVHZW5PcHRzLkZsb2F0QUJJID09 ICJzb2Z0IjsKLSAKLSAgICAgICByZXR1cm4gU2V0Q0dJbmZvKAotLS0tIGEvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hh aW5zL0NsYW5nLmNwcAotQEAgLTE5MjAsMTQgKzE5MjAsNyBAQCB2b2lkIENsYW5nOjpBZGRQUENU YXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCi0gICBjb25zdCBsbHZtOjpUcmlwbGUgJlQg PSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKLSAgIGlmIChULmlzT1NCaW5Gb3JtYXRFTEYo KSkgewotICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdldEFyY2goKSkgewotLSAgICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKLS0gICAgICBpZiAoKFQuaXNPU0ZyZWVCU0QoKSAmJiBU LmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0tICAgICAgICAgIFQuaXNPU09wZW5CU0Qo KSB8fCBULmlzTXVzbCgpKQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7Ci0tICAgICAgZWxz ZQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsg ICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotICAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBj NjRsZToKLSAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLSAgICAgICBicmVhazsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4 dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODkzYzA1OWQ3YjhkLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0 LXVjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvY29t cGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCi0r KysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3Bw Ci1AQCAtMTc5OSw3ICsxNzk5LDcgQEAKLSAKLSBzdGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVj b250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikgewotICAgc3RhdGljIGNvbnN0IHUzMiBrRXNy TWFnaWMgPSAweDQ1NTM1MjAxOwotLSAgdTggKmF1eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5f X3Jlc2VydmVkOwotKyAgdTggKmF1eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQt PnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOwotICAgd2hpbGUgKHRydWUpIHsKLSAgICAgX2FhcmNo NjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICopYXV4OwotICAgICBpZiAoY3R4LT5zaXplID09 IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDM1ZjE2ZDI0ZjM0MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2Nv bW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtNzQsNiArNzQsMTAgQEAKLSAjaW5jbHVk ZSA8c3lzL3V0c25hbWUuaD4KLSAjZW5kaWYKLSAKLSsjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRl ZmluZWQoX19wb3dlcnBjX18pCi0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsjZW5kaWYKLSsK LSAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAotICNpbmNsdWRlIDxz eXMvcGVyc29uYWxpdHkuaD4KLSAjZW5kaWYKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6 ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCi0rKysgYi9jb21w aWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bv c2l4LmNwcAotQEAgLTkyLDcgKzkyLDcgQEAKLSAjIGluY2x1ZGUgPHV0aW1lLmg+Ci0gIyBpbmNs dWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmluZWQoX19taXBzNjQpIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBTQU5JVElaRVJfUklTQ1Y2 NAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAotICMgIGlu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjICBpZmRlZiBfX2FybV9fCi0gdHlwZWRlZiBzdHJ1Y3Qg dXNlcl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7Ci0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRp emVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi0rKysg Yi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxk X2xpbnV4X2xpYmNkZXAuY3BwCi1AQCAtMzEsNyArMzEsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlw ZXMuaD4gLy8gZm9yIHBpZF90Ci0gI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCi0g I2luY2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKLS0jaWYgKGRlZmluZWQoX19hYXJj aDY0X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSsjaWYg KGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpF Ul9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSAvLyBHTElCQyAyLjIwKyBzeXMvdXNl ciBkb2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2UuaAotICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNpemVf dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM2MzA2M2E1ZTllLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3Qu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9s aWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAub3JpZwotKysrIGIvY29tcGlsZXItcnQv bGliL2Z1enplci9GdXp6ZXJJbnRlcmNlcHRvcnMuY3BwCi1AQCAtMjUsNiArMjUsNyBAQAotICAg fQotIAotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRl IDxjc3RkaW50PgotICNpbmNsdWRlIDxkbGZjbi5oPiAvLyBmb3IgZGxzeW0oKQotIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVz bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBiNjFjODBjODk3Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBw YzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0tLS0gYS9jb21w aWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKLSsrKyBiL2NvbXBpbGVyLXJ0L2xp Yi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotQEAgLTEyLDcgKzEyLDEzIEBACi0gCi0gI2luY2x1 ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG11dGV4PgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5j bHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgotKyNlbHNlCi0rI2luY2x1ZGUgPGNjdHlwZT4KLSsj aW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjZW5kaWYKLSAKLSAjaW5j bHVkZSAieHJheV9kZWZzLmgiCi0gCi1AQCAtMjAsMTMgKzI2LDQ1IEBAIG5hbWVzcGFjZSBfX3hy YXkgewotIAotIEFMV0FZU19JTkxJTkUgdWludDY0X3QgcmVhZFRTQyh1aW50OF90ICZDUFUpIFhS QVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBDUFUgPSAwOwotKyNpZmRlZiBfX0dMSUJDX18KLSAg IHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZWxzZQotKyAgcmV0dXJuIF9fYnVpbHRp bl9wcGNfZ2V0X3RpbWViYXNlKCk7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSB1aW50NjRfdCBn ZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewotICAgc3RhdGljIHN0ZDo6 bXV0ZXggTTsKLSAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBHdWFyZChNKTsKLSsjaWZk ZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNfZ2V0X3RpbWViYXNlX2ZyZXEoKTsKLSsjZWxz ZQotKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBpbXBsZW1lbnRhdGlvbj8gKi8KLSsgIHN0YXRp YyB1aW50NjRfdCBiYXNlOwotKyAgaWYgKCFiYXNlKSB7Ci0rICAgIEZJTEUgKmYgPSBmb3Blbigi L3Byb2MvY3B1aW5mbyIsICJyYiIpOwotKyAgICBpZiAoZikgewotKyAgICAgIHNzaXplX3QgbnI7 Ci0rICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIGxpbmUg Ki8KLSsgICAgICBjaGFyIGJ1Zls1MTJdOwotKyAgICAgIHdoaWxlIChmZ2V0cyhidWYsIHNpemVv ZihidWYpLCBmKSkgewotKyAgICAgICAgY2hhciAqcmV0ID0gc3Ryc3RyKGJ1ZiwgInRpbWViYXNl Iik7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIHJldCArPSBzaXplb2YoInRpbWViYXNlIikgLSAxOwotKyAgICAgICAgcmV0 ID0gc3RyY2hyKHJldCwgJzonKTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNv bnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgYmFzZSA9IHN0cnRvdWwocmV0ICsgMSwgbnVs bHB0ciwgMTApOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICAgIGZjbG9zZShmKTsK LSsgICAgfQotKyAgfQotKyAgcmV0dXJuIGJhc2U7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSBi b29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYmJkMzFmZmMyY2IxLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg QEAKLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQotKysrIGIvbGliY3h4L2luY2x1ZGUvbG9j YWxlCi1AQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0 IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92 ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsK LSAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAgIGNoYXIgKl9fcDI7Ci0rI2lmIGRlZmluZWQo X19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCi0rICAgICAgICBsb25nIGxvbmcgX19s bCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAgICAgbG9uZyBs b25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xP Q0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0 eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJybm87Ci0gICAgICAgICBpZiAo X19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87 Ci1AQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3Qg Y2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5hbWUgcmVtb3Zl X3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOwot ICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYgZGVmaW5lZChf X2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAg ICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFz ZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNlbmRpZgotICAgICAgICAgdHlwZW5hbWUgcmVt b3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVy cm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAwKQotICAgICAgICAgICAgIGVy cm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTkyZjgwMDRlMWMuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5l ZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMsCi1pbmNsdWRpbmcgbXVzbCBh bmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19g Ci1pcyBub3QgZGVmaW5lZCBvbiBnY2MuCi0KLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cwot KysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCi1AQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0 ZWQ6Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RF WFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5z bCgiIik7fQotICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVOT1JN X01JTl9fO30KLSAKLS0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p KQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r I2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRf RElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKLSsgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9y IGRvdWJsZSBwcmVjaXNpb24gKi8KLSsgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSsjZWxzZQotKyAgICAvKiAxMjgtYml0IElCTSBkb3Vi bGUtZG91YmxlICovCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlz X2llYzU1OSA9IGZhbHNlOwotKyNlbmRpZgotICNlbHNlCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7Ci0gI2VuZGlmCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNzAyOTJiZWIyZmNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotKysrIGIv bGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzY5LDYgKzc2OSw4IEBAIGZ1bmN0aW9uKGN4eF9s aW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMo JHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQotICAgZW5kaWYoKQotIAotKyNzc3AgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9uc2hhcmVkKQotKwotICAgaWYg KE1JTkdXKQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgIiR7 TUlOR1dfTElCUkFSSUVTfSIpCi0gICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTE1ZjlkYjhj OTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUFsc28gbGluayB0byAtbGRs IHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCi0KLS0tLSBhL2xpYmN4eGFiaS9zcmMv Q01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC03 Myw2ICs3Myw3IEBACi0gICBlbmRpZigpCi0gCi0gICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJD WFhBQklfSEFTX0NfTElCIGMpCi0rICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFT X0NfTElCIGRsKQotIGVuZGlmKCkKLSAKLSBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVS KQotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50 eHQKLUBAIC03NDUsNiArNzQ1LDEwIEBACi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rh cmdldH0gUFJJVkFURSBtKQotICAgZW5kaWYoKQotIAotKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIp Ci0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkKLSsgIGVu ZGlmKCkKLSsKLSAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikKLSAgICAgdGFyZ2V0X2xpbmtfbGli cmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQotICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNzRhYTc1NzZlY2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBA Ci1UaGlzIGZpeGVzIGJ1aWxkIGF0IGxlYXN0IHdpdGggZ2NjOSB3aGljaCBkb2VzIG5vdCBkZWZp bmUgYF9fcHBjX19gLgotCi0tLS0gYS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25m aWcuaAotKysrIGIvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKLUBAIC00 OSw3ICs0OSw3IEBACi0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09OVEVYVF9TSVpFIDE2NwotICMg IGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDE3OQotICMgIGRlZmluZSBfTElCVU5XSU5E X0hJR0hFU1RfRFdBUkZfUkVHSVNURVIgX0xJQlVOV0lORF9ISUdIRVNUX0RXQVJGX1JFR0lTVEVS X1BQQzY0Ci0tIyBlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjIGVsaWYgZGVmaW5lZChfX3Bvd2Vy cGNfXykKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9UQVJHRVRfUFBDIDEKLSAjICBkZWZpbmUgX0xJ QlVOV0lORF9DT05URVhUX1NJWkUgMTE3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJ WkUgMTI0Ci0tLS0gYS9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotKysr IGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKLUBAIC0zOTIsNyArMzky LDcgQEAgTG5vdmVjOgotICAgUFBDNjRfTFIoMykKLSAgIGJjdHIKLSAKLS0jZWxpZiBkZWZpbmVk KF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSBERUZJTkVfTElCVU5X SU5EX0ZVTkNUSU9OKF9aTjlsaWJ1bndpbmQxM1JlZ2lzdGVyc19wcGM2anVtcHRvRXYpCi0gLy8K LS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi0rKysgYi9saWJ1bndp bmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwotQEAgLTU1NCw3ICs1NTQsNyBAQCBERUZJTkVf TElCVU5XSU5EX0ZVTkNUSU9OKF9fdW53X2dldGNvbnRleHQpCi0gICBibHIKLSAKLSAKLS0jZWxp ZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSAvLwot IC8vIGV4dGVybiBpbnQgdW53X2dldGNvbnRleHQodW53X2NvbnRleHRfdCogdGhyZWFkX3N0YXRl KQotLS0tIGEvbGlidW53aW5kL3NyYy9jb25maWcuaAotKysrIGIvbGlidW53aW5kL3NyYy9jb25m aWcuaAotQEAgLTk1LDEyICs5NSwxMiBAQAotICNkZWZpbmUgX0xJQlVOV0lORF9CVUlMRF9TSkxK X0FQSVMKLSAjZW5kaWYKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICNkZWZpbmUgX0xJQlVOV0lORF9TVVBQT1JUX0ZSQU1FX0FQSVMKLSAjZW5kaWYKLSAKLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotLSAgICBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgKCFkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChf X2FybV9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoZGVmaW5l ZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pKSB8fCAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgIGRlZmluZWQoX19taXBzX18pCi0tLS0gYS9saWJ1bndpbmQvc3Jj L2xpYnVud2luZC5jcHAKLSsrKyBiL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAotQEAgLTQy LDcgKzQyLDcgQEAgX0xJQlVOV0lORF9ISURERU4gaW50IF9fdW53X2luaXRfbG9jYWwodW53X2N1 cnNvcl90ICpjdXJzb3IsCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfeDg2XzY0 Ci0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQg UmVnaXN0ZXJzX3BwYzY0Ci0tI2VsaWYgZGVmaW5lZChfX3BwY19fKQotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjX18pCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjCi0gI2Vs aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c19hcm02NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNjAxYzBkMTM4NTIzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSAr MCwwIEBACi0tLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgK LSsrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAotQEAgLTEw LDIxICsxMCwxMiBAQAotIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwg c3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCi0gCi0gI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSsj aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotLSNpZmRlZiBfX0FORFJPSURfXwotLSNpZiBkZWZp bmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLS10eXBlZGVmIHVuc2lnbmVk IGxvbmcgZWxmX2dyZWdfdDsKLS10eXBlZGVmIGVsZl9ncmVnX3QKLS0gICAgZWxmX2dyZWdzZXRf dFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07Ci0t dHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7Ci0tI2lmbmRl ZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAv LyBOVF9GUFJFR1NFVAotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0tI2lmbmRlZiBOVF9GUFJF R1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJF R1NFVAotLSNlbmRpZgotLSNlbHNlIC8vIF9fQU5EUk9JRF9fCi0rI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9y ZWdzCi0rI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLSsjdW5kZWYgcHRfcmVncwotKyNlbHNlCi0g I2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLS0jZW5kaWYgLy8gX19BTkRST0lEX18KLSsjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBhOWE3NzlkMWIuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjEgKzAsMCBAQAotY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQz ODRjMjQzMTM3YjUzZmMKLUF1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+Ci1EYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAotCi0gICAgZW5hYmxl IGNvbXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCi0KLWRpZmYgLS1naXQgYS9jb21waWxlci1y dC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29u ZmlnLWl4LmNtYWtlCi1pbmRleCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAotLS0tIGEvY29tcGls ZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLSsrKyBiL2NvbXBpbGVyLXJ0L2NtYWtl L2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1AQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFy Z2V0cykKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBN QVRDSEVTICJwb3dlcnBjNjRsZSIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRs ZSAiIiAiLW02NCIpCi0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9B UkNIfSIgTUFUQ0hFUyAicG93ZXJwYyIpCi0tICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFU Q0hFUyAiQUlYIikKLS0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIp Ci0tICAgICAgZW5kaWYoKQotKyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0z MiIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQotICAgICBl bHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4 IikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTIvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQppbmRleCA3Y2Ux ODAyOGU0YTMuLjdiMzYxYmJiZjViYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKQEAgLTEsMjUgKzEsMTcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25hbWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQot cmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5z cmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSIKICAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRldgogIC1ERU5BQkxFX0xJTktF Ul9CVUlMRF9JRD1ZRVMKLSAtRExMREJfVVNFX1NZU1RFTV9TSVg9WUVTCi0gLURMSUJDWFhfQ1hY X0FCST1saWJjeHhhYmkKLSAtRExJQkNYWF9FTkFCTEVfU1RBVElDX0FCSV9MSUJSQVJZPVlFUwot IC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUwotIC1ETElCQ1hYQUJJX0VOQUJMRV9T VEFUSUNfVU5XSU5ERVI9WUVTCi0gLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1ZRVMKLSAtRExJQk9N UF9JTlNUQUxMX0FMSUFTRVM9Tk8KICAtRExMVk1fSU5DTFVERV9ET0NTPVlFUwogIC1ETExWTV9C VUlMRF9ET0NTPVlFUwogIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwogIC1EU1BISU5YX1dBUk5J TkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9JTlNUQUxMX1VUSUxTPVlFUwogIC1ETExWTV9CVUlM RF9MTFZNX0RZTElCPVlFUwogIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0VO QUJMRV9SVFRJPVlFUwpAQCAtNTEsODcgKzQzLDEwIEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1P RkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRy YTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCi0KLV9sbGRiX2Vu YWJsZT15ZXMKLV9saWJvbXBfZW5hYmxlPW5vCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1ubyA7OwotZXNh YwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqfGFhcmNoNjQqfHBw YzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKLWVzYWMKLQotc3VicGFja2FnZXM9ImNsYW5nLXRv b2xzLWV4dHJhIgotCi0jIG11c3QgZ28gYmVmb3JlIGNsYW5nCi1pZiBbICIkX2xpYm9tcF9lbmFi bGUiID0gInllcyIgXTsgdGhlbgotCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKLQlzdWJw YWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgotCSMgYmVjYXVzZSBvZiBjbWFrZSBub25z ZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgotCWRlcGVuZHMrPSIgbGlib21wPj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgotZmkKLQotc3VicGFja2FnZXMrPSIgY2xhbmcgY2xhbmct YW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCi0gbGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1 bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAotIGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2 ZWwgbGlibGx2bTEyIgotCi1pZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkj IFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KLQlfZW5hYmxlZF9wcm9q ZWN0cys9IjtsbGRiIgotCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIKLWZpCi0KLXN1 YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCi0KLWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9F TkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCi0KIHBvc3RfcGF0Y2goKSB7Ci0J aWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JCWlmIFsgIiRYQlBTX1RBUkdF VF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JCQl2c2VkIC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8 aW50fGcnIFwKLQkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4 L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKLQkJZmkKLQkJIyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIg YXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCi0JCXZzZWQgLWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRv Y3MpL2QnIFwKLQkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0Ci0JZmkKLQogCSMgdXBk YXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgogCWNwICRYQlBT X0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwK IAkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLQotCSMgZml4IGxpbmtlciBmYWlsdXJlcyBvbiBzb21l IGFyY2hzCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAuKixzZXQoTElC Q1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtl L2NvbmZpZy1peC5jbWFrZQotCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjIC4q LHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJp L2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCi0JIyBuZWVkIGxpYnNzcF9ub25zaGFyZWQgb24gc29t ZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQotCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCXBwYyotbXVzbHxpNjg2LW11c2x8 bWlwcyotbXVzbCkKLQkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9m bGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKLQkJCQkke3dya3NyY30vbGlidW53aW5kL3NyYy9DTWFr ZUxpc3RzLnR4dAotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2Zs YWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkvc3JjL0NNYWtl TGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxp c3RzLnR4dAotCQkJOzsKLQllc2FjCi0KLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K LQkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkgb24geDg2XzY0 IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQotCQkJdnNlZCAtaSAncywjIFNldCBjb21tb24gbGluayBm bGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhlY2luZm8pLCcg XAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQkJYXJt Ki1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2luY2UgaXQgZHVw bGljYXRlcyBzb21lIGxpYmMgYml0cwotCQkJdnNlZCAtaSAncy9zZXQoQ09NUElMRVJfUlRfSEFT X1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09N TU9OIEZBTFNFKS8nIFwKLQkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4 LmNtYWtlCi0JCQk7OwotCWVzYWMKIH0KIAogcHJlX2NvbmZpZ3VyZSgpIHsKQEAgLTE1OCwxMCAr NzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9U WVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2pl Y3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxlR2VuCi0JCW1ha2UgJHttYWtl am9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIg PSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdl bgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVp bGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFC TEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIk X2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxF R0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8u LgogCWZpCkBAIC0yMDIsMjE4ICsxMTUsNiBAQCBkb19pbnN0YWxsKCkgewogCWlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWct aG9zdAogCWZpCi0KLQkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKLQl2aW5zdGFsbCAke3dy a3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRl Ci0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3Iv aW5jbHVkZQotCi0JIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJzCi0Jdmluc3RhbGwgJHt3cmtz cmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVk ZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQg dXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5k LmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRl L21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKLQkJNjQ0IHVzci9pbmNsdWRlL21h Y2gtbwotfQotCi1jbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgewotCXB5Y29tcGlsZV9kaXJzPSJ1 c3Ivc2hhcmUvc2Nhbi12aWV3IgotCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gcHl0aG9uMyBwZXJsIgotCXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lz IGZyYW1ld29yayIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8i Ci0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxk LjEKLQkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIKLQkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0q IgotCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKLQl9Ci19Ci0KLWNsYW5nLXRvb2xz LWV4dHJhX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJjbGFuZy0k e3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCi0Jc2hvcnRfZGVzYys9IiAtIEV4dHJhIENs YW5nIHRvb2xzIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKLQlw a2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmctdGlkeQotCQl2bW92ZSB1 c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cwotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1 ZXJ5Ci0JCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCi0JCXZtb3ZlIHVzci9iaW4vY2xhbmct dGlkeQotCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCi0JCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwt c3ltYm9scwotCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCi0JCXZtb3ZlIHVzci9iaW4vbW9kdWxh cml6ZQotCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCi0JCXZtb3ZlIHVzci9iaW4vc2FuY292Ci0J CXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgotCQl2bW92ZSAidXNy L2xpYi9saWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKLQkJ dm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xh bmctdG9vbHMKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCi0J CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCi0JfQotfQotCi1jbGFuZ19wYWNr YWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxp YmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAotCSBsaWJjbGFu Zy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZh bWlseSBmcm9udGVuZCIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCi0JcGtn X2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCi0JCXZtb3ZlIHVzci9pbmNs dWRlL2NsYW5nLWMKLQkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKLQkJdm1vdmUgdXNyL2Jpbi9j LWluZGV4LXRlc3QKLQkJdm1vdmUgdXNyL2xpYi9jbGFuZwotCQl2bW92ZSB1c3IvbGliL2NtYWtl L2NsYW5nCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgotCQl2bW92ZSAidXNyL2xpYi9s aWJjbGFuZyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS9jbGFuZwotCQl2bW92ZSB1c3Ivc2hhcmUv ZG9jL2NsYW5nCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCi0JfQotfQotCi1s aWJjbGFuZ19wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUg bGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28u KiIKLQl9Ci19Ci0KLWxpYmNsYW5nLWNwcF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD IGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCi0JcGtnX2luc3RhbGwo KSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgotCX0KLX0KLQotbGxkX3Bh Y2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgot CWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1v dmUgdXNyL2Jpbi9sbGQqCi0JCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAotCQl2bW92ZSB1c3IvYmlu L2xkLmxsZCoKLQkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9sbGQKLQl9Ci19Ci0KLWxsZC1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVz Ci0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCWhvbWVwYWdl PSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAotCQl2bW92 ZSB1c3IvbGliL2NtYWtlL2xsZAotCQl2bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKLQl9Ci19Ci0K LWxsZGJfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHMrPSIgcHl0aG9u My1zaXgiCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIiCi0JaG9tZXBhZ2U9Imh0dHBz Oi8vbGxkYi5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vKmxs ZGIqCi0JCXZtb3ZlIHVzci9saWIvbGlibGxkYipzby4qCi0JCXZtb3ZlIC91c3IvbGliL3B5dGhv bioKLQl9Ci19Ci0KLWxsZGItZGV2ZWxfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwot CWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAt IExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgdXNyL2luY2x1ZGUvbGxkYgotCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKLQl9 Ci19Ci0KLWxsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxpYnVu d2luZCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioi Ci0JfQotfQotCi1sbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2Mr PSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsbHZtLWxpYnVu d2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQljb25mbGljdHM9ImxpYnVud2luZC1kZXZl bD49MCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KLQkJ dm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoi Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVu d2luZAotCX0KLX0KLQotbGliY3h4YWJpX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxv dyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1 c3IvbGliL2xpYmMrK2FiaS5zby4qIgotCX0KLX0KLQotbGliY3h4YWJpLWRldmVsX3BhY2thZ2Uo KSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZl bG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCi0JCXZt b3ZlIHVzci9saWIvbGliYysrYWJpLmEKLQkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgot CX0KLX0KLQotbGliY3h4X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFy ZCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28u KiIKLQl9Ci19Ci0KLWxpYmN4eC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD Kysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4 eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L2xpYi9saWJjKysuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQotCQl2bW92ZSB1c3IvbGli L2xpYmMrK2V4cGVyaW1lbnRhbC5hCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL2xpYmN4eAotCX0KLX0KLQotbGlib21wX3BhY2thZ2UoKSB7Ci0Jc2hvcnRf ZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdl dC5ydGwuKi5zbyIKLQkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28KLQkJdm1vdmUgInVzci9s aWIvbGlib21wKi5zby4qIgotCX0KLX0KLQotbGlib21wLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBm aWxlcyIKLQlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28iCi0JCXZtb3ZlICJ1c3IvbGli L2xpYmFyY2hlcioiCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlICJ1c3Iv bGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9sbHZtb3Blbm1wLjEKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKLQl9CiB9 CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewoKRnJvbSA5YjI4NDc4ZmY5NGQ2N2MyYmYyNzNiYTdk NDA5NGQyMTM2YjI5NjJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6 QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2VkLCA0IE1heSAyMDIyIDE0OjAw OjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yNl0gTmV3IHBhY2thZ2VzOiBjbGFuZzEyLCBs aWJjbGFuZzEyLCBsaWJjbGFuZzEyLWNwcCwKIGxsZDEyLCBsbGQxMi1kZXZlbC4KCi0tLQogY29t bW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyY3Br Z3MvY2xhbmcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dz L2xpYmNsYW5nMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9s aWJjbGFuZzEyLWNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbGxk MTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL2xsZDEy LWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uY2xhbmctMDAxLWZp eC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0ICsrKysrKysKIC4uLi9wYXRjaGVz L2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKysrKysrKysrKysr KysKIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyAr KysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCAr KysrKysrKwogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwg IDcxICsrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyOTMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3Br Z3MvbGliY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliY2xhbmcxMi1jcHAK IGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xsZDEyCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3Jj cGtncy9sbGQxMi1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxl cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmct MDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMGNhNWQ3ZDVk NmY5Li4zNmJhYjFkM2Q5OTkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9u L3NobGlicwpAQCAtOTczLDYgKzk3Myw4IEBAIGxpYnVjaGFyZGV0LnNvLjAgdWNoYXJkZXQtMC4w LjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZpZXdtbS0zLjIuMF8x CiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIu MV8xCitsaWJjbGFuZy5zby4xMiBsaWJjbGFuZzEyLTEyLjAuMF8xCitsaWJjbGFuZy1jcHAuc28u MTIgbGliY2xhbmcxMi1jcHAtMTIuMC4wXzEKIGxpYmxsZGIuc28uMTQgbGxkYi0xNC4wLjNfMQog bGliY2xhbmcuc28uMTQgbGliY2xhbmctMTQuMC4zXzEKIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJj bGFuZy1jcHAtMTQuMC4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcxMiBiL3NyY3BrZ3Mv Y2xhbmcxMgpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdh OTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2xhbmcxMgpAQCAtMCwwICsxIEBACits bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp YmNsYW5nMTIgYi9zcmNwa2dzL2xpYmNsYW5nMTIKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp YmNsYW5nMTIKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZzEyLWNwcCBiL3NyY3BrZ3MvbGliY2xhbmcx Mi1jcHAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4 MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmNsYW5nMTItY3BwCkBAIC0wLDAgKzEg QEAKK2xsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkMTIgYi9zcmNwa2dzL2xsZDEyCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAw MDAwMDAwMC4uY2Q2MGZkN2E5ODFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbGQxMgpA QCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsZDEyLWRldmVsIGIvc3JjcGtncy9sbGQxMi1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGxkMTItZGV2ZWwKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQt Y2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBk MmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBT ZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBj aGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitp bmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53 aW5kLmgKKysrKyBiL2NsYW5nL2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAK KyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXgg U3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUg X19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5j bHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUg YW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQg d3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAg LTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5X SU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRy IF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9Cisg I2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAK Ky0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVz bC10cmlwbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0du dS5jcHAKK0BAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxs YXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQt bGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1z dXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJv aWRlYWJpIn07CitAQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5z dGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJw YzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07 CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNs ZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93 bi1saW51eC1nbnUifTsKKyAKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRp cnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQ UEM2NFRyaXBsZXNbXSA9IHsKK0BAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dD Qzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAg cmV0dXJuOworICAgfQorIAorKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQt bGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJp cGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51 eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJN TXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9 OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4 Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRy aXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11 c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYi CisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1td ID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxp bnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJp cGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFy Z2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoK KysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0 TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNs VHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJz LmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAg ICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyks IGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZt OjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwg ZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50 KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsK KysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJN TXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVz bFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJz KSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJl Z2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRM aWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o TUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFw cGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMp KTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQo UFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVz KSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBl bmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGly cyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRM RU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVM aWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAg IFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChU YXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRy aXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsK KysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXgg dG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewor ICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjRhZDY0MTJkMWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gK QEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUw NCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3Qg QXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJy ZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQi OworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdz LCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAg IGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAg ICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQt cHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0 LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAK Ky0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFz aWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBM b25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBl bHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7Cisg ICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAi ZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0 LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxm djIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVu QlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9u Z0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNw cAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsx MDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJn ZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRD b2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxl LmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2lu ZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0 KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUlu Zm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBD NjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkg PT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwor ICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7 CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9v bENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFu Zy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJn cyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9v bENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAg ICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpU cmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01h am9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5p c011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAg ICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2Ug bGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Cisg ICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCmluZGV4IDdiMzYx YmJiZjViYy4uMjc0YjU3MTgzNjU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtNDMsNiArNDMsMTIgQEAgY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFO R19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAorX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5n O2xsZCIKKworc3VicGFja2FnZXMrPSIgY2xhbmcxMiBsaWJjbGFuZzEyIGxpYmNsYW5nMTItY3Bw IGxpYmxsdm0xMiBsbGQxMiBsbGQxMi1kZXZlbCIKKworY29uZmlndXJlX2FyZ3MrPSIgLURMTFZN X0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKKwogcG9zdF9wYXRjaCgpIHsK IAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KIAlj cCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5n dWVzcyBcCkBAIC03Myw4ICs3OSwxMCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4v Li4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNU Uz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxl R2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJ WyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMv bGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49 JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCisJCWNvbmZpZ3VyZV9h cmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xh bmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2Fy Z3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGIt dGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0xMTcsNiArMTI1LDY5IEBAIGRvX2luc3RhbGwo KSB7CiAJZmkKIH0KIAorY2xhbmcxMl9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0iY2xhbmciCisJ bGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJsaWJzdGRjKystZGV2ZWwgbGliZ2NjLWRldmVs ICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCisJIGxpYmNsYW5nMTItJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJv bnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFu Zy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3ZlIHVzci9iaW4vYy1pbmRleC10 ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZwor CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcq LnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFu ZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQorCX0KK30KKworbGliY2xhbmcx Ml9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFy eSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9 Cit9CisKK2xpYmNsYW5nMTItY3BwX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIEMgZnJv bnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCisJfQorfQorCitsbGQxMl9wYWNr YWdlKCkgeworCWNvbmZsaWN0cz0ibGxkIgorCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVz Yys9IiAtIGxpbmtlciIKKwlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vbGxkKgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQK KwkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCisJCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZt b3ZlIHVzci9zaGFyZS9kb2MvbGxkCisJfQorfQorCitsbGQxMi1kZXZlbF9wYWNrYWdlKCkgewor CWNvbmZsaWN0cz0ibGxkLWRldmVsIgorCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9 IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQxMj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCisJCXZtb3ZlIHVzci9saWIvY21h a2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0KK30KKwogbGlibGx2bTEyX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKIAlwa2dfaW5zdGFs bCgpIHsKCkZyb20gZmIzZjdmMDdjNjFhZmIzYjNlZTM2ZjMzODg2ZDgwNjFhZWU3MWQzYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGlu Zy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDUvMjZdIGNocm9taXVtOiB1cGRhdGUgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2No cm9taXVtL3RlbXBsYXRlIHwgMTAgKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Rl bXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCAwZGNlODc3MmZkYjguLjhi NjA0YTM0OTIyOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogcGtnbmFtZT1jaHJvbWl1 bQogIyBTZWUgaHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBwc3BvdC5jb20vcmVsZWFzZXM/cGxhdGZv cm09TGludXggZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgogdmVyc2lvbj0xMDEuMC40OTUxLjQxCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12 N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0iR29vZ2xlJ3MgYXR0ZW1wdCBhdCBjcmVhdGluZyBh IHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0YWJsZSBicm93c2VyIgogbWFpbnRhaW5lcj0iRHVu Y2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKQEAgLTIwLDcgKzIwLDcgQEAgZGVzY19vcHRp b25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRlc2Nfb3B0aW9uX2pzX29wdGlt aXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0ncyBVSSIKIGRlc2Nfb3B0aW9u X3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNoYXJpbmcgZm9yIFdlYlJUQyB2 aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nICJjbGFuZyBs bGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmph IG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxs ZCBsbHZtMTQiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEg bm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2 ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxhbmQtZGV2ZWwgbGliZXBveHkt ZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwg bnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxp Ymdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGlscy1kZXZlbApAQCAtMjY2LDEy ICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVzdGlu Z19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKLQotCQkjIHNlZ2Zh dWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19jZmk9ZmFsc2UnCi0JCSd1c2VfdGhpbl9sdG89 ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwotCQknY2hyb21lX3Bnb19waGFzZT0wJwog CSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSA2ZjkyZWRiOTQ3NzhhNjky ZDViY2U4MWFhMmE5OTRiOTM3NWUxODdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBw cmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAy MDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNl0gZ2hkbDogdXBkYXRlIGZv ciBsbHZtMTQKCi0tLQogc3JjcGtncy9naGRsL3BhdGNoZXMve2xsdm0xMi5wYXRjaCA9PiBsbHZt LnBhdGNofSB8IDIgKysKIHNyY3BrZ3MvZ2hkbC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogcmVuYW1lIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL3tsbHZtMTIucGF0Y2ggPT4gbGx2 bS5wYXRjaH0gKDgyJSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTIu cGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXgg ODIlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0xMi5wYXRjaApyZW5hbWUg dG8gc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bS5wYXRjaAppbmRleCA4ZDJmNzZiZmRhMDYuLjky MDE4MTZhZTA1MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bTEyLnBhdGNo CisrKyBiL3NyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0ucGF0Y2gKQEAgLTcsNiArNyw4IEBAIGlu ZGV4IGMxYzFhNmQuLmRhZDdjMzggMTAwNzU1CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTAuMCAk bGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTEuMCAkbGx2bV92ZXJzaW9u IHx8CiArICAgICAgIGNoZWNrX3ZlcnNpb24gMTIuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAg IGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAgIGNoZWNrX3ZlcnNp b24gMTQuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGZhbHNlOyB0aGVuCiAgICAgIGVjaG8g IkRlYnVnZ2luZyBpcyBlbmFibGVkIHdpdGggbGx2bSAkbGx2bV92ZXJzaW9uIgogICAgZWxzZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3RlbXBsYXRlIGIvc3JjcGtncy9naGRsL3RlbXBsYXRl CmluZGV4IGU3NTZkOGMzY2Q4Ny4uOWNhMTE2OWIyMmJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2do ZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCkBAIC03LDcgKzcsNyBAQAog cGtnbmFtZT1naGRsCiByZXZlcnRzPSIyMDE4MTEyOV8xIgogdmVyc2lvbj0xLjAuMAotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1wcmVmaXg9L3VzciAtLXNyY2Rpcj0uLiAtLWluY2Rpcj1saWIvZ2hkbC9pbmNsdWRlIgogbWFr ZWRlcGVuZHM9InpsaWItZGV2ZWwiCgpGcm9tIGI2MjAzYzdlYWMxYjUzYjlhODBjNjczYmZhOGIw YzU2OWRlYjc3MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0 aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6Mzgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzI2XSBxdDU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIv c3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggZWU3ODhmYWQyMDE5Li4yNWYxNTU4M2E0MmQgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRl CkBAIC0zLDcgKzMsNyBAQCBwa2duYW1lPXF0NQogdmVyc2lvbj01LjE1LjMrMjAyMjAyMjIKICMg Y29tbWl0IGZjY2E4MmNhNDBhNWQ4YTAyYTRkZGQ5MDg0NmQwNzBmMmM1OGNmYWQKICMgYmFzZSBy ZXBvOiBodHRwczovL2ludmVudC5rZGUub3JnL3F0L3F0L3F0NQotcmV2aXNpb249MworcmV2aXNp b249NAogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4 IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGljaCIKCkZy b20gYzQ2NjNhOWMzOTRkYzVkNDhkZTk2ZTM2NDY4ODcwMjdlYTE3MTE4YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+ CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgv MjZdIHRpbGl4OiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy90aWxpeC90ZW1wbGF0 ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbGl4L3RlbXBs YXRlCmluZGV4IGQ4ZjAxNGJjNzhjNS4uYWMxYmY3ZGQzYmRkIDEwMDY0NAotLS0gYS9zcmNwa2dz L3RpbGl4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0aWxpeCcKIHBrZ25hbWU9dGlsaXgKIHZlcnNpb249 MS45LjQKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1 cmVfYXJncz0iLURiX2x0bz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0iYXV0b21ha2UgZ2V0dGV4 dC1kZXZlbCBnZGstcGl4YnVmIGdsaWItZGV2ZWwgbGRjIHBvNGEgcGtnLWNvbmZpZwoKRnJvbSA0 Mzg3NTUxNGY4NTBjMzZmNjExMmExM2U3NzQ5MWEyYWQ1NzI2ZjgyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0 ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNl0g c2hpYm9rZW4yOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9zaGlib2tlbjIvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hp Ym9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYxMzIyOWMxMy4uYWI5ZDJjNGNiOGY5IDEwMDY0NAot LS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicK IHBrZ25hbWU9c2hpYm9rZW4yCiB2ZXJzaW9uPTUuMTUuMgotcmV2aXNpb249NAorcmV2aXNpb249 NQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3ZlcnNpb259Igogd3Jr c3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81LjE0LjJ9IgogYnVpbGRfd3Jrc3JjPSJzb3VyY2Vz L3NoaWJva2VuMiIKCkZyb20gYTVmYTZjMWRiZDI2ZjE4NTg5MjkwODFmYzk5OThmNTY5YzJlZTZl OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0 cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvMjZdIGdub21lLWJ1aWxkZXI6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXgg OTM1NTliMjE3NzRmLi41YTVhNTE4OTNhZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVp bGRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1n bm9tZS1idWlsZGVyCiB2ZXJzaW9uPTQxLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1EaGVscD10 cnVlIC1EbmV0d29ya190ZXN0cz1mYWxzZSIKCkZyb20gMmFmYzlhYzUzM2I4YWVhMDU5OGZmY2Ex Y2E2NDZhOWM1MzMwZWY1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJl ekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTow NzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjZdIGJjYzogcmVidWlsZCBmb3IgbGx2bTE0 CgotLS0KIHNyY3BrZ3MvYmNjL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iY2MvdGVtcGxh dGUgYi9zcmNwa2dzL2JjYy90ZW1wbGF0ZQppbmRleCA1NDUwOWI2M2Q1YTcuLjJjZmEwYTI5Nzdk MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iY2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iY2MvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiY2MnCiBwa2duYW1l PWJjYwogdmVyc2lvbj0wLjI0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIHdya3NyYz0iYmNj IgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFJFVklTSU9OPSR7dmVyc2lv bn0gLURFTkFCTEVfTExWTV9TSEFSRUQ9MSIKCkZyb20gZGQxZTA2YTE1MDhkMjI5NDRiZGM3Nzcx Y2M2MDkzZDAzMWI1ZTVjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJl ekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTow NzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL21lc2EvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVt cGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXggYzkwNTAwZGU3NDE2Li44ZjA4MjYy ZmIxMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21l c2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwog cGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIxLjMuNwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGdsdm5kPXRydWUgLURzaGFyZWQtZ2xh cGk9ZW5hYmxlZCAtRGdibT1lbmFibGVkIC1EZWdsPWVuYWJsZWQKICAtRG9zbWVzYT10cnVlIC1E Z2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVuYWJsZWQgLURnbHg9ZHJpIC1EZHJpMz1lbmFibGVkCgpG cm9tIGIyNTdjMzA3NmE3N2Y1YmJmNGRkM2Q5ZTc2OTFlMWMwYWM1MzAwNTEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5 PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEz LzI2XSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2p1Q2krKy90ZW1w bGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIGIvc3JjcGtncy9qdUNpKysv dGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsrJwogcGtnbmFtZT1qdUNpKysK IHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIF9saWJjbGFuZ21tX2NvbW1p dD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZjZmM3ZTI0YWFlOTU5MCIKIF90aW55X2NvbW1p dD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVlNjI4YTY5MGU3NzlmNSIKIHdya3NyYz0ianVj aXBwLXYke3ZlcnNpb259IgoKRnJvbSAxOTAwZGU1ZDdkYWM2YjljMmEyYmJjNzM2MDhhYTMwZDNl MDZhMzRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFs LnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAxNC8yNl0gY29kZWxpdGU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jb2RlbGl0ZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKaW5kZXggM2E5OTNhMmMwY2ZiLi4y NGUyYzg3OWRkNDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2NvZGVsaXRlJwogcGtnbmFtZT1jb2RlbGl0ZQogdmVyc2lvbj0xNS4wLjYKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9Y21ha2Ut d3hXaWRnZXRzLWd0azMKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfUENIPTAgLURXSVRIX1dYX0NP TkZJRz13eC1jb25maWctZ3RrMwoKRnJvbSAxNjlhY2MzOWNmZjA2MGVhMjYzNThkMmRhZTU1YmU3 MjY5YmFkMGNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlv bmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICsw MjAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNl0gY2NsczogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0K IHNyY3BrZ3MvY2Nscy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBi L3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQppbmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAx MDA2NDQKLS0tIGEvc3JjcGtncy9jY2xzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1l PWNjbHMKIHZlcnNpb249MC4yMDIxMDMzMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRf c3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVw ZW5kcz0ibGx2bSBuY3Vyc2VzLWRldmVsIHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xz LWV4dHJhIgoKRnJvbSAxMWUwMmFiNDQxYjM3ODhhMjAwNjNkZjBjMjZjYjE5YTA4YWI2MzRiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0 aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNi8yNl0gY2xhenk6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2Ns YXp5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y2xhenkvdGVtcGxhdGUKaW5kZXggMTFmM2JhYjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6 eQogdmVyc2lvbj0xLjExCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFr ZQogYnVpbGRfaGVscGVyPXFlbXUKIGhvc3RtYWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gNmUzYTU5 MWM4ZWE4NWEyZWEzMDk4ZWU0MGY3Mzg3MzQ1ZTg2YTFiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1v biwgMiBNYXkgMjAyMiAxOTowNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIGJwZnRy YWNlOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2JwZnRyYWNlL3Rl bXBsYXRlCmluZGV4IDI4YWIzYzYyNjM5OS4uZWIyNDgwZDIyMzBlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2JwZnRyYWNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9YnBm dHJhY2UKIHZlcnNpb249MC4xNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0ieDg2 XzY0KiBhYXJjaDY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1EQlVJTERfVEVTVElORz1PRkYiICAjIG5lZWRzIHJvb3QgdG8gcnVuCgpGcm9tIDllYTVmOTEy M2YwYzAxYjFiYjc5MmJkMzliZWJmNjE1NzdiMWEyZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24s IDIgTWF5IDIwMjIgMTk6MDc6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzI2XSBydGFnczog cmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBi NDk2YTFiMGU3MjEuLjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlz aW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBp biBkb19pbnN0YWxsLCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUi CgpGcm9tIDMwNmZjZDIwMzUxY2FjOTYxOWIxNzE4YjQ5NzlkY2M1YWIzNGI5NDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdl bmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MDc6MTkgKzAyMDAKU3ViamVjdDogW1BBVENI IDE5LzI2XSBiZWlnbmV0OiByZW1vdmUgcGFja2FnZQoKLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9jbF91aW50LnBhdGNoICAgICAgICAgfCAgMjIgLQogLi4uNDE5YTAwMDhlMzhlZjJkOWQy NTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoIHwgMTM0IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNo ZXMvbGx2bTA2LnBhdGNoICAgICAgICAgIHwgIDMzIC0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0wOC5wYXRjaCAgICAgICAgICB8ICA1NiAtLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTA5LnBhdGNoICAgICAgICAgIHwgMTExIC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTEwLnBhdGNoICAgICAgICAgIHwgMzQ3IC0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMS5wYXRjaCAgICAgICAgICB8IDkzNyAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaCAgICAgICAgICB8IDExNSAtLS0KIHNyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8ICAxMSAtCiBzcmNwa2dz L2JlaWduZXQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgLQogc3JjcGtncy9i ZWlnbmV0L3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvcmVt b3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMyArLQogMTIgZmlsZXMgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxNzkwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5 Yzc0ZTlmYmEwODRiLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA5LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTExLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC90ZW1w bGF0ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoIGIvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ODZiYTAwZjA0ZTk1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv Y2xfdWludC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLSBhL3NyYy9j bF9hcGlfa2VybmVsLmMJMjAxNy0wOS0yMiAxMDowNToyMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBi L3NyYy9jbF9hcGlfa2VybmVsLmMJMjAyMC0wMy0yNCAxODoyNzo0MC4xODY0ODU4ODcgKzAxMDAK LUBAIC0xNTEsNyArMTUxLDcgQEAKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6WzBdID0gMTY7Ci0g ICAgICAgICBmaXhlZF9sb2NhbF9zelsxXSA9IDE7Ci0gICAgICAgfSBlbHNlIHsKLS0gICAgICAg IHVpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZyb20gNjQ/ICovLCBtYXhHcm91cFNpemUgPSAy NTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkgdG9vIGxhcmdlCi0rICAgICAgICBjbF91aW50 IGosIG1heERpbVNpemUgPSA2NCAvKiBmcm9tIDY0PyAqLywgbWF4R3JvdXBTaXplID0gMjU2OyAv L01BWF9XT1JLX0dST1VQX1NJWkUgbWF5IHRvbyBsYXJnZQotICAgICAgICAgc2l6ZV90IHJlYWxH cm91cFNpemUgPSAxOwotICAgICAgICAgZm9yIChpID0gMDsgaSA8IHdvcmtfZGltOyBpKyspIHsK LSAgICAgICAgICAgZm9yIChqID0gbWF4RGltU2l6ZTsgaiA+IDE7IGotLSkgewotLS0tIGEvc3Jj L2NsX2VucXVldWUuYwkyMDE3LTA5LTIyIDEwOjA1OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGIv c3JjL2NsX2VucXVldWUuYwkyMDIwLTAzLTI0IDE4OjMwOjEyLjAzMTQ3OTgzMyArMDEwMAotQEAg LTQ5NCw3ICs0OTQsNyBAQAotIGNsX2ludCBjbF9lbnF1ZXVlX3N2bV9mcmVlKGVucXVldWVfZGF0 YSAqZGF0YSwgY2xfaW50IHN0YXR1cykgewotICAgaW50IGk7Ci0gICB2b2lkICoqcG9pbnRlcnMg PSBkYXRhLT5wb2ludGVyczsKLS0gIHVpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSsg IGNsX3VpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSAgIGNsX2ludCBlcnIgPSBDTF9T VUNDRVNTOwotIAotICAgaWYgKHN0YXR1cyAhPSBDTF9DT01QTEVURSkKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZi YTA4NGIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJk OWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA4ZGU5ZTZlMmYwOTMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLUZyb20gZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDll OWM3NGU5ZmJhMDg0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJSZWJlY2NhIE4u IFBhbG1lciIgPHJlYmVjY2FfcGFsbWVyQHpvaG8uY29tPgotRGF0ZTogU2F0LCAyMSBKdWwgMjAx OCAyMDowNTo1NCArMDEwMAotU3ViamVjdDogQWRkIHByZWxpbWluYXJ5IExMVk0gNyBzdXBwb3J0 Ci0KLVRoaXMgaXMgcHJlbGltaW5hcnkgYmVjYXVzZSBMTFZNIDcgaGFzIG5vdCBiZWVuIHJlbGVh c2VkIHlldDoKLWl0IHdhcyB0ZXN0ZWQgd2l0aCB0aGUgc25hcHNob3QgZnJvbSBEZWJpYW4gZXhw ZXJpbWVudGFsIChzdm4zMzY4OTQpLgotCi0xLkNoYW5nZSBsaW5raW5nIG9yZGVyLCBhcyBjbGFu Z0NvZGVHZW4gbm93IGxpbmtzIHRvIGNsYW5nRnJvbnRlbmQKLTIuUGFzcyByZWZlcmVuY2VzIG5v dCBwb2ludGVycyB0byBXcml0ZUJpdGNvZGVUb0ZpbGUgYW5kIENsb25lTW9kdWxlCi0zLkFkZCB0 aGUgaGVhZGVycyB0aGF0IExvb3BTaW1wbGlmeUlELCBMQ1NTQUlEIGFuZAotc29tZSBjcmVhdGUq UGFzcyBoYXZlIG1vdmVkIHRvCi00LkRlZmluZSBvdXIgREVCVUcgd2hldGhlciBvciBub3Qgd2Ug anVzdCB1bmRlZmluZWQgTExWTSdzCi0odGhlaXJzIGlzIG5vdyBMTFZNX0RFQlVHLCBidXQgd2Ug bmV2ZXIgYWN0dWFsbHkgdXNlIGl0KQotCi1TaWduZWQtb2ZmLWJ5OiBSZWJlY2NhIE4uIFBhbG1l ciA8cmViZWNjYV9wYWxtZXJAem9oby5jb20+Ci1SZXZpZXdlZC1ieTogWWFuZyBSb25nIDxyb25n LnIueWFuZ0BpbnRlbC5jb20+Ci0tLS0KLSBDTWFrZS9GaW5kTExWTS5jbWFrZSAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQotIGJhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwICAg ICAgfCA4ICsrKysrKysrCi0gYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCAgICAgICAg ICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgfCAy ICstCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAgICB8IDQgKysrKwot IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAgICAgICAgfCA0ICsrKysKLSA2IGZp bGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9DTWFrZS9GaW5kTExWTS5jbWFrZSBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1pbmRleCA1 NDU3ZjI0Li5mODgyNTg5IDEwMDY0NAotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBi L0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTEzLDEwICsxMTMsMTAgQEAgbWFjcm8oYWRkX29u ZV9saWIgbmFtZSkKLSBlbmRtYWNybygpCi0gCi0gI0Fzc3VtZSBjbGFuZyBsaWIgcGF0aCBzYW1l IGFzIGxsdm0gbGliIHBhdGgKLSthZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25l X2xpYigiY2xhbmdGcm9udGVuZCIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VyaWFsaXphdGlvbiIp Ci0gYWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1hZGRfb25lX2xpYigiY2xhbmdDb2RlR2Vu IikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNB bmFseXplckZyb250ZW5kIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNoZWNr ZXJzIikKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcCBi L2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1pbmRleCAyNzRjOTljLi40MTU5 MjM0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAKLSsr KyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1AQCAtNDU0LDcgKzQ1NCwx MSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWZkZWYgR0JFX0NPTVBJTEVSX0FWQUlMQUJMRQotICAg ICAgIHN0ZDo6c3RyaW5nIHN0cjsKLSAgICAgICBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gT1Mo c3RyKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgICBsbHZtOjpXcml0ZUJp dGNvZGVUb0ZpbGUoKigobGx2bTo6TW9kdWxlKilwcm9nLT5tb2R1bGUpLCBPUyk7Ci0rI2Vsc2UK LSAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKGxsdm06Ok1vZHVsZSopcHJvZy0+bW9k dWxlLCBPUyk7Ci0rI2VuZGlmCi0gICAgICAgc3RkOjpzdHJpbmcmIGJpbl9zdHIgPSBPUy5zdHIo KTsKLSAgICAgICBpbnQgbGxzeiA9IGJpbl9zdHIuc2l6ZSgpOwotICAgICAgICpiaW5hcnkgPSAo Y2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAobGxzeisxKSApOwotQEAgLTU0NSw3ICs1NDks MTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm1vZFJlZik7Ci0gICAgICAgICBzcmMgPSBsbHZtOjp1bndyYXAobW9kUmVmKTsKLSAgICAg ICB9Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgICAgbGx2bTo6TW9kdWxlKiBj bG9uZSA9IGxsdm06OkNsb25lTW9kdWxlKCpzcmMpLnJlbGVhc2UoKTsKLSsjZWxzZQotICAgICAg IGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9uZU1vZHVsZShzcmMpLnJlbGVhc2UoKTsK LSsjZW5kaWYKLSAgICAgICBpZiAoTExWTUxpbmtNb2R1bGVzMih3cmFwKGRzdCksIHdyYXAoY2xv bmUpKSkgewotICNlbGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01J Tk9SID49IDM3Ci0gICAgICAgaWYgKExMVk1MaW5rTW9kdWxlcyh3cmFwKGRzdCksIHdyYXAoc3Jj KSwgTExWTUxpbmtlclByZXNlcnZlU291cmNlX1JlbW92ZWQsICZlcnJNc2cpKSB7Ci1kaWZmIC0t Z2l0IGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tl bmQvcHJvZ3JhbS5jcHAKLWluZGV4IGMzN2M1OTUuLmIzNmY3YjQgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL3By b2dyYW0uY3BwCi1AQCAtNzk0LDcgKzc5NCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBs bHZtOjpyYXdfZmRfb3N0cmVhbSBvc3RyZWFtIChkdW1wU1BJUkJpbmFyeU5hbWUuY19zdHIoKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIsIGxsdm06OnN5czo6ZnM6 OkZfTm9uZSk7Ci0gICAgICAgaWYgKCFlcnIpCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUjw3Ci0g ICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKm91dF9tb2R1bGUsIG9zdHJlYW0pOwot KyNlbHNlCi0rICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKipvdXRfbW9kdWxlLCBv c3RyZWFtKTsKLSsjZW5kaWYKLSAgICAgfQotICNlbmRpZgotICAgICByZXR1cm4gdHJ1ZTsKLWRp ZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwIGIvYmFj a2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMS4uNGFl YzQ0ZSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5j cHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLUBAIC05 OSw4ICs5OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIAotICNpZmRlZiBERUJVRwotICAg I3VuZGVmIERFQlVHCi0tICAjZGVmaW5lIERFQlVHKC4uLikKLSAjZW5kaWYKLSsjZGVmaW5lIERF QlVHKC4uLikKLSAvLyBCcmVhayBpbnN0cnVjdGlvbnMgdXAgaW50byBubyBsYXJnZXIgdGhhbiA2 NC1iaXQgY2h1bmtzLgotIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrQ2h1bmtCaXRzID0gNjQ7Ci0g c3RhdGljIGNvbnN0IHVuc2lnbmVkIGtDaHVua0J5dGVzID0ga0NodW5rQml0cyAvIENIQVJfQklU OwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLWluZGV4IGVmNTZlNGMuLjRj M2UyMGUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNw cAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLUBAIC0zNDAs NyArMzQwLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgLyogV2UgdXNlIGJlaWduZXQncyBiaXRj b2RlIGFzIGRzdCBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBhIGxvdCBvZgotICAgICAgICBsYXp5IGZ1 bmN0aW9ucyB3aGljaCB3aWxsIG5vdCBiZSBsb2FkZWQuICovCi0gI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM5Ci0rI2lmIExMVk1fVkVSU0lPTl9N QUpPUiA+PSA3Ci0rICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtlZF9tb2R1bGUgPSBsbHZtOjpDbG9u ZU1vZHVsZSgqKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0rI2Vsc2UKLSAgICAgbGx2 bTo6TW9kdWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06OkNsb25lTW9kdWxlKChsbHZtOjpNb2R1 bGUqKW1vZCkucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICBpZihMTFZNTGlua01vZHVsZXMyKHdy YXAoY2xvbmVkTGliKSwgd3JhcChsaW5rZWRfbW9kdWxlKSkpIHsKLSAjZWxzZQotICAgICBjaGFy KiBlcnJvck1zZzsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMu aHBwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAotaW5kZXggMTg0NTUzYS4u ZmZjY2YwMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLUBAIC04OSw2ICs4OSwx MCBAQAotICNpbmNsdWRlICJsbHZtL0NvZGVHZW4vSW50cmluc2ljTG93ZXJpbmcuaCIKLSAKLSAj aW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL1NjYWxhci5oIgotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPj0gNwotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaCIKLSsjaW5jbHVkZSAi bGx2bS9UcmFuc2Zvcm1zL0luc3RDb21iaW5lL0luc3RDb21iaW5lLmgiCi0rI2VuZGlmCi0gI2lu Y2x1ZGUgImxsdm0vTUMvTUNBc21JbmZvLmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNDb250ZXh0 LmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNJbnN0ckluZm8uaCIKLS0tIAotY2dpdCB2MS4xCi0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMzM4OWU2NmM4MmRmLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotU291cmNl OiBBcmNoIExpbnV4Ci1VcHN0cmVhbTogdW5rbm93bgotUmVhc29uOiBmaXhlcyBsbHZtNiBjb21w aWxhdGlvbgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE3LTEw LTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3RvX2dlbi5jcHAJMjAxOC0wMy0xNiAxNjowODo1NC42Njk5NjM4MjQgKzAyMDAKLUBAIC0zMjIs NyArMzIyLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgRGF0YUxheW91dCBETCgmbW9kKTsKLSAg ICAgCi0gICAgIGdiZURpYWdub3N0aWNDb250ZXh0IGRjOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPj0gNgotKyAgICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5kbGVyQ2FsbEJh Y2soJmdiZURpYWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2Vsc2UKLSAgICAgbW9kLmdldENvbnRl eHQoKS5zZXREaWFnbm9zdGljSGFuZGxlcigmZ2JlRGlhZ25vc3RpY0hhbmRsZXIsJmRjKTsKLSsj ZW5kaWYKLSAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gMzcKLSAgICAgbW9kLnNldERhdGFMYXlvdXQoREwpOwotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Vucm9sbC5jcHAJMjAxNy0xMC0yNCAwOTowNDo0OC4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJvbGwuY3BwCTIwMTgtMDMtMTYgMTY6MDk6 NDcuNzM2NDAzNTU3ICswMjAwCi1AQCAtMjA1LDcgKzIwNSw5IEBAIG5hbWVzcGFjZSBnYmUgewot ICAgICAgICAgICBpZiAocGFyZW50VHJpcENvdW50ICE9IDAgJiYgY3VyclRyaXBDb3VudCAqIHBh cmVudFRyaXBDb3VudCA+IDMyKSB7Ci0gICAgICAgICAgICAgLy9Eb24ndCBjaGFuZ2UgdGhlIHVu cm9sbElEIGlmIGRvZXNuJ3QgZm9yY2UgdW5yb2xsLgotICAgICAgICAgICAgIC8vc2V0VW5yb2xs SUQocGFyZW50TCwgZmFsc2UpOwotLSNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSAzOAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAgICAg ICAgICAgIGxvb3BJbmZvLmVyYXNlKHBhcmVudEwpOwotKyNlbGlmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0gICAgICAgICAgICAgbG9vcEluZm8u bWFya0FzUmVtb3ZlZChwYXJlbnRMKTsKLSAjZWxzZQotICAgICAgICAgICAgIExQTS5kZWxldGVM b29wRnJvbVF1ZXVlKHBhcmVudEwpOwotT25seSBpbiBCZWlnbmV0LTEuMy4yLVNvdXJjZTogYnVp bGQKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoIGIv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBhMGM1ZTdhN2M0ZjcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1G cm9tIDc1YzE1MjU5OWE3YzE3MzllNmRhZGNkYjliMzc3YWNmN2U0NGQ5Y2YgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gQmVpY2ggPGpiZWljaEBGcmVlQlNELm9yZz4KLURhdGU6 IFdlZCwgMzAgSmFuIDIwMTkgMTI6NDI6MzQgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGFuZy9i ZWlnbmV0OiB1bmJyZWFrIHdpdGggbGx2bTgwCi0KLVJlZ3Jlc3NlZCBieSBodHRwczovL2dpdGh1 Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0LzcyMWQ5NTcxM2E5ZQotCi11bmFibGUgdG8g bG9hZCAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRlcnAuc28gd2hpY2ggaXMgcGFy dCBvZiB0aGUgZHJpdmVyLCBwbGVhc2UgY2hlY2shCi1sZC1lbGYuc28uMTogL3Vzci9sb2NhbC9s aWIvYmVpZ25ldC8vbGliZ2JlaW50ZXJwLnNvOiBVbmRlZmluZWQgc3ltYm9sICJfWk40bGx2bTI0 RGlzYWJsZUFCSUJyZWFraW5nQ2hlY2tzRSIKLQotUmVncmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHVi LmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvNGEyZDU4ZTE2YWNjCi0KLWJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA3Njo1OiBlcnJvcjoKLSAgICAgIHVua25vd24g dHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJi LT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNr ZW5kLmNwcDozMDgzOjU6IGVycm9yOgotICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0 b3JJbnN0JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsK LSAgICBeCi0KLS0tLSBhL2JhY2tlbmQvc3JjL0NNYWtlTGlzdHMudHh0CTIwMTctMDktMjIgMDg6 MDU6MjIgVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotQEAgLTE2OCw2ICsx NjgsNyBAQCBhZGRfZGVwZW5kZW5jaWVzKGdiZSBiZWlnbmV0X2JpdGNvZGUpCi0gZW5kaWYgKE5P VCAoVVNFX1NUQU5EQUxPTkVfR0JFX0NPTVBJTEVSIFNUUkVRVUFMICJ0cnVlIikpCi0gCi0gYWRk X2xpYnJhcnkoZ2JlaW50ZXJwIFNIQVJFRCBnYmVfYmluX2ludGVycHJldGVyLmNwcCkKLSt0YXJn ZXRfbGlua19saWJyYXJpZXMoZ2JlaW50ZXJwICR7TExWTV9NT0RVTEVfTElCU30pCi0gCi0gaWYg KExMVk1fVkVSU0lPTl9OT0RPVCBWRVJTSU9OX0VRVUFMIDM0KQotICAgZmluZF9saWJyYXJ5KFRF Uk1JTkZPIE5BTUVTIHRpbmZvIG5jdXJzZXMpCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f Z2VuX2JhY2tlbmQuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA3MywxNCArMzA3MywyMiBAQCBuYW1l c3BhY2UgZ2JlCi0gCi0gCi0gICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2hpbGRObyhCYXNpY0Jsb2Nr ICpiYikgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0gICAgIFRlcm1pbmF0b3JJbnN0 ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQotKyAgICBJbnN0cnVjdGlvbiAq dGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0gICAgIHJldHVybiB0ZXJtLT5n ZXROdW1TdWNjZXNzb3JzKCk7Ci0gICB9Ci0gCi0gICAvLyByZXR1cm4gTlVMTCBpZiBpbmRleCBv dXQtcmFuZ2Ugb2YgY2hpbGRyZW4gbnVtYmVyCi0gICBzdGF0aWMgQmFzaWNCbG9jayAqZ2V0Q2hp bGRQb3NzaWJsZShCYXNpY0Jsb2NrICpiYiwgdW5zaWduZWQgaW5kZXgpIHsKLSAKLSsjaWYgTExW TV9WRVJTSU9OX01BSk9SIDwgOAotICAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRU ZXJtaW5hdG9yKCk7Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVy bWluYXRvcigpOwotKyNlbmRpZgotICAgICB1bnNpZ25lZCBjaGlsZE5vID0gdGVybS0+Z2V0TnVt U3VjY2Vzc29ycygpOwotICAgICBCYXNpY0Jsb2NrICpjaGlsZCA9IE5VTEw7Ci0gICAgIGlmKGlu ZGV4IDwgY2hpbGRObykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTA5LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2FlY2VhYmI2ZGQuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MTEgKzAsMCBAQAotU291cmNlOiBGcmVlQlNEICsgcTY2Ci0KLU1vc3RseSBGcmVlQlNEIG90aGVy IHRoYW4gRmluZExMVk0uY21ha2UgY2hhbmdlcy4KLUxpbmtpbmcgYWdhaW5zdCBjbGFuZy1jcHAg ZG9lcyBub3Qgd29yayBmb3IgdXMuCi0KLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysg Yi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTE0MCw2ICsxNDAsNyBAQCBhZGRfb25lX2xpYigi Y2xhbmdTdGF0aWNBbmFseXplckNvcmUiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0FuYWx5c2lzIikK LSBhZGRfb25lX2xpYigiY2xhbmdFZGl0IikKLSBhZGRfb25lX2xpYigiY2xhbmdBU1QiKQotK2Fk ZF9vbmVfbGliKCJjbGFuZ0FTVE1hdGNoZXJzIikKLSBhZGRfb25lX2xpYigiY2xhbmdQYXJzZSIp Ci0gYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0gYWRkX29uZV9saWIoImNsYW5nTGV4IikKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCTIwMTctMTAt MjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2ljX2xv d2VyaW5nLmNwcAotQEAgLTc3LDcgKzc3LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAg c3RkOjp2ZWN0b3I8VHlwZSAqPiBQYXJhbVR5czsKLSAgICAgICAgIGZvciAoVmFsdWUqKiBJID0g QXJnQmVnaW47IEkgIT0gQXJnRW5kOyArK0kpCi0gICAgICAgICAgIFBhcmFtVHlzLnB1c2hfYmFj aygoKkkpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgRnVuY3Rpb25DYWxsZWUgRkNhY2hlID0gTS0+ Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbiwKLSsjZWxzZQotICAgICAgICAgQ29uc3RhbnQqIEZD YWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4sCi0rI2VuZGlmCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZTo6Z2V0KFJldFR5LCBQ YXJhbVR5cywgZmFsc2UpKTsKLSAKLSAgICAgICAgIElSQnVpbGRlcjw+IEJ1aWxkZXIoQ0ktPmdl dFBhcmVudCgpLCBCYXNpY0Jsb2NrOjppdGVyYXRvcihDSSkpOwotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTgyLDcgKzgyLDExIEBA IG5hbWVzcGFjZSBnYmUgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVS U0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgICBNb2R1bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+ Z2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgICBGdW5jdGlvbkNhbGxlZSBzYW1w bGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50 IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAg ICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xf c2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsj ZW5kaWYKLSAjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5z ZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVy YW5kKDApLT5nZXRUeXBlKCksIG51bGxwdHIpOwotICNlbmRpZgotQEAgLTEyNCw3ICsxMjgsMTEg QEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICAgIE1vZHVsZSAqTSA9IEktPmdldFBhcmVudCgp LT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNh bXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19p bnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICAg ICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29j bF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwot KyNlbmRpZgotICNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJ bnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9w ZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0cik7Ci0gI2VuZGlmCi0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAKLUBAIC0xNjMsMTAgKzE2MywxOCBA QCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgLy8gX19nZW5fb2NsX3N0b3JlX3RpbWVzdGFtcChpbnQg bnRoLCBpbnQgdHlwZSk7Ci0gICAgICAgVmFsdWUgKkFyZ3NbMl0gPSB7Q29uc3RhbnRJbnQ6Omdl dChpbnRUeSwgcG9pbnROdW0rKyksIENvbnN0YW50SW50OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5 cGUpfTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gOTAKLSsgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbigKLSsjZWxzZQotICAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5j dGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAgICAg ICAgIl9fZ2VuX29jbF9jYWxjX3RpbWVzdGFtcCIsIFR5cGU6OmdldFZvaWRUeShtb2R1bGUtPmdl dENvbnRleHQoKSksCi0gICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1 bGUtPmdldENvbnRleHQoKSksCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJU eShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgICBJbnRlZ2Vy VHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAg ICAgICAgICAgIEFycmF5UmVmPFZhbHVlKj4oQXJncykpOwotICNlbHNlCi0gICAgICAgYnVpbGRl ci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVu Y3Rpb24oCi1AQCAtMTg1LDEwICsxOTMsMTggQEAgbmFtZXNwYWNlIGdiZQotICAgICBWYWx1ZSAq QXJnczJbMl0gPSB7cHJvZmlsaW5nQnVmLCBDb25zdGFudEludDo6Z2V0KGludFR5LCBwcm9maWxp bmdUeXBlKX07Ci0gCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDkwCi0rICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwobW9kdWxlLT5nZXRPckluc2Vy dEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpG dW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAg ICAgICJfX2dlbl9vY2xfc3RvcmVfcHJvZmlsaW5nIiwgVHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+ Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAgICBwdHJUeSwKLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICBJbnRlZ2Vy VHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAg ICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKSksCi0r I2VuZGlmCi0gICAgICAgICAgICAgQXJyYXlSZWY8VmFsdWUqPihBcmdzMikpOwotICNlbHNlCi0g ICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRP ckluc2VydEZ1bmN0aW9uKAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1 ZXVlLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2RldmljZV9lbnF1ZXVlLmNwcAotQEAgLTM5OCw4ICszOTgsMTMgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBhcmFtVHlzOwotICAgICAg ICAgICAgICAgZm9yIChWYWx1ZSoqIGl0ZXIgPSBhcmdzLmJlZ2luKCk7IGl0ZXIgIT0gYXJncy5l bmQoKTsgKytpdGVyKQotICAgICAgICAgICAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2soKCppdGVy KS0+Z2V0VHlwZSgpKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJ T05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICAgIENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIu Q3JlYXRlQ2FsbChtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0 KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSwgYXJncyk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICAg IENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9u Pihtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQ YXJhbVR5cywgZmFsc2UpKSksIGFyZ3MpOwotKyNlbmRpZgotICAgICAgICAgICAgICAgQ0ktPnJl cGxhY2VBbGxVc2VzV2l0aChuZXdDSSk7Ci0gICAgICAgICAgICAgICBkZWFkSW5zblNldC5pbnNl cnQoQ0kpOwotICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFhZmU0OGEyNDBkLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzQ3ICswLDAgQEAKLWRpZmYgLS1naXQgQ01ha2UvRmluZExMVk0uY21ha2UgQ01ha2Uv RmluZExMVk0uY21ha2UKLWluZGV4IDBhNTllNDcuLjZlOTA5MjMgMTAwNjQ0Ci0tLS0gYS9DTWFr ZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBAIC0xMDQsMjgg KzEwNCwxNiBAQCBzdHJpbmcoUkVHRVggUkVQTEFDRSAiICpcbiIgIiIgTExWTV9TWVNURU1fTElC UyAke0xMVk1fU1lTVEVNX0xJQlNfT1JJR30pCi0gZW5kaWYgKExMVk1fU1lTVEVNX0xJQlNfT1JJ RykKLSBlbmRpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZFUlNJT05fR1JFQVRFUiAzNCkKLSAKLSsj c29tZXRoaW5nIGhhcm1sZXNzIGJlY2F1c2Ugd2hpdGVzcGFjZSBhdCBzdGFydCBpcyBhbiBlcnJv cgotK3NldChDTEFOR19MSUJSQVJJRVMgIi1sZGwiKQotIG1hY3JvKGFkZF9vbmVfbGliIG5hbWUp Ci0gICBGSU5EX0xJQlJBUlkoQ0xBTkdfTElCCi0gICAgIE5BTUVTICR7bmFtZX0KLSAgICAgUEFU SFMgJHtMTFZNX0xJQlJBUllfRElSfSBOT19ERUZBVUxUX1BBVEgpCi0tICBzZXQoQ0xBTkdfTElC UkFSSUVTICR7Q0xBTkdfTElCUkFSSUVTfSAke0NMQU5HX0xJQn0pCi0rICBzZXQoQ0xBTkdfTElC UkFSSUVTICIke0NMQU5HX0xJQlJBUklFU30gJHtDTEFOR19MSUJ9IikKLSsgIG1lc3NhZ2UoU1RB VFVTICJjbGFuZ2xpYnMgbmFtZSAke25hbWV9IHRoaXMgJHtDTEFOR19MSUJ9IGFsbCAke0NMQU5H X0xJQlJBUklFU30gIikKLSAJdW5zZXQoQ0xBTkdfTElCIENBQ0hFKQotIGVuZG1hY3JvKCkKLSAK LSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotLWFkZF9vbmVf bGliKCJjbGFuZ0NvZGVHZW4iKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikKLS1hZGRf b25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLS1hZGRfb25lX2xpYigiY2xhbmdEcml2ZXIi KQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0Fu YWx5emVyRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tl cnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29yZSIpCi0tYWRkX29uZV9s aWIoImNsYW5nQW5hbHlzaXMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0VkaXQiKQotLWFkZF9vbmVf bGliKCJjbGFuZ0FTVCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUTWF0Y2hlcnMiKQotLWFkZF9v bmVfbGliKCJjbGFuZ1BhcnNlIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLS1hZGRfb25l X2xpYigiY2xhbmdMZXgiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Jhc2ljIikKLSthZGRfb25lX2xp YigiY2xhbmctY3BwIikKLWRpZmYgLS1naXQgQ01ha2VMaXN0cy50eHQgQ01ha2VMaXN0cy50eHQK LWluZGV4IGMxMWFjYmIuLjA4ZjQyN2QgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysr IGIvQ01ha2VMaXN0cy50eHQKLUBAIC03OSw3ICs3OSw3IEBAIGVsc2VpZiAoQ09NUElMRVIgU1RS RVFVQUwgIkNMQU5HIikKLSBlbHNlaWYgKENPTVBJTEVSIFNUUkVRVUFMICJJQ0MiKQotICAgc2V0 IChDTUFLRV9DX0NYWF9GTEFHUyAiJHtDTUFLRV9DX0NYWF9GTEFHU30gIC13ZDI5MjggLVdhbGwg LWZQSUMgLWZzdHJpY3QtYWxpYXNpbmcgLWZwLW1vZGVsIGZhc3QgLW1zc2U0LjEgLVdsLC1FIikK LSBlbmRpZiAoKQotLXNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtD TUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotK3Nl dCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFH U30gLVduby1pbnZhbGlkLW9mZnNldG9mIikKLSBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0Vf Q19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30iKQotIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RF QlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gc2V0IChDTUFLRV9DWFhfRkxB R1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAtREdCRV9ERUJVRz0xIikKLWRpZmYgLS1naXQgYmFj a2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0u Y3BwCi1pbmRleCBiMzZmN2I0Li5lNjY2MDMxIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFj a2VuZC9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAot QEAgLTY5NCw5ICs2OTQsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjZW5kaWYKLSAgICAgICAgICAg ICAgICAgKTsKLSAKLSsgICAgbGx2bTo6Y2w6OlJlc2V0QWxsT3B0aW9uT2NjdXJyZW5jZXMoKTsK LSAgICAgY2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbjo6Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0gKyBh cmdzLnNpemUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihhcmdzKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlhZ3MpOwotICAgICAvLyBDcmVhdGUgdGhl IGNvbXBpbGVyIGluc3RhbmNlCi0gICAgIGNsYW5nOjpDb21waWxlckluc3RhbmNlIENsYW5nOwot QEAgLTEyNDIsOCArMTI0Miw3IEBAIEVYVEVORF9RVU9URToKLSAgICAgICAvLyBDcmVhdGUgdGhl IGNvbXBpbGVyIGludm9jYXRpb24KLSAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Y2xhbmc6OkNvbXBp bGVySW52b2NhdGlvbj4gQ0kobmV3IGNsYW5nOjpDb21waWxlckludm9jYXRpb24pOwotICAgICAg IHJldHVybiBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uOjpDcmVhdGVGcm9tQXJncygqQ0ksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZh cmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29uc3QgY2hh cio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEaWFncyk7Ci0gICAgIH0KLSAjZW5kaWYKLWRpZmYgLS1naXQgYmFja2VuZC9z cmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2Jh Y2tlbmQuY3BwCi1pbmRleCBjNmZjMzBkLi44MjQ0MWQ4IDEwMDY0NAotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2dlbl9iYWNrZW5kLmNwcAotQEAgLTU3NSwxMCArNTc1LDEyIEBAIG5hbWVzcGFjZSBnYmUKLSAg ICAgICAgIGhhc19lcnJvcnMoZmFsc2UpLAotICAgICAgICAgbGVnYWN5TW9kZSh0cnVlKQotICAg ICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgICAgaW5pdGlhbGl6ZUxvb3BJ bmZvV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAj ZWxzZQotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFz c1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICAgIHBhc3MgPSBQQVNTX0VNSVRf UkVHSVNURVJTOwotICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5ocHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotaW5kZXgg YjQ3MTViMS4uOGU3NGY3YSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAK LUBAIC0xMzAsMTAgKzEzMCwxMCBAQCBuYW1lc3BhY2UgZ2JlCi0gICBsbHZtOjpGdW5jdGlvblBh c3MgKmNyZWF0ZUdlblBhc3MoaXI6OlVuaXQgJnVuaXQpOwotIAotICAgLyohIFJlbW92ZSB0aGUg R0VQIGluc3RydWN0aW9ucyAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZVJlbW92 ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpj cmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KTsKLSAKLSAgIC8qISBNZXJn ZSBsb2FkL3N0b3JlIGlmIHBvc3NpYmxlICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3Jl YXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpj cmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCk7Ci0gCi0gICAvKiEgU2NhbGFyaXplIGFs bCB2ZWN0b3Igb3AgaW5zdHJ1Y3Rpb25zICovCi0gICBsbHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0 ZVNjYWxhcml6ZVBhc3MoKTsKLUBAIC0xNDEsNyArMTQxLDcgQEAgbmFtZXNwYWNlIGdiZQotICAg bGx2bTo6TW9kdWxlUGFzcyogY3JlYXRlQmFycmllck5vZHVwUGFzcyhib29sKTsKLSAKLSAgIC8q ISBDb252ZXJ0IHRoZSBJbnRyaW5zaWMgY2FsbCB0byBnZW4gZnVuY3Rpb24gKi8KLS0gIGxsdm06 OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKTsKLSsgIGxsdm06 OkZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCk7Ci0gCi0gICAvKiEg UGFzc2VyIHRoZSBwcmludGYgZnVuY3Rpb24gY2FsbC4gKi8KLSAgIGxsdm06OkZ1bmN0aW9uUGFz cyogY3JlYXRlUHJpbnRmUGFyc2VyUGFzcyhpcjo6VW5pdCAmdW5pdCk7Ci1kaWZmIC0tZ2l0IGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwIGJhY2tlbmQvc3JjL2xs dm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1pbmRleCA5NGYwY2U2Li5iNTUzOWU5IDEw MDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAt MjksMTIgKzI5LDEyIEBACi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gCi0gbmFtZXNwYWNlIGdi ZSB7Ci0tICAgIGNsYXNzIEluc3RyaW5zaWNMb3dlcmluZyA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFz cwotKyAgICBjbGFzcyBJbnN0cmluc2ljTG93ZXJpbmcgOiBwdWJsaWMgRnVuY3Rpb25QYXNzCi0g ICAgIHsKLSAgICAgcHVibGljOgotICAgICAgIHN0YXRpYyBjaGFyIElEOwotICAgICAgIEluc3Ry aW5zaWNMb3dlcmluZygpIDoKLS0gICAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICAg ICAgRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShB bmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotIAotQEAgLTkzLDkgKzkzLDkgQEAgbmFtZXNwYWNl IGdiZSB7Ci0gICAgICAgICBDSS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICByZXR1cm4g TmV3Q0k7Ci0gICAgICAgfQotLSAgICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFz aWNCbG9jayAmQkIpCi0rICAgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24g JkYpCi0gICAgICAgewotLSAgICAgICAgYm9vbCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAg ICAgIGZvciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBNb2R1bGUgKk0gPSBCQi5n ZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gCi0gICAgICAgICBEYXRhTGF5b3V0IFREKE0pOwot QEAgLTE1OSwxMyArMTU5LDE0IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAgcmV0dXJuIGNoYW5nZWRCbG9jazsKLSsg ICAgICAgIH0KLSsgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgIH0KLSAgICAgfTsKLSAKLSAg ICAgY2hhciBJbnN0cmluc2ljTG93ZXJpbmc6OklEID0gMDsKLSAKLS0gICAgQmFzaWNCbG9ja1Bh c3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpIHsKLSsgICAgRnVuY3Rpb25QYXNzICpj cmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKSB7Ci0gICAgICAgcmV0dXJuIG5ldyBJbnN0cmlu c2ljTG93ZXJpbmcoKTsKLSAgICAgfQotIH0gLy8gZW5kIG5hbWVzcGFjZQotZGlmZiAtLWdpdCBi YWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlLi5l MzE0MzAyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRp bWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGlt aXphdGlvbi5jcHAKLUBAIC0yNiwxMyArMjYsMTMgQEAKLSAKLSB1c2luZyBuYW1lc3BhY2UgbGx2 bTsKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gIGNsYXNzIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbiA6 IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcyB7Ci0rICBjbGFzcyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRp b24gOiBwdWJsaWMgRnVuY3Rpb25QYXNzIHsKLSAKLSAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNo YXIgSUQ7Ci0gICAgIFNjYWxhckV2b2x1dGlvbiAqU0U7Ci0gICAgIGNvbnN0IERhdGFMYXlvdXQg KlREOwotLSAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEJhc2ljQmxvY2tQYXNzKElE KSB7fQotKyAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEZ1bmN0aW9uUGFzcyhJRCkg e30KLSAKLSAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25z dCB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDM4Ci1AQCAtNDUsNyArNDUsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBBVS5zZXRQcmVz ZXJ2ZXNDRkcoKTsKLSAgICAgfQotIAotLSAgICB2aXJ0dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2Nr KEJhc2ljQmxvY2sgJkJCKSB7Ci0rICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0 aW9uICZGKSB7Ci0rICAgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAg ICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSAgICAgICBTRSA9ICZnZXRBbmFseXNpczxT Y2FsYXJFdm9sdXRpb25XcmFwcGVyUGFzcz4oKS5nZXRTRSgpOwotICNlbHNlCi1AQCAtNTksNyAr NjEsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAjZWxzZQotICAgICAgICAgVEQgPSBnZXRB bmFseXNpc0lmQXZhaWxhYmxlPERhdGFMYXlvdXQ+KCk7Ci0gICAgICAgI2VuZGlmCi0tICAgICAg cmV0dXJuIG9wdGltaXplTG9hZFN0b3JlKEJCKTsKLSsgICAgICAgICAgIGNoYW5nZWRBbnlCbG9j ayA9IG9wdGltaXplTG9hZFN0b3JlKEJCKSB8IGNoYW5nZWRBbnlCbG9jazsKLSsgICAgICAgIH0K LSsgICAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgICAgVHlwZSAgICAq Z2V0VmFsdWVUeXBlKFZhbHVlICppbnNuKTsKLSAgICAgVmFsdWUgICAqZ2V0UG9pbnRlck9wZXJh bmQoVmFsdWUgKkkpOwotQEAgLTE0OCw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAg ICB2YWx1ZXMucHVzaF9iYWNrKG1lcmdlZFtpXSk7Ci0gICAgIH0KLSAgICAgTG9hZEluc3QgKmxk ID0gY2FzdDxMb2FkSW5zdD4obWVyZ2VkWzBdKTsKLS0gICAgdW5zaWduZWQgYWxpZ24gPSBsZC0+ Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBsZC0+Z2V0QWxpZ24oKTsK LSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gbGQtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsK LSAgICAgLy8gaW5zZXJ0IGJlZm9yZSBmaXJzdCBsb2FkCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0 UG9pbnQobGQpOwotQEAgLTIzMSw3ICsyMzUsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAKLSAgICAg dW5zaWduZWQgYWRkclNwYWNlID0gc3QtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAKLS0g ICAgdW5zaWduZWQgYWxpZ24gPSBzdC0+Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24g YWxpZ24gPSBzdC0+Z2V0QWxpZ24oKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSB0aGUgbGFzdCBz dG9yZQotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KG1lcmdlZFtzaXplLTFdKTsKLSAKLUBA IC0zMjUsNyArMzI5LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIHJldHVybiBjaGFuZ2VkOwot ICAgfQotIAotLSAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBh c3MoKSB7Ci0rICBGdW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3Mo KSB7Ci0gICAgIHJldHVybiBuZXcgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uKCk7Ci0gICB9Ci0g fTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLWluZGV4IDEwNzUyYTMuLmI4ZjIyODIgMTAwNjQ0Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLUBAIC0zNyw3ICszNyw3IEBACi0gI2luY2x1ZGUgInN5cy9t YXAuaHBwIgotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotLQotK3RlbXBsYXRlIGNsYXNzIGNm Zzo6VXBkYXRlPEJhc2ljQmxvY2sgKj47Ci0gbmFtZXNwYWNlIGdiZQotIHsKLSAgIGJvb2wgaXNL ZXJuZWxGdW5jdGlvbihjb25zdCBsbHZtOjpGdW5jdGlvbiAmRikgewotQEAgLTIxOSwxMyArMjE5 LDEzIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIG9mZnNldDsKLSAgIH0KLSAKLS0gIGNs YXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGljIEJhc2ljQmxvY2tQYXNzCi0rICBjbGFzcyBH ZW5SZW1vdmVHRVBQYXNzcyA6IHB1YmxpYyBGdW5jdGlvblBhc3MKLSAgIHsKLSAKLSAgICBwdWJs aWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBHZW5SZW1vdmVHRVBQYXNzcyhjb25zdCBp cjo6VW5pdCAmdW5pdCkgOgotLSAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSwKLSsgICAgICBGdW5j dGlvblBhc3MoSUQpLAotICAgICAgIHVuaXQodW5pdCkge30KLSAgICAgY29uc3QgaXI6OlVuaXQg JnVuaXQ7Ci0gICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29u c3QgewotQEAgLTI0MiwxNiArMjQyLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAgICAgYm9vbCBz aW1wbGlmeUdFUEluc3RydWN0aW9ucyhHZXRFbGVtZW50UHRySW5zdCogR0VQSW5zdCk7Ci0gCi0t ICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpCi0rICAgIHZp cnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKQotICAgICB7Ci0tICAgICAgYm9v bCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZh bHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICBpcGxpc3Q8 SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gQkIuZ2V0SW5zdExpc3QoKS5iZWdpbigpOwotICAg ICAgIGZvciAoYXV0byBuZXh0SSA9IEksIEUgPSAtLUJCLmdldEluc3RMaXN0KCkuZW5kKCk7IEkg IT0gRTsgSSA9IG5leHRJKSB7Ci0gICAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRv ciBJID0gbmV4dEkrKzsKLSAgICAgICAgIGlmKEdldEVsZW1lbnRQdHJJbnN0KiBnZXAgPSBkeW5f Y2FzdDxHZXRFbGVtZW50UHRySW5zdD4oJipJKSkKLS0gICAgICAgICAgY2hhbmdlZEJsb2NrID0g KHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfHwgY2hhbmdlZEJsb2NrKTsKLSsgICAgICAg ICAgY2hhbmdlZEFueUJsb2NrID0gKHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfCBjaGFu Z2VkQW55QmxvY2spOwotICAgICAgIH0KLS0gICAgICByZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAg ICAgICAgfQotKyAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgIH07Ci0g Ci1AQCAtMzY3LDcgKzM2OSw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIHRydWU7Ci0g ICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6 VW5pdCAmdW5pdCkgewotKyAgRnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0 IGlyOjpVbml0ICZ1bml0KSB7Ci0gICAgIHJldHVybiBuZXcgR2VuUmVtb3ZlR0VQUGFzc3ModW5p dCk7Ci0gICB9Ci0gfSAvKiBuYW1lc3BhY2UgZ2JlICovCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJf Zml4LmNwcAotaW5kZXggMmEwOTdjOC4uODYzYmU2ZCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9z YW1wbGVyX2ZpeC5jcHAKLUBAIC0zMywxMCArMzMsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICBj bGFzcyBTYW1wbGVyRml4IDogcHVibGljIEZ1bmN0aW9uUGFzcyB7Ci0gICBwdWJsaWM6Ci0gICAg IFNhbXBsZXJGaXgoKSA6IEZ1bmN0aW9uUGFzcyhJRCkgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSAzNQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlV3JhcHBlclBhc3NQYXNzKCpQ YXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxp emVEb21pbmF0b3JUcmVlUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0r I2VuZGlmCi0gI2VuZGlmCi0gICAgIH0KLSAKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX3NjYWxhcml6ZS5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLWlu ZGV4IGU5YTJhNjYuLmU5ZDJlZTQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f c2NhbGFyaXplLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAK LUBAIC05NiwxMCArOTYsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gCi0gICAgIFNjYWxhcml6ZSgp IDogRnVuY3Rpb25QYXNzKElEKQotICAgICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEw Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1 Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVXcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdp c3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZURvbWlu YXRvclRyZWVQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYK LSAjZW5kaWYKLSAgICAgfQotIAotZGlmZiAtLWdpdCB1dGVzdHMvQ01ha2VMaXN0cy50eHQgdXRl c3RzL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAzMDBkODdhLi42NDE3OWM3IDEwMDY0NAotLS0tIGEv dXRlc3RzL0NNYWtlTGlzdHMudHh0Ci0rKysgYi91dGVzdHMvQ01ha2VMaXN0cy50eHQKLUBAIC0y Niw4ICsyNiw4IEBAIGlmIChOT1QgTk9UX0JVSUxEX1NUQU5EX0FMT05FX1VURVNUKQotICAgIyBU aHJlYWRzCi0gICBGaW5kX1BhY2thZ2UoVGhyZWFkcykKLSAKLS0gIHNldCAoQ01BS0VfQ1hYX0ZM QUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAt V25vLWludmFsaWQtb2Zmc2V0b2YiKQotLSAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0Nf RkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IikKLSsgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIk e0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZhbGlkLW9mZnNl dG9mIC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKQotKyAgc2V0IChDTUFLRV9D X0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1mZmxvYXQtc3Rv cmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKSAjY29tcGlsZXJfe2RlZ3JlZXMscmFkaWFucyxmdW5j dGlvbl9hcmd1bWVudDJ9IHVzZSBlcXVhbGl0eSBjb21wYXJpc29uIG9mIGZsb2F0cywgY29tcGls ZXJfbG9uZ19iaXRjYXN0IHVzZXMgYWxpYXNpbmcKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RF QlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gICBzZXQgKENNQUtFX0NYWF9G TEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nIC1ER0JFX0RFQlVHPTEiKQotICAgc2V0IChDTUFL RV9DWFhfRkxBR1NfTUlOU0laRVJFTCAgICAgIi1PcyAtRE5ERUJVRyAtREdCRV9ERUJVRz0wIikK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMmMzYTQyNzg5NDNjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTExLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTM3ICswLDAgQEAKLVNvdXJj ZTogU25la3Ryb24KLQotVGhlcmUgd2VyZSBhIGZldyBjaGFuZ2VzIHJlcXVpcmVkIGZvciBMTFZN IDExOgotKiBsbHZtOjpTdHJpbmdSZWYgcmVxdWlyZXMgLnN0cigpLCBpbXBsaWNpdCBjb252ZXJz aW9uIHdhcyByZW1vdmVkCi0qIGxsdm06OkNhbGxTaXRlIHdhcyByZW1vdmVkLCBidXQgdGhlIHJl cXVpcmVkIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiBsbHZtOjpDYWxsSW5zdAotKiBWZWN0b3JU eUlEIHdhcyBzcGxpdCBpbnRvIEZpeGVkVmVjdG9yVHlJRCBhbmQgU2NhbGFibGVWZWN0b3JUeUlE LCBGaXhlZFZlY3RvclR5SUQgd2FzIHVzZWQKLSogQ2FsbEluc3Q6OmdldENhbGxlZFZhbHVlKCkg d2FzIHJlbmFtZWQgdG8gQ2FsbEluc3Q6OmdldENhbGxlZE9wZXJhbmQoKQotKiBJbXBsaWNpdCBj b252ZXJzaW9uIGZyb20gTWF5YmVBbGlnbiB0byBBbGlnbiB3YXMgcmVtb3ZlZCwgc28gTWF5YmVB bGlnbjo6dmFsdWVPck9uZSB3YXMgdXNlZCBpbnN0ZWFkLgotCi0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL1N0cmlwQXR0cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAx MDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5 IDE5OjA0OjE5LjY0MTg5NzE0MSArMDEwMAotQEAgLTEwNyw5ICsxMDcsOCBAQAotICAgICAgICBC QiAhPSBFOyArK0JCKSB7Ci0gICAgIGZvciAoQmFzaWNCbG9jazo6aXRlcmF0b3IgSW5zdCA9IEJC LT5iZWdpbigpLCBFID0gQkItPmVuZCgpOwotICAgICAgICAgIEluc3QgIT0gRTsgKytJbnN0KSB7 Ci0tICAgICAgQ2FsbFNpdGUgQ2FsbCgmKkluc3QpOwotLSAgICAgIGlmIChDYWxsKQotLSAgICAg ICAgQ2FsbC5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29udjo6Qyk7Ci0rICAgICAgaWYgKENhbGxJ bnN0KiBjYWxsSW5zdCA9IGR5bl9jYXN0PENhbGxJbnN0PigmKkluc3QpKQotKyAgICAgICAgY2Fs bEluc3QtPnNldENhbGxpbmdDb252KENhbGxpbmdDb252OjpDKTsKLSAgICAgfQotICAgfQotCi0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE2 OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNzowNDowOS42MzM3NTM0MjggKzAxMDAKLUBAIC05OCw3 ICs5OCw3IEBACi0gICAgICAgICBpZiAoY2FsbEZ1bmMgJiYgY2FsbEZ1bmMtPmdldEludHJpbnNp Y0lEKCkgIT0gMCkKLSAgICAgICAgICAgY29udGludWU7Ci0KLS0gICAgICAgIHN0ZDo6c3RyaW5n IGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCktPnN0cmlwUG9pbnRlckNhc3RzKCktPmdl dE5hbWUoKTsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZE9w ZXJhbmQoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAg ICBpZiAoIU1GUy5pbnNlcnQoZm5OYW1lKS5zZWNvbmQpIHsKLSAgICAgICAgICAgY29udGludWU7 Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f ZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTk6MDE6NDkuMjAxOTE1MDA4ICswMTAwCi1A QCAtNDUsNyArNDUsNyBAQAotICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgIC8qIFRoaXMgaXMg YSBmYWtlLCB0byBjaGVjayB0aGUgZnVuY3Rpb24gYml0Y2FzdCBpcyBmb3IgYmxvY2sgb3Igbm90 ICovCi0tICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgIHN0ZDo6 c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgIGlmKGZuTmFtZS5maW5k KCJfaW52b2tlIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgcmV0dXJuIE5VTEw7Ci0K LUBAIC0xMTksMTggKzExOSwxOCBAQAotICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjayh0eSk7Ci0g ICAgIH0KLSAgICAgRnVuY3Rpb25UeXBlKiBOZXdGVCA9IEZ1bmN0aW9uVHlwZTo6Z2V0KEZuLT5n ZXRSZXR1cm5UeXBlKCksIFBhcmFtVHlzLCBmYWxzZSk7Ci0tICAgIEZ1bmN0aW9uKiBOZXdGbiA9 IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExpbmthZ2UsIEZuLT5n ZXROYW1lKCkpOwotKyAgICBGdW5jdGlvbiogTmV3Rm4gPSBGdW5jdGlvbjo6Q3JlYXRlKE5ld0ZU LCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAg U21hbGxWZWN0b3I8UmV0dXJuSW5zdCosIDg+IFJldHVybnM7Ci0KLSAgICAgRnVuY3Rpb246OmFy Z19pdGVyYXRvciBOZXdGbkFyZ0l0ID0gTmV3Rm4tPmFyZ19iZWdpbigpOwotICAgICBmb3IgKEZ1 bmN0aW9uOjphcmdfaXRlcmF0b3IgSSA9IEZuLT5hcmdfYmVnaW4oKSwgRSA9IEZuLT5hcmdfZW5k KCk7IEkgIT0gRTsgKytJKSB7Ci0tICAgICAgc3RkOjpzdHJpbmcgQXJnTmFtZSA9IEktPmdldE5h bWUoKTsKLSsgICAgICBzdGQ6OnN0cmluZyBBcmdOYW1lID0gSS0+Z2V0TmFtZSgpLnN0cigpOwot ICAgICAgIE5ld0ZuQXJnSXQtPnNldE5hbWUoQXJnTmFtZSk7Ci0gICAgICAgVk1hcFsmKkldID0g JigqTmV3Rm5BcmdJdCsrKTsKLSAgICAgfQotICAgICBDbG9uZUZ1bmN0aW9uSW50byhOZXdGbiwg Rm4sIFZNYXAsIC8qTW9kdWxlTGV2ZWxDaGFuZ2VzPSovdHJ1ZSwgUmV0dXJucyk7Ci0KLS0gICAg Rm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgpKTsKLSsgICAgRm4tPnNldE5hbWUoIl9f ZCIgKyBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgbW9kLT5nZXRGdW5jdGlvbkxpc3QoKS5w dXNoX2JhY2soTmV3Rm4pOwotICAgICAvL21vZC0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbi0+ Z2V0TmFtZSgpLCBOZXdGbi0+Z2V0RnVuY3Rpb25UeXBlKCksCi0gICAgIC8vICAgICAgICAgICAg ICAgICAgICAgICAgIE5ld0ZuLT5nZXRBdHRyaWJ1dGVzKCkpOwotQEAgLTE0Nyw3ICsxNDcsNyBA QAotICAgICAgIGFyZ1R5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250 ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnQmFzZVR5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6 TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnVHlwZVF1YWxzLnB1 c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICIiKSk7Ci0tICAgICAgYXJnTmFt ZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgpKSk7 Ci0rICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwg SS0+Z2V0TmFtZSgpLnN0cigpKSk7Ci0gICAgIH0KLQotICAgICAvL0lmIHJ1biB0byBoZXJlLCBs bHZtIHZlcnNpb24gYWx3YXlzID4gMy45LCBhZGQgdGhlIHZlcnNpb24gY2hlY2sganVzdCBmb3Ig YnVpbGQuCi1AQCAtMTk4LDcgKzE5OCw3IEBACi0gICAgICAgICAgICAqIGludm9rZSBwb2ludGVy IHRvIHN0b3JlIHRoZSBpbmRleCBpbiB0aGUgdW5pdCdzIGJsb2NrIGZ1bmN0aW9ucyBpbmRleC4q LwotICAgICAgICAgICBGdW5jdGlvbiAqRm4gPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9w ZXJhbmQoMCkpOwotCi0tICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1l KCk7Ci0rICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7 Ci0gICAgICAgICAgIGludCBpbmRleCA9IC0xOwotICAgICAgICAgICBmb3Ioc2l6ZV90IGk9MDsg aTx1bml0LmJsb2NrRnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICBpZih1bml0LmJs b2NrRnVuY3NbaV0gPT0gZm5OYW1lKSB7Ci1AQCAtMjQxLDcgKzI0MSw3IEBACi0gICAgICAgICAg ICAgLy91bm5hbWVkIGNhbGwgZnVuY3Rpb24sIHBhcnNlIHRoZSB1c2UgdG8gZmluZCB0aGUgZGVm aW5lIG9mIGNhbGxlZCBmdW5jdGlvbgotICAgICAgICAgICAgIFNtYWxsVmVjdG9yPFZhbHVlKiwg MTY+IGFyZ3MoQ0ktPm9wX2JlZ2luKCksIENJLT5vcF9lbmQoKS0xKTsKLQotLSAgICAgICAgICAg IFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZFZhbHVlKCk7Ci0rICAgICAgICAgICAgVmFsdWUgKnYg PSBDSS0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICAgICAgICAgIEJpdENhc3RJbnN0KiBidCA9 IGR5bl9jYXN0PEJpdENhc3RJbnN0Pih2KTsKLSAgICAgICAgICAgICBpZihidCA9PSBOVUxMKQot ICAgICAgICAgICAgICAgY29udGludWU7Ci1AQCAtMzE2LDcgKzMxNiw3IEBACi0gICAgICAgICAg ICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5n ZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5f Y2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAg ICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgw KSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAg ICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgfQotCi1AQCAtMzMyLDcgKzMzMiw3IEBACi0gICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy9oYW5kbGUgZW5xdWV1ZV9rZXJuZWwgZnVuY3Rp b24gY2FsbAotICAgICAgICAgICAgIEZ1bmN0aW9uICpmbiA9IENJLT5nZXRDYWxsZWRGdW5jdGlv bigpOwotLSAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLmZpbmQoImVucXVldWVfa2VybmVs IikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rICAgICAgICAgICAgaWYgKGZuLT5nZXROYW1lKCku c3RyKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSAgICAg ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgLy9ibG9jayBwYXJhbWV0ZXIncyBp bmRleCwgMyBvciA2Ci1AQCAtMzYxLDcgKzM2MSw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29u c3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMp KTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0 SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5j dGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAg ICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAg IGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gZWxzZSBpZihpc2E8QWxsb2NhSW5zdD4oYmxv Y2spKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAt MTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTg6MzM6NTAuOTE5MTE0MzI3ICswMTAwCi1A QCAtMzc2LDcgKzM3Niw3IEBACi0gICAgICAgICAgIEdCRV9BU1NFUlQoaW5kZXggPT0gMCk7Ci0g ICAgICAgICAgIHJldHVybiB0aGlzLT5fbmV3U2NhbGFyKHZhbHVlLCBrZXksIHR5cGUsIGluZGV4 LCB1bmlmb3JtKTsKLSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIFR5cGU6OlZlY3Rv clR5SUQ6Ci0rICAgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICAgIHsK LSAgICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKLSAg ICAgICAgICAgYXV0byBlbGVtZW50VHlwZSA9IHZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7 Ci1AQCAtNzQzLDIwICs3NDMsMjAgQEAKLSAjdW5kZWYgREVDTF9WSVNJVF9GTgotCi0gICAgIC8v IEVtaXQgcm91bmRpbmcgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAg ICB2b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGly OjpPcGNvZGUgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5z dCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9u cyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0VW5hcnlDYWxsSW5zdChD YWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgPSBp cjo6VFlQRV9GTE9BVCk7Ci0rICAgIHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkks IGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSAgICAgLy8g RW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZv aWQgZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09w cyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRv bWljT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgd29ya2dyb3VwIGluc3RydWN0aW9ucwotLSAg ICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpX b3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0V29ya0dyb3VwSW5zdChDYWxsSW5z dCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGlu c3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRTdWJHcm91 cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1p dCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNf c2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotLSAgICB2b2lkIGVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVp bnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3Qg dmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNf c2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotCi0tICAgIHVpbnQ4X3QgYXBwZW5kU2Ft cGxlcihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKTsKLSsgICAgdWludDhfdCBhcHBlbmRTYW1w bGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKTsKLSAgICAgdWludDhfdCBnZXRJbWFnZUlEKENhbGxJ bnN0ICZJKTsKLQotICAgICAvLyBUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg YXQgYWxsCi1AQCAtMTMyMCwxMyArMTMyMCwxMyBAQAotICNlbmRpZgotCi0gICAgICAgaWYodHlw ZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+ KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAg IGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVy YW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgIH0KLSAgICAgICBpZih0eXBl QmFzZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWU9IChjYXN0PE1E U3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp OwotKyAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJh c2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAg ICB9Ci0tICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5v ZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0tICAgICAgbGx2bUluZm8udHlw ZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSkt PmdldFN0cmluZygpOwotKyAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4o dHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotKyAg ICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICBib29sIGlzSW1hZ2Ug PSBsbHZtSW5mby5pc0ltYWdlVHlwZSgpOwotICAgICAgIGJvb2wgaXNQaXBlID0gbGx2bUluZm8u aXNQaXBlVHlwZSgpOwotICAgICAgIGlmIChJLT5nZXRUeXBlKCktPmlzUG9pbnRlclR5KCkgfHwg aXNJbWFnZSB8fCBpc1BpcGUpIHsKLUBAIC0xNTMxLDcgKzE1MzEsNyBAQAotICAgICAgICAgICAg IEVsdFR5ID0gZ2V0RWx0VHlwZShFbHRUeSwgVHlwZUluZGV4KTsKLSAgICAgICAgIH0KLQotLSAg ICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50 KHBvaW50ZXItPmdldE5hbWUoKSk7Ci0rICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0Lmdl dENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpLnN0cigpKTsKLSAg ICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLSAgICAgICAg IHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQgKyBjb25z dGFudE9mZnNldCkpOwotCi1AQCAtMTU0Niw3ICsxNTQ2LDcgQEAKLSAgICAgICByZXR1cm47Ci0g ICAgIH0KLSAgICAgaWYgKGlzYTxHbG9iYWxWYXJpYWJsZT4oYykpIHsKLS0gICAgICBpcjo6Q29u c3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgp KTsKLSsgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29u c3RhbnQoYy0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0 ID0gY2MuZ2V0T2Zmc2V0KCk7Ci0KLSAgICAgICByZWxvY3MucHVzaF9iYWNrKGlyOjpSZWxvY0Vu dHJ5KG9mZnNldCwgZGVmT2Zmc2V0KSk7Ci1AQCAtMTYwOSw3ICsxNjA5LDcgQEAKLSAgICAgICAg ICAgfQotICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLS0gICAgICBjYXNlIFR5cGU6OlR5 cGVJRDo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6Rml4ZWRWZWN0b3JU eUlEOgotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudERhdGFTZXF1ZW50aWFs ICpjZHMgPSBkeW5fY2FzdDxDb25zdGFudERhdGFTZXF1ZW50aWFsPihjKTsKLSAgICAgICAgICAg Y29uc3QgVmVjdG9yVHlwZSAqdmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotQEAgLTE5 MzYsNyArMTkzNiw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpQb2ludGVyVHlJRDoKLSAgICAgICAg IHJlZ1RyYW5zbGF0b3IubmV3U2NhbGFyKHZhbHVlLCBrZXksIDAsIHVuaWZvcm0pOwotICAgICAg ICAgYnJlYWs7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlw ZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAgICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9 IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAgICBjb25zdCB1aW50MzJfdCBlbGVtTnVt ID0gdmVjdG9yVHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBAIC0yMzk1LDcgKzIzOTUsNyBAQAot ICNlbmRpZgotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZU5hbWVOb2RlKSB7Ci0tICAgICAg ICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZU5h bWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdl dFN0cmluZygpLnN0cigpOwotICAgICAgICAgICAvL0xMVk0gMy45IGltYWdlJ3MgdHlwZSBuYW1l IGluY2x1ZGUgYWNjZXNzIHF1YWwsIGRvbid0IG1hdGNoIE9wZW5DTCBzcGVjLCBlcmFzZSB0aGVt LgotICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZmlsdGVycyA9IHsiX19yZWFk X29ubHkgIiwgIl9fd3JpdGVfb25seSAifTsKLSAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0g MDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyBpKyspIHsKLUBAIC0yNDA2LDE2ICsyNDA2LDE2IEBACi0g ICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpewot LSAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZUJh c2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAg bGx2bUluZm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUt PmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAg ICAgICBpZihhY2Nlc3NRdWFsTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFs ID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdl dFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJp bmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigp OwotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZVF1YWxOb2RlKSB7Ci0tICAgICAgICAgIGxs dm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFu ZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAo Y2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYoYXJnTmFtZU5vZGUpewotLSAgICAg ICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRP cGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hcmdOYW1l ID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0 cmluZygpLnN0cigpOwotICAgICAgICAgfQotCi0gICAgICAgICAvLyBmdW5jdGlvbiBhcmd1bWVu dHMgYXJlIHVuaWZvcm0gdmFsdWVzLgotQEAgLTMwMTAsNyArMzAxMCw3IEBACi0gICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICB0aGlzLT5uZXdSZWdpc3Rlcihjb25zdF9jYXN0PEdsb2JhbFZh cmlhYmxlKj4oJnYpKTsKLSAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZyA9IHJlZ1RyYW5zbGF0 b3IuZ2V0U2NhbGFyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdiksIDApOwotLSAgICAg ICAgICBpcjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFu dCh2LmdldE5hbWUoKSk7Ci0rICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0gdW5pdC5nZXRD b25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgICAg aWYgKCFsZWdhY3lNb2RlKSB7Ci0gICAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZ2xvYWQgPSBj dHgucmVnKGdldEZhbWlseShnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7Ci0gICAgICAgICAg ICAgY3R4LkxPQURJKGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSksIHJlZ2xvYWQsIGN0eC5uZXdJ bnRlZ2VySW1tZWRpYXRlKGNvbi5nZXRPZmZzZXQoKSwgZ2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgp KSkpOwotQEAgLTMyMTIsNyArMzIxMiw3IEBACi0gICAgICAgICBHQkVfQVNTRVJUTShmYWxzZSwg IlVuc3VwcG9ydGVkIGNhbGxpbmcgY29udmVudGlvbiIpOwotICAgICB9Ci0KLS0gICAgY3R4LnN0 YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkpOwotKyAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5h bWUoKS5zdHIoKSk7Ci0KLSAgICAgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigp OwotICAgICB0aGlzLT5yZWdUcmFuc2xhdG9yLmNsZWFyKCk7Ci1AQCAtMzgxMCw5ICszODEwLDkg QEAKLQotICAgdm9pZCBHZW5Xcml0ZXI6OnJlZ0FsbG9jYXRlQ2FsbEluc3QoQ2FsbEluc3QgJkkp IHsKLSAgICAgVmFsdWUgKmRzdCA9ICZJOwotLSAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxs ZWRWYWx1ZSgpOwotKyAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0g ICAgIEdCRV9BU1NFUlQoY3R4LmdldEZ1bmN0aW9uKCkuZ2V0UHJvZmlsZSgpID09IGlyOjpQUk9G SUxFX09DTCk7Ci0tICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRWYWx1 ZSgpKSA9PSBmYWxzZSk7Ci0rICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxs ZWRPcGVyYW5kKCkpID09IGZhbHNlKTsKLSAgICAgaWYoSS5nZXROdW1BcmdPcGVyYW5kcygpKSBH QkVfQVNTRVJUKEkuaGFzU3RydWN0UmV0QXR0cigpID09IGZhbHNlKTsKLQotICAgICAvLyBXZSBv bmx5IHN1cHBvcnQgYSBzbWFsbCBudW1iZXIgb2YgaW50cmluc2ljcyByaWdodCBub3cKLUBAIC0z ODcwLDcgKzM4NzAsNyBAQAotICAgICAgIH0KLSAgICAgfQotICAgICAvLyBHZXQgdGhlIG5hbWUg b2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAg ICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCkt PmdldE5hbWUoKS5zdHIoKTsKLSAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01h cC5maW5kKGZuTmFtZSk7Ci0gICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLSAgICAgICBj YXNlIEdFTl9PQ0xfR0VUX0dST1VQX0lEMDoKLUBAIC00MTY2LDcgKzQxNjYsNyBAQAotICAgICB9 OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbElu c3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSsgIHZvaWQgR2VuV3Jp dGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUp IHsKLSAgICAgaWYgKEkuZ2V0VHlwZSgpLT5pc0hhbGZUeSgpKSB7Ci0gICAgICAgY29uc3QgaXI6 OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKEkuZ2V0T3BlcmFuZCgwKSk7Ci0gICAg ICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyY0Zsb2F0ID0gY3R4LnJlZyhpcjo6RkFNSUxZX0RXT1JE KTsKLUBAIC00MTc3LDE0ICs0MTc3LDE0IEBACi0gICAgICAgY3R4LkYzMlRPMTYoaXI6OlRZUEVf VTE2LCBpcjo6VFlQRV9GTE9BVCwgZHN0LCBkc3RGbG9hdCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgR0JFX0FTU0VSVChJLmdldFR5cGUoKS0+aXNGbG9hdFR5KCkpOwotLSAgICAgIHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1Msb3Bjb2RlKTsKLSsgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxs SW5zdChJLG9wY29kZSk7Ci0gICAgIH0KLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRV bmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2Rl LCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5h cmdfYmVnaW4oKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5z dCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAjZW5kaWYgLyogR0JFX0RFQlVHICovCi0gICAgIEdCRV9B U1NFUlQoQUkgIT0gQUUpOwotICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0 UmVnaXN0ZXIoKkFJKTsKLUBAIC00MjkzLDkgKzQyOTMsOSBAQAotICAgICB0aGlzLT5lbWl0QXRv bWljSW5zdEhlbHBlcihvcGNvZGUsIHR5cGUsIGRzdCwgbGx2bVB0ciwgcGF5bG9hZFR1cGxlKTsK LSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBD YWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRv ciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QXRvbWljSW5zdChD YWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJn X2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLSAgICAgVmFsdWUgKmxsdm1QdHIg PSAqQUk7Ci0gICAgIGlyOjpBZGRyZXNzU3BhY2UgYWRkclNwYWNlID0gYWRkcmVzc1NwYWNlTExW TVRvR2VuKGxsdm1QdHItPmdldFR5cGUoKS0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpKTsKLUBA IC00MzQ4LDcgKzQzNDgsNyBAQAotICAgICB9Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjpl bWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3Vw T3BzIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJ bnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotICAgICBpcjo6RnVuY3Rpb24gJmYg PSBjdHguZ2V0RnVuY3Rpb24oKTsKLQotICAgICBpZiAoZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpIDwg MCAmJiBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLUBAIC00Mzc4LDgg KzQzNzgsOCBAQAotICAgICAgIEdCRV9BU1NFUlQoZi5nZXR0aWRNYXBTTE0oKSA+PSAwKTsKLSAg ICAgfQotCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsK LS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBp ZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dS T1VQX09QX0FOWSkgewotQEAgLTQzOTEsMTQgKzQzOTEsMTQgQEAKLSAgICAgICBjb25zdCBpcjo6 VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAzKTsKLSAgICAgICBjdHgu V09SS0dST1VQKG9wY29kZSwgKHVpbnQzMl90KWYuZ2V0dGlkTWFwU0xNKCksIGdldFJlZ2lzdGVy KCZJKSwgc3JjVHVwbGUsIDMsIGlyOjpUWVBFX1MzMik7Ci0gICAgIH0gZWxzZSBpZiAob3Bjb2Rl ID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0tICAgICAgaW50IGFyZ051bSA9IENT LmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9IEkuYXJnX3NpemUoKTsKLSAgICAgICBz dGQ6OnZlY3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0pOwotICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgYXJnTnVtOyBpKyspIHsKLSAgICAgICAgIHNyY1tpXSA9IHRoaXMtPmdldFJlZ2lz dGVyKCooQUkrKykpOwotICAgICAgIH0KLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUg PSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0pOwotICAgICAgIGN0eC5XT1JLR1JPVVAo aXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsICh1aW50MzJfdClmLmdldHdnQnJvYWRjYXN0U0xN KCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlw ZShjdHgsICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlw ZShjdHgsICgqSS5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotICAgICB9IGVsc2UgewotICAg ICAgIENvbnN0YW50SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAg ICBHQkVfQVNTRVJUKHNpZ24pOwotQEAgLTQ0MjMsOSArNDQyMyw5IEBACi0gICAgIEdCRV9BU1NF UlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5z dChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewot LSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENh bGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRl cjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUp IHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2Vy OjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFF KTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9 PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQ0MzUsNyArNDQzNSw3IEBACi0gICAgICAg Y29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgMSk7Ci0g ICAgICAgY3R4LlNVQkdST1VQKG9wY29kZSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMSwg aXI6OlRZUEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9P UF9CUk9BRENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAg ICBpbnQgYXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAgICAgIEdCRV9BU1NFUlQoYXJnTnVtID09 IDIpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4gc3JjKGFyZ051bSk7Ci0gICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykgewotQEAgLTQ0NDMsNyArNDQ0Myw3 IEBACi0gICAgICAgfQotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJh eVR1cGxlKCZzcmNbMF0sIGFyZ051bSk7Ci0gICAgICAgY3R4LlNVQkdST1VQKGlyOjpXT1JLR1JP VVBfT1BfQlJPQURDQVNULCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCBhcmdOdW0sCi0tICAg ICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0rICAg ICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSAgICAg fSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAqc2lnbiA9IGR5bl9jYXN0PENvbnN0YW50SW50 PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWduKTsKLUBAIC00NDY2LDkgKzQ0NjYsOSBAQAot ICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBp c1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19p dGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3Np emUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19i ZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBH QkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBWYWx1ZSAqbGx2bVB0ciA9ICooQUkrKyk7Ci1A QCAtNDUyMiw5ICs0NTIyLDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0K LS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3Qg JkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlw ZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4o KTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZv aWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJv b2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2Vy OjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9y IEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGNv bnN0IHVpbnQ4X3QgaW1hZ2VJRCA9IGdldEltYWdlSUQoSSk7Ci1AQCAtNDU1Nyw3ICs0NTU3LDcg QEAKLQotICAgLyogYXBwZW5kIGEgbmV3IHNhbXBsZXIuIHNob3VsZCBiZSBjYWxsZWQgYmVmb3Jl IGFueSByZWZlcmVuY2UgdG8KLSAgICAqIGEgc2FtcGxlcl90IHZhbHVlLiAqLwotLSAgdWludDhf dCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSkgewot KyAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkp IHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g NDAKLSAgICAgQ2FsbEluc3QgKlRDID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KCpBSSk7Ci0gICAgIENv bnN0YW50ICpDUFYgPSBUQyA/IGR5bl9jYXN0PENvbnN0YW50PihUQy0+Z2V0T3BlcmFuZCgwKSkg OiBOVUxMOwotQEAgLTQ1OTUsMTAgKzQ1OTUsOSBAQAotICAgICAgICAgY29uc3QgaXI6OkZ1bmN0 aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0 aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENh bGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpv cF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLSAg ICAgICAgIHN3aXRjaCAoRi0+Z2V0SW50cmluc2ljSUQoKSkgewotICAgICAgICAgICBjYXNlIElu dHJpbnNpYzo6c3RhY2tzYXZlOgotQEAgLTQ3NjQsMTcgKzQ3NjMsMTcgQEAKLSAgICAgICAgICAg ICBjdHguTUFEKHNyY1R5cGUsIGRzdCwgc3JjMCwgc3JjMSwgc3JjMik7Ci0gICAgICAgICAgIH0K LSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TUVIpOyBicmVhazsKLS0gICAgICAgICAg Y2FzZSBJbnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6 Ok9QX1JORFUpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlz LT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRaKTsgYnJlYWs7Ci0tICAgICAg ICAgIGNhc2UgSW50cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENT LGlyOjpPUF9STkRFKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjog dGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERCk7IGJyZWFrOwotLSAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENT LGlyOjpPUF9TSU4pOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhp cy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ09TKTsgYnJlYWs7Ci0tICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpP UF9MT0cpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0VYUCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU1FSKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjZWlsOiB0aGlzLT5lbWl0Um91bmRp bmdDYWxsSW5zdChJLGlyOjpPUF9STkRVKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmlu c2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5EWik7IGJy ZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cmludDogdGhpcy0+ZW1pdFJvdW5kaW5n Q2FsbEluc3QoSSxpcjo6T1BfUk5ERSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JOREQpOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNpbjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxpcjo6T1BfU0lOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjb3M6 IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NPUyk7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1Bf TE9HKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9FWFApOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBJbnRy aW5zaWM6OmJzd2FwOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Ms aXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5cGUoKSkpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9CU1dBUCwgZ2V0 VW5zaWduZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpwb3c6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVn aXN0ZXIgc3JjMCA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7ICsrQUk7Ci1AQCAtNDc5NCwyMSAr NDc5MywyMCBAQAotICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBHZXQg dGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgICAgICBW YWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpz dHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0r ICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgICBj b25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdl dE5hbWUoKS5zdHIoKTsKLSAgICAgICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNN YXAuZmluZChmbk5hbWUpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50 cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVy YXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBB RSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLQotICAgICAgICAgc3dp dGNoIChnZW5JbnRyaW5zaWNJRCkgewotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFr OwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LENTLGlyOjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQ0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ0JJVCwgZ2V0 VW5zaWduZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAg Y2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJILCBp cjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCTDogdGhpcy0+ ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJMLCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLSsg ICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6 Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgqQUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BQlM6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAg ICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00 OTE1LDggKzQ5MTMsOCBAQAotICAgICAgICAgICAgIGN0eC5SRUdJT04oZHN0LCBzcmMsIHguZ2V0 SW50ZWdlclZhbHVlKCkpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0tICAg ICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6 Ok9QX1JTUSk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SQ1ApOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUlNRKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEks aXI6Ok9QX1JDUCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDg6 IGN0eC5zZXRTaW1kV2lkdGgoOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9S Q0VfU0lNRDE2OiBjdHguc2V0U2ltZFdpZHRoKDE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9MQkFSUklFUjogY3R4LlNZTkMoaXI6OnN5bmNMb2NhbEJhcnJpZXIpOyBicmVhazsK LUBAIC00OTQ3LDMxICs0OTQ1LDMxIEBACi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg IH0KLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQwOgotLSAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01J Q19PUF9BREQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfU1VCKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0FORDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEks aXI6OkFUT01JQ19PUF9BTkQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19PUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9P Uik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjA6Ci0tICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxp cjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X1hPUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9YT1IpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMDoKLS0gICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlD X09QX1hDSEcpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTkMp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfREVDMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMx OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJlYWs7Ci0r ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21pY0luc3Qo SSxpcjo6QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX1VNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5l bWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpB VE9NSUNfT1BfVU1JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VN QVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNf T1BfVU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4wOgot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1J Tik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgwOgotLSAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcwOgotLSAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQ01Q WENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX1dJRFRIOgot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0hFSUdIVDoKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0dFVF9JTUFHRV9ERVBUSDoKLUBAIC01NDI5LDQ4ICs1NDI3LDQ4IEBACi0gICAg ICAgICAgICAgY3R4LldBSVQoKTsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOwotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf V09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfQUxMKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FOWTog dGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTlkpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0JST0FE Q0FTVCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9XT1JLX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0Vf TUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09S S0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlO KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldP UktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9X T1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9P UF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dS T1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1ND QU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf TUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5D TFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywg aXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZF X01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dS T1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBD UywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVE VUNFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhD TFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBp cjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01B WDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dS T1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3Vi R3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VY Q0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0 KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9B REQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpX T1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVT SVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTFJQOgotICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIGRzdCAgPSB0aGlzLT5nZXRSZWdp c3RlcigmSSk7Ci1AQCAtNTQ4NCw2OSArNTQ4Miw2OSBAQAotICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVB RF9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNNDoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwg NCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgZmFsc2UsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19SRUFEX1VJX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9N RU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1Ms IHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU04OgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUs IDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFE X1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAy KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9V SV9JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDgp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9V SV9JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lN QUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg Q1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNl LCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTTI6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDIsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNNDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZh bHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19XUklURV9VU19NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0 KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01F TTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywg dHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2Us IDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTI6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwg MiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFNDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0 LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U4OgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgs IGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0UyOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFNDoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19JTUFHRTg6Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9HRVRfUElQRToKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX01BS0VfUklEOgotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1JJRDoKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxOTowMDowOS45 NTU5MjY3OTUgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDYgQEAKLQotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICNpbmNsdWRlICJsbHZtL0lS L01hbmdsZXIuaCIKLS0jaW5jbHVkZSAibGx2bS9JUi9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJs bHZtL0lSL0NGRy5oIgotICNpbmNsdWRlICJsbHZtL0lSL0luc3RWaXNpdG9yLmgiCi0gI2luY2x1 ZGUgImxsdm0vSVIvSVJQcmludGluZ1Bhc3Nlcy5oIgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2 MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXph dGlvbi5jcHAJMjAyMC0xMS0wOSAxOToxMDozNy4xNDE4NTIzMDggKzAxMDAKLUBAIC0xNjAsNyAr MTYwLDcgQEAKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+ Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0 ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQdHIpOwotLSAgICB2ZWNWYWx1ZS0+ c2V0QWxpZ25tZW50KGFsaWduKTsKLSsgICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChhbGlnbi52 YWx1ZU9yT25lKCkpOwotCi0gICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kp IHsKLSAgICAgICBWYWx1ZSAqUyA9IEJ1aWxkZXIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQodmVjVmFs dWUsIEJ1aWxkZXIuZ2V0SW50MzIoaSkpOwotQEAgLTI1MSw3ICsyNTEsNyBAQAotICAgICAgIHJl dHVybjsKLSAgICAgVmFsdWUgKm5ld1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChzdFBvaW50 ZXIsIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOwotICAgICBTdG9yZUluc3Qg Km5ld1NUID0gQnVpbGRlci5DcmVhdGVTdG9yZShwYXJlbnQsIG5ld1B0cik7Ci0tICAgIG5ld1NU LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAgICBuZXdTVC0+c2V0QWxpZ25tZW50KGFsaWduLnZh bHVlT3JPbmUoKSk7Ci0gICB9Ci0KLSAgIC8vIEZpbmQgdGhlIHNhZmUgaXRlcmF0b3Igd2UgY2Fu IHBvaW50IHRvLiBJZiByZW9yZGVyIGhhcHBlbnMsIHdlIG5lZWQgdG8KLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICsw MTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAkyMDIwLTExLTA5IDE4 OjQ4OjU1Ljk5NzAwNjgzNyArMDEwMAotQEAgLTk1LDcgKzk1LDcgQEAKLSAgIHsKLSAgICAgc3dp dGNoIChUeS0+Z2V0VHlwZUlEKCkpIHsKLSAgICAgICBjYXNlIFR5cGU6OlZvaWRUeUlEOiBOT1Rf U1VQUE9SVEVEOwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5 cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBl KiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgZWxlbU51 bSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTEzOCw3ICsxMzgsNyBAQAotICAgICAg IGNhc2UgVHlwZTo6SGFsZlR5SUQ6ICAgIHJldHVybiAxNjsKLSAgICAgICBjYXNlIFR5cGU6OkZs b2F0VHlJRDogICByZXR1cm4gMzI7Ci0gICAgICAgY2FzZSBUeXBlOjpEb3VibGVUeUlEOiAgcmV0 dXJuIDY0OwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6 OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBW ZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgbnVtRWxlbSA9 IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTE4NCwxMCArMTg0LDEyIEBACi0gICAgIFR5 cGUgKmVsZW1lbnRUeXBlID0gTlVMTDsKLSAgICAgaWYgKFBvaW50ZXJUeXBlKiBwdHJUeXBlID0g ZHluX2Nhc3Q8UG9pbnRlclR5cGU+KGVsdFR5KSkKLSAgICAgICBlbGVtZW50VHlwZSA9IHB0clR5 cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoU2VxdWVudGlhbFR5cGUgKiBzZXFU eXBlID0gZHluX2Nhc3Q8U2VxdWVudGlhbFR5cGU+KGVsdFR5KSkKLS0gICAgICBlbGVtZW50VHlw ZSA9IHNlcVR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoQ29tcG9zaXRlVHlw ZSAqIGNvbXBUeT0gZHluX2Nhc3Q8Q29tcG9zaXRlVHlwZT4oZWx0VHkpKQotLSAgICAgIGVsZW1l bnRUeXBlID0gY29tcFR5LT5nZXRUeXBlQXRJbmRleChpbmRleCk7Ci0rICAgIGVsc2UgaWYgKEFy cmF5VHlwZSAqIGFyclR5cGUgPSBkeW5fY2FzdDxBcnJheVR5cGU+KGVsdFR5KSkKLSsgICAgICBl bGVtZW50VHlwZSA9IGFyclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0rICAgIGVsc2UgaWYoVmVj dG9yVHlwZSAqIHZlY1R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihlbHRUeSkpCi0rICAgICAg ZWxlbWVudFR5cGUgPSB2ZWNUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICBlbHNlIGlmKFN0 cnVjdFR5cGUgKiBzdHJ1Y3RUeXBlID0gZHluX2Nhc3Q8U3RydWN0VHlwZT4oZWx0VHkpKQotKyAg ICAgIGVsZW1lbnRUeXBlID0gc3RydWN0VHlwZS0+Z2V0VHlwZUF0SW5kZXgoaW5kZXgpOwotICAg ICBHQkVfQVNTRVJUKGVsZW1lbnRUeXBlKTsKLSAgICAgcmV0dXJuIGVsZW1lbnRUeXBlOwotICAg fQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxODo1Nzo1Mi42MTg5NDMxMDUgKzAxMDAKLUBA IC0zMjMsOCArMzIzLDcgQEAKLQotICAgYm9vbCBQcmludGZQYXJzZXI6OnBhcnNlT25lUHJpbnRm SW5zdHJ1Y3Rpb24oQ2FsbEluc3QgKiBjYWxsKQotICAgewotLSAgICBDYWxsU2l0ZSBDUyhjYWxs KTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSV9GTVQgPSBDUy5hcmdfYmVnaW4oKTsK LSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0lfRk1UID0gY2FsbC0+YXJnX2JlZ2luKCk7Ci0gICAg IGludCBwYXJhbV9udW0gPSAwOwotCi0gICAgIGxsdm06OkNvbnN0YW50KiBhcmcwID0gZHluX2Nh c3Q8bGx2bTo6Q29uc3RhbnRFeHByPigqQ0lfRk1UKTsKLUBAIC0zNDEsNyArMzQwLDcgQEAKLSAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLQotLSAgICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRf YXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgc3RkOjpzdHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0 QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgIGlmIChmbXQuc2l6ZSgpID09IDApCi0gICAgICAgcmV0 dXJuIGZhbHNlOwotCi1AQCAtNDM3LDggKzQzNiw4IEBACi0gICAgICAgICBpZiAoIGNhbGxGdW5j LT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAgICAgICAgIGNvbnRpbnVlOwotCi0tICAgICAg ICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUg KkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAo Zm5OYW1lICE9ICJfX2dlbl9vY2xfcHJpbnRmX3N0dWIiICYmIGZuTmFtZSAhPSAiX19nZW5fb2Ns X3B1dHNfc3R1YiIpCi0gICAgICAgICAgIGNvbnRpbnVlOwotQEAgLTU4Miw3ICs1ODEsNyBAQAot ICAgICAgICAgICAgIGlmICghZm10X2FyZyB8fCAhZm10X2FyZy0+aXNDU3RyaW5nKCkpIHsKLSAg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg c2xvdC5zdGF0ZS5zdHIgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgICAgICAgICBz bG90LnN0YXRlLnN0ciA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpLnN0cigpOwotICAgICAgICAg ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgUFJJTlRGX0NP TlZFUlNJT05fUDogewotQEAgLTU5NSwxMCArNTk0LDEwIEBACi0KLSAgICAgICAgIGJyZWFrOwot Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOiB7Ci0tICAgICAgICBUeXBlKiB2ZWN0X3R5 cGUgPSBhcmctPmdldFR5cGUoKTsKLS0gICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90eXBl LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpOwotLSAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5 cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCk7Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3Rv clR5SUQ6IHsKLSsgICAgICAgIFZlY3RvclR5cGUqIHZlY3RfdHlwZSA9IGR5bl9jYXN0PFZlY3Rv clR5cGU+KGFyZy0+Z2V0VHlwZSgpKTsKLSsgICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90 eXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5cGUt PmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAgICBib29sIHNpZ24gPSBmYWxzZTsKLQotICAgICAg ICAgaWYgKHZlY19udW0gIT0gc2xvdC5zdGF0ZS52ZWN0b3JfbikgewotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3BwCTIwMjAtMTEt MDkgMTg6NTk6NTAuMTIwOTI5MTUwICswMTAwCi1AQCAtMzUsNyArMzUsNiBAQAotICNpbmNsdWRl ICJsbHZtL0lSL0lSQnVpbGRlci5oIgotCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsg TExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0tI2luY2x1ZGUgImxsdm0vSVIvQ2FsbFNpdGUuaCIK LSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAjZWxzZQotICNpbmNsdWRlICJsbHZtL1N1cHBv cnQvQ2FsbFNpdGUuaCIKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5j cHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0wOSAxNzowMTowOS40MDc3NzQ4MzIg KzAxMDAKLUBAIC00NSw4ICs0NSw4IEBACi0gICAgIGJvb2wgdmlzaXRDYWxsSW5zdChDYWxsSW5z dCAqSSkgewotICAgICAgIGlmKCFJKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotLSAgICAgIFZh bHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgIFZhbHVlICpDYWxsZWUgPSBJ LT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0g Q2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0g ICAgICAgVHlwZSAqYm9vbFR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDEp OwotICAgICAgIFR5cGUgKmkzMlR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCks IDMyKTsKLUBAIC01OSw3ICs1OSw3IEBACi0gICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAg ICAgICAgIENhbGxJbnN0ICppbml0ID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQo MCkpOwotLSAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFt ZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSsgICAgICAg IGlmIChpbml0ICYmIGluaXQtPmdldENhbGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUo Il9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSAgICAgICAgIHsKLSAgICAgICAg ICAgY29uc3QgQ29uc3RhbnRJbnQgKmNpID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdl dE9wZXJhbmQoMCkpOwotICAgICAgICAgICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpF eHRWYWx1ZSgpOwotQEAgLTExMyw3ICsxMTMsNyBAQAotICAgICAgICAgVmFsdWUgKm5lZWRGaXhW YWw7Ci0gICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBkeW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0 T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgp LT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQot KyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5nZXROYW1lKCku Y29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotICAgICAgICAgewot ICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kgPSBkeW5fY2FzdDxDb25zdGFudEludD4o aW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAgIHVpbnQzMl90IHNhbXBsZXJJbnQgPSBj aS0+Z2V0WkV4dFZhbHVlKCk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXpl LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAxODo1MToxNi44ODg5OTAxMDQg KzAxMDAKLUBAIC0xNzgsNyArMTc4LDcgQEAKLSAgICAgICBpZighdHlwZSkKLSAgICAgICAgIHJl dHVybiB0eXBlOwotICAgICAgIHN3aXRjaCh0eXBlLT5nZXRUeXBlSUQoKSkgewotLSAgICAgIGNh c2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoK LSAgICAgICBjYXNlIFR5cGU6OkFycmF5VHlJRDoKLSAgICAgICAgIHJldHVybiBHZXRCYXNpY1R5 cGUodHlwZS0+Z2V0Q29udGFpbmVkVHlwZSgwKSk7Ci0gICAgICAgZGVmYXVsdDoKLUBAIC0xODgs NyArMTg4LDcgQEAKLSAgICAgfQotCi0gICAgIGludCBHZXRDb21wb25lbnRDb3VudChjb25zdCBU eXBlKiB0eXBlKSAgewotLSAgICAgIGlmICh0eXBlICYmIHR5cGUtPmdldFR5cGVJRCgpID09IFR5 cGU6OlZlY3RvclR5SUQpCi0rICAgICAgaWYgKHR5cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0g VHlwZTo6Rml4ZWRWZWN0b3JUeUlEKQotICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PFZl Y3RvclR5cGU+KHR5cGUpLT5nZXROdW1FbGVtZW50cygpOwotICAgICAgIGVsc2UKLSAgICAgICAg IHJldHVybiAxOwotQEAgLTY1MiwxMyArNjUyLDEyIEBACi0gICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+ Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENh bGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxl ZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+ Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNp Y01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1l bnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQ0kgPSBDUy5hcmdfYmVnaW4oKSArIDE7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVy YXRvciBDSSA9IGNhbGwtPmFyZ19iZWdpbigpICsgMTsKLQotICAgICAgICAgc3dpdGNoIChnZW5J bnRyaW5zaWNJRCkgewotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTk9UX0ZPVU5EOgotQEAgLTcy OSw3ICs3MjgsNyBAQAotICAgICAgICAgICAgIGV4dHJhY3RGcm9tVmVjdG9yKGNhbGwpOwotICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfUFJJTlRGOgotLSAgICAg ICAgICAgIGZvciAoOyBDSSAhPSBDUy5hcmdfZW5kKCk7ICsrQ0kpCi0rICAgICAgICAgICAgZm9y ICg7IENJICE9IGNhbGwtPmFyZ19lbmQoKTsgKytDSSkKLSAgICAgICAgICAgICAgIGlmICgoKkNJ KS0+Z2V0VHlwZSgpLT5pc1ZlY3RvclR5KCkpCi0gICAgICAgICAgICAgICAgICpDSSA9IEluc2Vy dFRvVmVjdG9yKGNhbGwsICpDSSk7Ci0gICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9sbHZtMTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmOGFiMDA1 YzE0OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi1kaWZmIC0tZ2l0IGJhY2tlbmQv c3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRM YXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMTMuLjI3MDgwMzgwIDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0 aWMgVmFsdWUgKmJ1aWxkVmVjdG9yT3JTY2FsYXIoQ29udmVyc2lvblN0YXRlICZTdGF0ZSwgSVJC dWlsZGVyPD4gJklSQiwgU21hbAotICAgICAvLyBzcGxpdGVkLCB0aGF0J3Mgd2h5IHRoZXNlIHRl bXBvcmFyeSB2YWx1ZXMgc2hvdWxkIGJlIGVyYXNlZC4KLSAgICAgYm9vbCBLZWVwSW5zZXJ0ID0g aXNMZWdhbEJpdFNpemUoRWxlbVR5LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgKiBFbGVtTm8p OwotICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICBW YWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChF bGVtVHksIEVsZW1ObykpOwotKyAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZh bHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAg IFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICB2ZWMgPSBJ UkIuQ3JlYXRlSW5zZXJ0RWxlbWVudCh0bXAsIEVsZW1lbnRzW2ldLCBpZHgpOwotICAgICAgIGlm ICghS2VlcEluc2VydCAmJiAhaXNhPENvbnN0YW50Pih2ZWMpKSB7Ci1AQCAtMzczLDcgKzM3Myw3 IEBAIHN0YXRpYyB2b2lkIHVuaWZ5RWxlbWVudFR5cGUoSVJCdWlsZGVyPD4gJklSQiwgU21hbGxW ZWN0b3I8VmFsdWUgKiwgMTY+ICZTcmMsIFNtCi0gICAgICAgYXNzZXJ0KChTaXplICUgTWluV2lk dGgpID09IDApOwotIAotICAgICAgIGlmIChTaXplID4gTWluV2lkdGgpIHsKLS0gICAgICAgIFZl Y3RvclR5cGUgKlZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCk7 Ci0rICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9IFZlY3RvclR5cGU6OmdldChFbGVtVHksIFNp emUvTWluV2lkdGgsIGZhbHNlKTsKLSAgICAgICAgIFZhbHVlICpDYXN0ZWQgPSBJUkIuQ3JlYXRl Qml0Q2FzdChTcmNbaV0sIFZlY1R5KTsKLSAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGog PCBTaXplL01pbldpZHRoOyBqKyspCi0gICAgICAgICAgIERzdC5wdXNoX2JhY2soSVJCLkNyZWF0 ZUV4dHJhY3RFbGVtZW50KENhc3RlZCwgQ29uc3RhbnRJbnQ6OmdldChJbnRUeSwgaikpKTsKLUBA IC00NjIsNyArNDYyLDcgQEAgc3RhdGljIHZvaWQgY29udmVydEluc3RydWN0aW9uKEluc3RydWN0 aW9uICpJbnN0LCBDb252ZXJzaW9uU3RhdGUgJlN0YXRlLAotICAgICAgIHVuc2lnbmVkIEVsZW1O byA9IFVuaWZpZWQuc2l6ZSgpOwotICAgICAgIFR5cGUgKkVsZW1UeSA9IFVuaWZpZWRbMF0tPmdl dFR5cGUoKTsKLSAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsK LS0gICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9y VHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAgICBWYWx1ZSAqdG1wID0gdmVjID8g dmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObywgZmFs c2UpKTsKLSAgICAgICAgIFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsK LSAgICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50KHRtcCwgVW5pZmllZFtpXSwg aWR4KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFj a2VuZC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotaW5kZXggYzkz ZDg5Y2MuLjY0ZDViMGU1IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9i YWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAot QEAgLTMwNCw3ICszMDQsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgVFlQRVNJWkVWRUMobG9u Zyw4KQotICAgICAgIFRZUEVTSVpFVkVDKHVuc2lnbmVkIGxvbmcsOCkKLSAgICAgICBlbHNlewot LSAgICAgICAgU3RydWN0VHlwZSAqU3RyVHkgPSBNLT5nZXRUeXBlQnlOYW1lKCJzdHJ1Y3QuIitu YW1lKTsKLSsgICAgICAgIFN0cnVjdFR5cGUgKlN0clR5ID0gU3RydWN0VHlwZTo6Z2V0VHlwZUJ5 TmFtZShNLT5nZXRDb250ZXh0KCksICJzdHJ1Y3QuIituYW1lKTsKLSAgICAgICAgIGlmKFN0clR5 KQotICAgICAgICAgICByZXR1cm4gZ2V0VHlwZUJ5dGVTaXplKHVuaXQsU3RyVHkpOwotICAgICAg IH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRp b24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAot aW5kZXggNWFhMzhiZWYuLjZiNWMxYmFkIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBAIC0xNTIsNyArMTUyLDcgQEAgbmFtZXNw YWNlIGdiZSB7Ci0gICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9IGxkLT5nZXRQb2ludGVyQWRkcmVz c1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUgZmlyc3QgbG9hZAotICAgICBCdWlsZGVy LlNldEluc2VydFBvaW50KGxkKTsKLS0gICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBl OjpnZXQobGQtPmdldFR5cGUoKSwgc2l6ZSk7Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVj dG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBlKCksIHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKnZl Y1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclR5cGU6OmdldCh2 ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3Jl YXRlTG9hZCh2ZWNQdHIpOwotQEAgLTIzNiw3ICsyMzYsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAg ICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChtZXJnZWRbc2l6ZS0xXSk7Ci0gCi0gICAgIFR5cGUg KmRhdGFUeSA9IHN0LT5nZXRWYWx1ZU9wZXJhbmQoKS0+Z2V0VHlwZSgpOwotLSAgICBWZWN0b3JU eXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUpOwotKyAgICBWZWN0b3JU eXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUsIGZhbHNlKTsKLSAgICAg VmFsdWUgKiBwYXJlbnQgPSBVbmRlZlZhbHVlOjpnZXQodmVjVHkpOwotICAgICBmb3IodW5zaWdu ZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICBwYXJlbnQgPSBCdWlsZGVyLkNyZWF0 ZUluc2VydEVsZW1lbnQocGFyZW50LCB2YWx1ZXNbaV0sIENvbnN0YW50SW50OjpnZXQoSW50ZWdl clR5cGU6OmdldChzdC0+Z2V0Q29udGV4dCgpLCAzMiksIGkpKTsKLWRpZmYgLS1naXQgYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9w cmludGZfcGFyc2VyLmNwcAotaW5kZXggNmJiN2M1MmEuLmFmNDU5Y2QyIDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLUBAIC02MzAsNyArNjMwLDcgQEAgZXJyb3I6 Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlICE9IGVsdF9kc3RfdHlwZSkgewotICAgICAgICAg ICAgICAgVmFsdWUgKklJID0gTlVMTDsKLSAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgdmVjX251bTsgaSsrKSB7Ci0tICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJ IDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChlbHRfZHN0X3R5cGUsIHZlY19udW0p KTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpn ZXQoVmVjdG9yVHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVjX251bSwgZmFsc2UpKTsKLSAgICAg ICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3RhbnRJbnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5 KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKm9y ZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVtZW50KGFyZywgY3YpOwotICAgICAgICAgICAg ICAgICBWYWx1ZSAqY3Z0ID0gYnVpbGRlci0+Q3JlYXRlSW50Q2FzdChvcmcsIGVsdF9kc3RfdHlw ZSwgc2lnbik7Ci1AQCAtNjU4LDcgKzY1OCw3IEBAIGVycm9yOgotICAgICAgICAgICAgIGlmIChl bHRfdHlwZS0+Z2V0VHlwZUlEKCkgIT0gVHlwZTo6RmxvYXRUeUlEKSB7Ci0gICAgICAgICAgICAg ICBWYWx1ZSAqSUkgPSBOVUxMOwotICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2 ZWNfbnVtOyBpKyspIHsKLS0gICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBV bmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUt PmdldENvbnRleHQoKSksIHZlY19udW0pKTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9 IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0 VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19udW0sIGZhbHNlKSk7Ci0gICAgICAgICAg ICAgICAgIFZhbHVlICpjdiA9IENvbnN0YW50SW50OjpnZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRf dHlwZS0+Z2V0Q29udGV4dCgpKSwgaSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpvcmcgPSBi dWlsZGVyLT5DcmVhdGVFeHRyYWN0RWxlbWVudChhcmcsIGN2KTsKLSAgICAgICAgICAgICAgICAg VmFsdWUqIGN2dCAgPSBidWlsZGVyLT5DcmVhdGVGUENhc3Qob3JnLCBUeXBlOjpnZXRGbG9hdFR5 KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2 bV90b19nZW4uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi1pbmRleCA3Zjdk ZWZmZS4uOWU4Y2NjNjcgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2Vu LmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLUBAIC0zNTgsNyAr MzU4LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhclJlcGxB Z2dyZWdhdGVzUGFzcyg2NCwgdHJ1ZSwgLTEsIC0xLCA2NCkpOwotICNlbmRpZgotICAgICBwYXNz ZXMuYWRkKGNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSk7Ci0tICAgIHBhc3Nlcy5h ZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7Ci0rICAgIC8vcGFzc2VzLmFkZChj cmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVQ cm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MoKSk7Ci0gICAgIGlmKG9wdExldmVsID4gMCkKLSAg ICAgICBwYXNzZXMuYWRkKGNyZWF0ZUdWTlBhc3MoKSk7ICAgICAgICAgICAgICAgICAvLyBSZW1v dmUgcmVkdW5kYW5jaWVzCi1AQCAtMzY3LDExICszNjcsMTEgQEAgbmFtZXNwYWNlIGdiZQotICAg ICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhcml6ZVBhc3MoKSk7ICAgICAgICAgICAgIC8vIEV4cGFu ZCBhbGwgdmVjdG9yIG9wcwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUV4cGFuZExhcmdlSW50ZWdl cnNQYXNzKCkpOyAgIC8vIGxlZ2FsaXplIGxhcmdlIGludGVnZXIgb3BlcmF0aW9uCi0gICAgIHBh c3Nlcy5hZGQoY3JlYXRlSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKCkpOyAgLy8gbGVnYWxpemUg d2lsbCBnZW5lcmF0ZSBzb21lIHNpbGx5IGluc3RydWN0aW9ucwotLSAgICBwYXNzZXMuYWRkKGNy ZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBh ZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50 UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJp emUvbGVnYWxpemUKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVFeHBhbmRDb25zdGFudEV4cHJQYXNz KCkpOyAgICAvLyBjb25zdGFudCBwcm9wIG1heSBnZW5lcmF0ZSBDb25zdGFudEV4cHIKLSAgICAg cGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlSW50ZWdlcnNQYXNzKCkpOyAgICAgICAvLyBhbGlnbiBp bnRlZ2VyIHNpemUgdG8gcG93ZXIgb2YgdHdvCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUmVtb3Zl R0VQUGFzcyh1bml0KSk7ICAgICAgICAgLy8gQ29uc3RhbnQgcHJvcCBtYXkgZ2VuZXJhdGUgZ2Vw Ci0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RFbGltaW5hdGlvblBhc3MoKSk7ICAgLy8g UmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVE ZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVj dGlvbnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVDRkdTaW1wbGlmaWNhdGlvblBhc3MoKSk7ICAg ICAvLyBNZXJnZSAmIHJlbW92ZSBCQnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVMb3dlclN3aXRj aFBhc3MoKSk7ICAgICAgICAgICAvLyBzaW1wbGlmeSBjZmcgd2lsbCBnZW5lcmF0ZSBzd2l0Y2gt Y2FzZSBpbnN0cnVjdGlvbgotICAgICBpZiAocHJvZmlsaW5nKSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2VmYWZiYjY1NTg4Li4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2Vu L2dlbl9tZXNhX2Rpc2FzbS5jCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVz YV9kaXNhc20uYwotQEAgLTExMzcsNyArMTEzNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBfX2NvbnZf aGFsZl90b19mbG9hdCh1aW50MTZfdCBoKQotICAgICAgIC8vIEFkanVzdCBtYW50aXNzYSBzbyBp dCdzIG5vcm1hbGl6ZWQgKGFuZCBrZWVwCi0gICAgICAgLy8gdHJhY2sgb2YgZXhwb25lbnQgYWRq dXN0bWVudCkKLSAgICAgICBpbnQgZSA9IC0xOwotLSAgICAgIHVpbnQgbSA9IGkubWFudGlzc2E7 Ci0rICAgICAgdW5zaWduZWQgaW50IG0gPSBpLm1hbnRpc3NhOwotICAgICAgIGRvIHsKLSAgICAg ICAgIGUrKzsKLSAgICAgICAgIG0gPDw9IDE7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQv dGVtcGxhdGUgYi9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGRjZTZiYmI3YWUyNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25l dC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMgVGVtcGxhdGUgZmls ZSBmb3IgJ2JlaWduZXQnCi1wa2duYW1lPWJlaWduZXQKLXZlcnNpb249MS4zLjIKLXJldmlzaW9u PTEwCi1hcmNocz0iaTY4NiogeDg2XzY0KiIKLXdya3NyYz0iQmVpZ25ldC0ke3ZlcnNpb259LVNv dXJjZSIKLWJ1aWxkX3N0eWxlPWNtYWtlCi1ob3N0bWFrZWRlcGVuZHM9ImNsYW5nIGxsdm0gcGtn LWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGxpYmVkaXQtZGV2ZWwgbGliZmZp LWRldmVsIG9jbC1pY2QtZGV2ZWwgemxpYi1kZXZlbAotIGxpYlhmaXhlcy1kZXZlbCIKLWRlcGVu ZHM9Im9jbC1pY2QiCi1zaG9ydF9kZXNjPSJCZWlnbmV0IEdQR1BVIFN5c3RlbSBmb3IgSW50ZWwg R1BVcyIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNl bnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9w Lm9yZy93aWtpL1NvZnR3YXJlL0JlaWduZXQvIgotZGlzdGZpbGVzPSJodHRwczovLzAxLm9yZy9z aXRlcy9kZWZhdWx0L2ZpbGVzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS1zb3VyY2UudGFyLmd6Igot Y2hlY2tzdW09YzU1NWVkYmExNDlkZTIzMjQzOTY1YTcwM2YzOWY3OWZhMDZmMTViY2ZmNWEzNzYy YjU1NDRiMDkyNTAxMGI0MwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JIyByZW1vdmUgQ0wgaGVhZGVy cywgd2UgZG8gdXNlIG9wZW5jbC1oZWFkZXJzIGluc3RlYWQuCi0Jcm0gLXIgJHtERVNURElSfS91 c3IvaW5jbHVkZQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZSBiL3NyY3Br Z3MvYmVpZ25ldC91cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNDFlMGFm ZTYwYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUKKysrIC9kZXYv bnVsbApAQCAtMSArMCwwIEBACi1zaXRlPSJodHRwczovLzAxLm9yZy9iZWlnbmV0L2Rvd25sb2Fk cyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBiL3NyY3Br Z3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCA2NTUxNmRmYTkyMWMuLmI2ZjJlZmE1 ZTQxNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3JlbW92ZWQtcGFja2FnZXMnCiBwa2duYW1lPXJlbW92ZWQtcGFja2Fn ZXMKIHZlcnNpb249MC4xCi1yZXZpc2lvbj02OQorcmV2aXNpb249NzAKIGJ1aWxkX3N0eWxlPW1l dGEKIHNob3J0X2Rlc2M9IlVuaW5zdGFsbHMgcGFja2FnZXMgcmVtb3ZlZCBmcm9tIHJlcG9zaXRv cnkiCiBtYWludGFpbmVyPSJQaW90ciBXw7NqY2lrIDxjaG9jaW1pZXJAdGxlbi5wbD4iCkBAIC0y NSw2ICsyNSw3IEBAIHJlcGxhY2VzPSIKICBhdG9tPD0xLjQ0LjBfMQogIGF2b2dhZHJvLWRldmVs PD0xLjIuMF84CiAgYXZvZ2Fkcm88PTEuMi4wXzgKKyBiZWlnbmV0PD0xLjMuMl8xMAogIGJva2tl bjw9MS44XzMKICBib21pPD0wLjkuMTFfMTcKICBidXJwLWNsaWVudDw9MS40LjQwXzEzCgpGcm9t IGI0YjNmNzMzNTBhMGU3ZWFlMjJlZDlkOWM4MzRlYjc5MDAyMTAwMDUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMjI6MzE6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzI2 XSBsZGM6IHVwZGF0ZSB0byAxLjI5LjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgIHwgOCAr KysrLS0tLQogc3JjcGtncy9sZGMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2Vk LCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3No bGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzZiYWIxZDNkOTk5Li43ZGVhMzAxMzc2MzUgMTAw NjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjE4MSwxMCAr MjE4MSwxMCBAQCBsaWJGY2l0eDVDb25maWcuc28uNiBsaWJmY2l0eDUtNS4wLjVfMQogbGliRmNp dHg1R0NsaWVudC5zby4yIGZjaXR4NS1ndGstNS4wLjRfMQogbGliRmNpdHg1UXQ1REJ1c0FkZG9u cy5zby4xIGZjaXR4NS1xdDUtNS4wLjNfMQogbGliRmNpdHg1UXQ1V2lkZ2V0c0FkZG9ucy5zby4y IGZjaXR4NS1xdDUtNS4wLjNfMQotbGliZHJ1bnRpbWUtbGRjLWRlYnVnLXNoYXJlZC5zby45OCBs ZGMtcnVudGltZS0xLjI4LjBfMQotbGliZHJ1bnRpbWUtbGRjLXNoYXJlZC5zby45OCBsZGMtcnVu dGltZS0xLjI4LjBfMQotbGlicGhvYm9zMi1sZGMtc2hhcmVkLnNvLjk4IGxkYy1ydW50aW1lLTEu MjguMF8xCi1saWJwaG9ib3MyLWxkYy1kZWJ1Zy1zaGFyZWQuc28uOTggbGRjLXJ1bnRpbWUtMS4y OC4wXzEKK2xpYmRydW50aW1lLWxkYy1kZWJ1Zy1zaGFyZWQuc28uOTkgbGRjLXJ1bnRpbWUtMS4y OS4wXzEKK2xpYmRydW50aW1lLWxkYy1zaGFyZWQuc28uOTkgbGRjLXJ1bnRpbWUtMS4yOS4wXzEK K2xpYnBob2JvczItbGRjLXNoYXJlZC5zby45OSBsZGMtcnVudGltZS0xLjI5LjBfMQorbGlicGhv Ym9zMi1sZGMtZGVidWctc2hhcmVkLnNvLjk5IGxkYy1ydW50aW1lLTEuMjkuMF8xCiBsaWJsZGMt aml0LnNvLjk4IGxkYy1ydW50aW1lLTEuMjguMF8xCiBsaWJtYXJibGV3aWRnZXQtcXQ1LnNvLjI4 IG1hcmJsZTUtMTcuMTIuMl8xCiBsaWJhc3Ryby5zby4yIG1hcmJsZTUtMTcuMTIuMl8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCmluZGV4 IGEyNzI4MGRkZTNiOC4uMWQ3MmE4ODA1ZWI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xkYy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xkYycKIHBrZ25hbWU9bGRjCi12ZXJzaW9uPTEuMjguMAordmVyc2lvbj0x LjI5LjAKIHJldmlzaW9uPTEKIHdya3NyYz0ibGRjLSR7dmVyc2lvbn0tc3JjIgogYnVpbGRfc3R5 bGU9Y21ha2UKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IgogIC1EQkFTSF9DT01Q TEVUSU9OX0NPTVBMRVRJT05TRElSPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uCiAgLURDX1NZ U1RFTV9MSUJTPSd1bndpbmQ7bTtwdGhyZWFkO3J0O2RsJyIKIGNvbmZfZmlsZXM9Ii9ldGMvbGRj Mi5jb25mIgotaG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTEyIHBlcmwgcGtnLWNvbmZpZyIKK2hv c3RtYWtlZGVwZW5kcz0iZG1kIGxsdm0xNCBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0i bGliY3VybC1kZXZlbCBsaWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsCiAgbGx2 bS1saWJ1bndpbmQtZGV2ZWwiCiBkZXBlbmRzPSJsZGMtcnVudGltZSBsbHZtLWxpYnVud2luZC1k ZXZlbCIKQEAgLTIyLDcgKzIyLDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlLCBCU0wtMS4wIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5kbGFuZy5vcmcvTERDIgogY2hhbmdlbG9nPSJodHRwczov L3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbGRjLWRldmVsb3BlcnMvbGRjL21hc3Rlci9DSEFO R0VMT0cubWQiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sZGMtZGV2ZWxvcGVycy9s ZGMvcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vbGRjLSR7dmVyc2lvbn0tc3JjLnRhci5n eiIKLWNoZWNrc3VtPTE3ZmVlOGJiNTM1YmNiOGNkYTBhNDU5NDc1MjY1NTVjNDZjMDQ1ZjMwMmE3 MzQ5Y2M4NzExYjI1NGU1NGNmMDkKK2NoZWNrc3VtPWQwYzA2NmViOTY1NDY3NjI1ZDljNWU3NWMw MGM1ODM0NTFiOWZmYTM2MzYwMWY5ZTM3Mjc1Y2E4YThhZWExNDAKIG5vcGllPXllcwogbm9jcm9z cz0iZG1kIGNvbXBpbGF0aW9uIGZhaWxzIG9uIGNyb3NzIgogIyB0ZXN0cyB0aW1lb3V0IG9uIG11 c2w7IGFsc28gcmVxdWlyZSB1bnBhY2thZ2VkIHB5dGhvbjMtbGl0CgpGcm9tIGNlMTczMTc3NDIy OGE1MGQ4NjEwZmYyZGZlMGUxNzM3YWRjNjkyNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIg TWF5IDIwMjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDIxLzI2XSBpbmNsdWRlLXdo YXQteW91LXVzZTogdXBkYXRlIHRvIDAuMTguCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13aGF0LXlv dS11c2UvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVz ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKaW5kZXgg YjEzYmI3ZWU1NmFmLi4yOTc2NjlmNjA0NTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5jbHVkZS13 aGF0LXlvdS11c2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1ZGUtd2hh dC15b3UtdXNlJwogcGtnbmFtZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0wLjE2Cit2 ZXJzaW9uPTAuMTgKIHJldmlzaW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxl PWNtYWtlCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVh aEB2dXh1Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5jbHVkZS13 aGF0LXlvdS11c2Uub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVz ZS5vcmcvZG93bmxvYWRzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6IgotY2hlY2tz dW09OGQ2ZmM5YjI1NTM0M2JjMWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVlMDA3NjAz NjExOWZmNWExYworY2hlY2tzdW09OTEwMmZjODQxOTI5NDc1N2RmODZhODljZTZlYzMwNWY4ZDkw YTgxOGQxZjI1OThhMTM5ZDE1ZWIxODk0YjhmMwogcHl0aG9uX3ZlcnNpb249MwogCiBwb3N0X2lu c3RhbGwoKSB7CgpGcm9tIGFlNzE4ZDEzNWFiNzY5YmQ2ZWVlM2E5MGRiNjJhZTViZDliYWEzODgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBv c3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTg6MjQgKzAyMDAKU3ViamVj dDogW1BBVENIIDIyLzI2XSBTUElSVi1MTFZNLVRyYW5zbGF0b3I6IHVwZGF0ZSB0byAxNC4wLjAu CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3Jj cGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgfCAxMyArKysrKysrLS0tLS0tCiAy IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA3ZGVhMzAxMzc2MzUuLjIx YWViY2YyZDY1OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC05ODEsNiArOTgxLDcgQEAgbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCiBsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQorbGliTExW TVNQSVJWTGliLnNvLjE0IFNQSVJWLUxMVk0tVHJhbnNsYXRvci0xNC4wLjBfMQogbGliaXNvZnMu c28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8xCiBs aWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvU1BJUlYt TExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3Iv dGVtcGxhdGUKaW5kZXggMjUwNGNhYmVkMzY3Li5mZGU5Njg5ZjcxMGMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvU1BJUlYt TExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIwIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdTUElSVi1MTFZNLVRyYW5zbGF0b3InCiBwa2duYW1lPVNQSVJWLUxMVk0tVHJhbnNs YXRvcgotdmVyc2lvbj0xMi4wLjAKK3ZlcnNpb249MTQuMC4wCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1jbWFrZQogbWFrZV9idWlsZF9hcmdzPSJsbHZtLXNwaXJ2IgotY29uZmlndXJlX2FyZ3M9 Ii1Xbm8tZGV2IC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9T04gLURDTUFLRV9TS0lQX1JQQVRIPU9O Ci0gLURMTFZNX1NQSVJWX0lOQ0xVREVfVEVTVFM9T0ZGIC1EQlVJTERfU0hBUkVEX0xJQlM9T04i Ci1ob3N0bWFrZWRlcGVuZHM9ImNsYW5nIGNsYW5nLXRvb2xzLWV4dHJhIGxsdm0iCi1tYWtlZGVw ZW5kcz0ibGx2bSIKK2NvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1NIQVJFRF9MSUJTPU9OIC1EQ01B S0VfQlVJTERfVFlQRT1SZWxlYXNlCisgLURDTUFLRV9QT1NJVElPTl9JTkRFUEVOREVOVF9DT0RF PU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTiAtRExMVk1fSU5DTFVERV9URVNUUz1PRkYKKyAtRExM Vk1fTElOS19MTFZNX0RZTElCPU9OIC1ETExWTV9FWFRFUk5BTF9MSVQ9L3Vzci9iaW4vbGl0IC1X bm8tZGV2IC1ETExWTV9FWFRFUk5BTF9TUElSVl9IRUFERVJTX1NPVVJDRV9ESVI9L3Vzci9pbmNs dWRlL3NwaXJ2LyAiCitob3N0bWFrZWRlcGVuZHM9ImNsYW5nIGNsYW5nLXRvb2xzLWV4dHJhIGxs dm0xNCIKK21ha2VkZXBlbmRzPSJsbHZtMTQgU1BJUlYtSGVhZGVycyIKIHNob3J0X2Rlc2M9IkFQ SSBhbmQgY29tbWFuZHMgZm9yIHByb2Nlc3NpbmcgU1BJUi1WIG1vZHVsZXMiCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTkNTQSIKIGhvbWVw YWdlPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUxMVk0tVHJhbnNsYXRv ciIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC8ke3BrZ25hbWV9 L2FyY2hpdmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTZlNGZhZDA0 MjAzZjI1ZmNkZTRjMzA4YzUzZTlmNTliZDA1YTM5MDk3ODk5MmRiMzIxMmQ0YjYzYWZmNjIxMDgK K2NoZWNrc3VtPTFhZmM1MmJiNGUzOWFlYjliNWI2OTMyNGEyMDFjODFiZDk4NjM2NGYzNDdiNTU5 OTk1ZWZmNmZkNmYwMTMzMTgKIG1ha2VfY2hlY2s9bm8KIAogcG9zdF9pbnN0YWxsKCkgewoKRnJv bSBkZjc3N2IyZDFhMTRjNzQ1ZTRjNzA0YWVjZmNkY2JkOGE4OWZiODdiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4K RGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjM1OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMy8y Nl0gaXNwYzogdXBkYXRlIHRvIDEuMTcuMC4KCi0tLQogLi4uL2lzcGMvcGF0Y2hlcy9jbWFrZS1i dWlsZC10eXBlLW5vbmUucGF0Y2ggIHwgICAxOCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAxLnBhdGNoICAgICAgICAgfCAgIDU3IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDIucGF0Y2ggICAgICAgICB8ICA5MjMgLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDMucGF0Y2ggICAgICAgICB8IDE1MDQgLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoICAgICAgICAgfCAgIDM0IC0KIHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggICAgICAgICB8ICAzNzIgLS0tCiBzcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoICAgICAgICAgfCAgMTI2IC0KIHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggICAgICAgICB8ICAxNjAgLS0KIHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2ggICAgICAgICB8ICAxNDkgLS0KIHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2ggICAgICAgICB8IDIxMDkgLS0tLS0tLS0tLS0tLS0t LS0KIHNyY3BrZ3MvaXNwYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDgg Ky0KIDExIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNTQ1NiBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBl LW5vbmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAxLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA3LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9j bWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1i dWlsZC10eXBlLW5vbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMWUz NTNjNzMxNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1 aWxkLXR5cGUtbm9uZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLUluZGV4 OiBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGlzcGMtMS4xNS4w Lm9yaWcvQ01ha2VMaXN0cy50eHQKLSsrKyBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotQEAg LTE1NywxMyArMTU3LDYgQEAgc2V0KE9VVFBVVF9SRUxFQVNFIFJlbGVhc2UvYmluKQotIHNldChD TUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9 L2JpbiApCi0gCi0gaWYoQ01BS0VfQlVJTERfVFlQRSkKLS0gICAgIyBWYWxpZGF0ZSBidWlsZCB0 eXBlCi0tICAgIHNldChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNlO1JlbFdpdGhE ZWJJbmZvIikKLS0KLS0gICAgc3RyaW5nKEZJTkQgIiR7Q09ORklHVVJBVElPTl9UWVBFU30iICIk e0NNQUtFX0JVSUxEX1RZUEV9IiBNQVRDSEVEX0NPTkZJRykKLS0gICAgaWYgKCR7TUFUQ0hFRF9D T05GSUd9IEVRVUFMIC0xKQotLSAgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNQUtFX0JV SUxEX1RZUEUgKCR7Q01BS0VfQlVJTERfVFlQRX0pIGFsbG93cyBvbmx5IHRoZSBmb2xsb3dpbmcg dmFsdWVzOiAke0NPTkZJR1VSQVRJT05fVFlQRVN9IikKLS0gICAgZW5kaWYoKQotIGVsc2UoTk9U IENNQUtFX0JVSUxEX1RZUEUpCi0gICAgIHNldChDTUFLRV9CVUlMRF9UWVBFICJSZWxlYXNlIikK LSAgICAgbWVzc2FnZShTVEFUVVMgIkJ1aWxkIHR5cGUgbm90IHNwZWNpZmllZDogVXNlIFJlbGVh c2UgYnkgZGVmYXVsdC4iKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwMS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmMmQzZjVhNDA5ZS4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw1NyArMCwwIEBACi1Gcm9tIDFjMGY4OWRjY2I3NzRmMjE2YzdmNmU3NmE5OWVlOTA3YTFlNjQx Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEbWl0cnkgQmFib2tpbiA8ZG1pdHJ5 LnkuYmFib2tpbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIyIERlYyAyMDIwIDE3OjAzOjU5IC0w ODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCB0byB3b3JrIHdpdGggTExWTSB0cnVuayBhZnRlciBs bHZtL2xsdm0tcHJvamVjdEA0MWMzYjI3MTMKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAxOCArKysr KysrKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4 IDZmYmI4YjljZi4uOTc3ZTlkMjIyIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3Ny Yy9jdHguY3BwCi1AQCAtMTQ3MywxMSArMTQ3MywxNSBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OkFkZERlYnVnUG9zKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgU291cmNlUG9zICpwb3Ms Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5z dHJ1Y3Rpb24+KHZhbHVlKTsKLSAgICAgaWYgKGluc3QgIT0gTlVMTCAmJiBtLT5kaUJ1aWxkZXIp IHsKLSAgICAgICAgIFNvdXJjZVBvcyBwID0gcG9zID8gKnBvcyA6IGN1cnJlbnRQb3M7Ci0tICAg ICAgICBpZiAocC5maXJzdF9saW5lICE9IDApCi0rICAgICAgICBpZiAocC5maXJzdF9saW5lICE9 IDApIHsKLSAgICAgICAgICAgICAvLyBJZiBmaXJzdF9saW5lID09IDAsIHRoZW4gd2UncmUgaW4g dGhlIG1pZGRsZSBvZiBzZXR0aW5nIHVwCi0gICAgICAgICAgICAgLy8gdGhlIHN0YW5kYXJkIGxp YnJhcnkgb3IgdGhlIGxpa2U7IGRvbid0IGFkZCBkZWJ1ZyBwb3NpdGlvbnMKLSAgICAgICAgICAg ICAvLyBmb3IgdGhvc2UgZnVuY3Rpb25zCi0tICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2Mo bGx2bTo6RGVidWdMb2M6OmdldChwLmZpcnN0X2xpbmUsIHAuZmlyc3RfY29sdW1uLCBzY29wZSA/ IHNjb3BlIDogR2V0RElTY29wZSgpKSk7Ci0rICAgICAgICAgICAgc2NvcGUgPSBzY29wZSA/IHNj b3BlIDogR2V0RElTY29wZSgpOwotKyAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0K LSsgICAgICAgICAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0 KCksIHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7 Ci0rICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2MoZGlMb2MpOwotKyAgICAgICAgfQotICAg ICB9Ci0gfQotIAotQEAgLTE1MTgsOSArMTUyMiwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OkVtaXRWYXJpYWJsZURlYnVnSW5mbyhTeW1ib2wgKnN5bSkgewotICAgICBsbHZtOjpESUxv Y2FsVmFyaWFibGUgKnZhciA9IG0tPmRpQnVpbGRlci0+Y3JlYXRlQXV0b1ZhcmlhYmxlKAotICAg ICAgICAgc2NvcGUsIHN5bS0+bmFtZSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZp cnN0X2xpbmUsIGRpVHlwZSwgdHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8pOwotIAot KyAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpn ZXQoc2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmly c3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotICAgICBsbHZtOjpJbnN0cnVjdGlv biAqZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5 bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHN5 bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUpLCBiYmxvY2sp OwotKyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwg dmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwgZGlMb2MsIGJibG9jayk7Ci0g ICAgIEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5wb3MsIHNjb3BlKTsKLSB9Ci0gCi1A QCAtMTUzNSw5ICsxNTQwLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdEZ1bmN0 aW9uUGFyYW1ldGVyRGVidWdJbmZvKFN5bWJvbCAqc3ltLCBpbnQgYXJnTnVtCi0gICAgICAgICBt LT5kaUJ1aWxkZXItPmNyZWF0ZVBhcmFtZXRlclZhcmlhYmxlKHNjb3BlLCBzeW0tPm5hbWUsIGFy Z051bSArIDEsIHN5bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaVR5cGUsIHRydWUg LyogcHJlc2VydmUgdGhyb3VnaCBvcHRzICovLCBmbGFncyk7Ci0gCi0rICAgIGxsdm06OkRlYnVn TG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29u dGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3Bl LCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNsYXJlSW5zdCA9 Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2 YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3MuZmlyc3RfbGlu ZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAgICAgICBtLT5k aUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRl ci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3Mo ZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTAzZjMwZGEx MGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTIzICswLDAgQEAKLUZyb20gMDU5N2E3OWQwODRjMDE0 NzgwMTM2ZGE5MDZhZmUyMWQxNWU5ODJjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IERlZXBha1JhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+ Ci1EYXRlOiBUdWUsIDUgSmFuIDIwMjEgMTM6NTM6MzAgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0g UmVtb3ZlIExMVk0gOC4wIGFuZCBMTFZNIDkuMC4gKCMxOTY2KQotCi0tLS0KLSAuYXBwdmV5b3Iu eW1sICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyAtLQotIC50cmF2aXMueW1sICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA3IC0tLQotIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAg ICAgICAgICB8IDEyICsrLS0tLQotIHNyYy9hc3QuY3BwICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA0IC0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzAgLS0t LS0tLS0tLS0tLQotIHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgICAgICB8ICA0IC0t Ci0gc3JjL2lzcGMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgLS0tLS0tLS0tCi0g c3JjL2lzcGMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KLSBzcmMvaXNwY192 ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgfCAgNCArLQotIHNyYy9tYWluLmNwcCAgICAgICAg ICAgICAgICAgICAgICAgICB8IDEzIC0tLS0tLQotIHNyYy9tb2R1bGUuY3BwICAgICAgICAgICAg ICAgICAgICAgICB8IDI3IC0tLS0tLS0tLS0tLQotIHNyYy9tb2R1bGUuaCAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyIC0KLSBzcmMvb3B0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL3R5cGUuY3BwICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTAgKystLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjICAg ICAgICAgICAgfCAgMSAtCi0gdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYyAgICAgICAgICAgIHwg IDMgLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjICAgICAgICAgICAgfCAgMiAtCi0gdGVz dHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgICAgICAgIHwgIDIgKwotIHRlc3RzL2xpdC10ZXN0 cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyB8IDExIC0tLS0tCi0gdGVzdHMvbGl0LXRlc3RzL2xpdC5j ZmcgICAgICAgICAgICAgIHwgIDUgLS0tCi0gMjAgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9u cygrKSwgMjEzIGRlbGV0aW9ucygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXQtdGVz dHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLQotZGlmZiAtLWdpdCBhLy5hcHB2ZXlvci55bWwgYi8u YXBwdmV5b3IueW1sCi1pbmRleCA0NTFhN2IzZTAuLjc5NDVjY2EyYSAxMDA2NDQKLS0tLSBhLy5h cHB2ZXlvci55bWwKLSsrKyBiLy5hcHB2ZXlvci55bWwKLUBAIC00MSw4ICs0MSw2IEBAIGVudmly b25tZW50OgotICAgICAgIExMVk1fVkVSU0lPTjogbGF0ZXN0Ci0gICAgIC0gQVBQVkVZT1JfQlVJ TERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLSAgICAgICBMTFZNX1ZFUlNJT046 IDEwLjAKLS0gICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8g MjAxOQotLSAgICAgIExMVk1fVkVSU0lPTjogOS4wCi0gCi0gZm9yOgotIC0KLUBAIC02Miw3ICs2 MCw2IEBAIGZvcjoKLSAgICAgICAgIGlmICIlQVBQVkVZT1JfQlVJTERfV09SS0VSX0lNQUdFJSI9 PSJWaXN1YWwgU3R1ZGlvIDIwMTkiICggKHNldCBnZW5lcmF0b3I9IlZpc3VhbCBTdHVkaW8gMTYi KSAmIChzZXQgdnN2ZXJzaW9uPTIwMTkpKQotICAgICAgICAgc2V0IExMVk1fVEFSPWxsdm0tMTEu MC4wLXdpbi52czIwMTktUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS43egotICAgICAgICAg aWYgIiVMTFZNX1ZFUlNJT04lIj09IjEwLjAiIChzZXQgTExWTV9UQVI9bGx2bS0xMC4wLjEtd2lu LnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnppcCkKLS0gICAgICAgIGlmICIl TExWTV9WRVJTSU9OJSI9PSI5LjAiIChzZXQgTExWTV9UQVI9bGx2bS05LjAuMS13aW4udnMyMDE3 LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotICAgaW5zdGFsbDoKLSAgICAgLSBw czogY2hvY28gaW5zdGFsbCAtLW5vLXByb2dyZXNzIHdpbmZsZXhiaXNvbjMgd2dldCA3emlwCi0g ICAgIC0gY21kOiB8LQotZGlmZiAtLWdpdCBhLy50cmF2aXMueW1sIGIvLnRyYXZpcy55bWwKLWlu ZGV4IDJlOTYwMTdhNi4uM2E2Yjg1MjY0IDEwMDY0NAotLS0tIGEvLnRyYXZpcy55bWwKLSsrKyBi Ly50cmF2aXMueW1sCi1AQCAtMTA4LDEzICsxMDgsNiBAQCBqb2JzOgotICAgICAgICAgLSBMTFZN X1RBUj1sbHZtLTEwLjAuMS11YnVudHUxNi4wNC1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNt LnRhci54egotICAgICAgICAgLSBMTFZNX1JFUE89aHR0cHM6Ly9naXRodWIuY29tL2RiYWJva2lu L2xsdm0tcHJvamVjdAotICAgICAgICAgLSBJU1BDX0hPTUU9JFRSQVZJU19CVUlMRF9ESVIKLS0g ICAgIyBMTFZNIDkuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMg KGJ1aWxkICsgcnVuKSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0tICAgIC0gPDw6 ICpteV90YWcKLS0gICAgICBlbnY6Ci0tICAgICAgICAtIExMVk1fVkVSU0lPTj05LjAgT1M9VWJ1 bnR1MTYuMDQKLS0gICAgICAgIC0gTExWTV9UQVI9bGx2bS05LjAuMS11YnVudHUxNi4wNC1SZWxl YXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnRhci54egotLSAgICAgICAgLSBMTFZNX1JFUE89aHR0 cHM6Ly9naXRodWIuY29tL2RiYWJva2luL2xsdm0tcHJvamVjdAotLSAgICAgICAgLSBJU1BDX0hP TUU9JFRSQVZJU19CVUlMRF9ESVIKLSAgICAgIyBXQVNNIGVuYWJsZWQgYnVpbGQKLSAgICAgIyBM TFZNIDExLjAgKyBVYnVudHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1wbGVzIChidWls ZCksIGJlbmNobWFya3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotICAgICAtIDw8OiAqbXlfdGFnCi1k aWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAotaW5kZXggNWZhODYz ZmNmLi5hNmIzZWQyNTEgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VM aXN0cy50eHQKLUBAIC0yNDEsMTAgKzI0MSw4IEBAIGlmIChYODZfRU5BQkxFRCkKLSAgICAgICAg IGF2eDItaTh4MzIgYXZ4Mi1pMTZ4MTYKLSAgICAgICAgIGF2eDItaTMyeDQgYXZ4Mi1pMzJ4OCBh dngyLWkzMngxNiBhdngyLWk2NHg0Ci0gICAgICAgICBhdng1MTJrbmwtaTMyeDE2Ci0tICAgICAg ICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OCkKLS0gICAgaWYgKCR7TExWTV9WRVJT SU9OX05VTUJFUn0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICAgICAgbGlz dChBUFBFTkQgSVNQQ19UQVJHRVRTIGF2eDUxMnNreC1pOHg2NCBhdng1MTJza3gtaTE2eDMyKQot LSAgICBlbmRpZigpCi0rICAgICAgICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OAot KyAgICAgICAgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0gZW5kaWYoKQotIGlm IChBUk1fRU5BQkxFRCkKLSAgICAgbGlzdChBUFBFTkQgSVNQQ19UQVJHRVRTIG5lb24taTh4MTYg bmVvbi1pMTZ4OCBuZW9uLWkzMng0IG5lb24taTMyeDgpCi1AQCAtMjU5LDExICsyNTcsNyBAQCBp ZiAoV0FTTV9FTkFCTEVEKQotIGVuZGlmKCkKLSAKLSBzZXQoQ0xBTkdfTElCUkFSWV9MSVNUIGNs YW5nRnJvbnRlbmQgY2xhbmdEcml2ZXIgY2xhbmdTZXJpYWxpemF0aW9uIGNsYW5nUGFyc2UgY2xh bmdTZW1hIGNsYW5nQW5hbHlzaXMgY2xhbmdBU1QgY2xhbmdCYXNpYyBjbGFuZ0VkaXQgY2xhbmdM ZXgpCi0tc2V0KExMVk1fQ09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIg aW5zdHJ1bWVudGF0aW9uIGxpbmtlciBvcHRpb24pCi0tCi0taWYgKCR7TExWTV9WRVJTSU9OX05V TUJFUn0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICBsaXN0KEFQUEVORCBM TFZNX0NPTVBPTkVOVFMgZnJvbnRlbmRvcGVubXApCi0tZW5kaWYoKQotK3NldChMTFZNX0NPTVBP TkVOVFMgZW5naW5lIGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlvbiBsaW5r ZXIgb3B0aW9uIGZyb250ZW5kb3Blbm1wKQotIAotIGlmIChYODZfRU5BQkxFRCkKLSAgICAgbGlz dChBUFBFTkQgTExWTV9DT01QT05FTlRTIHg4NikKLWRpZmYgLS1naXQgYS9zcmMvYXN0LmNwcCBi L3NyYy9hc3QuY3BwCi1pbmRleCAyMGY3NWEyOWMuLjVhNDNjNDg1NCAxMDA2NDQKLS0tLSBhL3Ny Yy9hc3QuY3BwCi0rKysgYi9zcmMvYXN0LmNwcAotQEAgLTQ0LDkgKzQ0LDcgQEAKLSAjaW5jbHVk ZSAic3ltLmgiCi0gI2luY2x1ZGUgInV0aWwuaCIKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5o PgotLSNlbmRpZgotIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotIC8vIEFTVE5vZGUKLSAKLUBAIC02Miw5 ICs2MCw3IEBAIHZvaWQgQVNUOjpBZGRGdW5jdGlvbihTeW1ib2wgKnN5bSwgU3RtdCAqY29kZSkg ewotIH0KLSAKLSB2b2lkIEFTVDo6R2VuZXJhdGVJUigpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3Bl KCJHZW5lcmF0ZUlSIik7Ci0tI2VuZGlmCi0gICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgZnVuY3Rpb25zLnNpemUoKTsgKytpKQotICAgICAgICAgZnVuY3Rpb25zW2ldLT5HZW5lcmF0 ZUlSKCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4 IDk3N2U5ZDIyMi4uNDJjNGVhMDlkIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3Ny Yy9jdHguY3BwCi1AQCAtMzA5LDIxICszMDksMTMgQEAgRnVuY3Rpb25FbWl0Q29udGV4dDo6RnVu Y3Rpb25FbWl0Q29udGV4dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0sIGxsdm06OkYK LSAgICAgICAgICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwg c2l6ZW9mKGJ1ZiksICJfX29mZl9hbGxfb25fbWFza18lcyIsIGctPnRhcmdldC0+R2V0SVNBU3Ry aW5nKCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOF8wCi0tICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0 RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLS0jZWxzZSAvLyBMTFZNIDkuMCsK LSAgICAgICAgICAgICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBvZmZGdW5jQ2FsbGVlID0gbS0+bW9k dWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5cGVzOjpWb2lkVHlwZSk7Ci0gICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0 YW50PihvZmZGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihvZmZGdW5jKSk7 Ci0gICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqb2ZmQkIgPSBsbHZtOjpCYXNpY0Jsb2Nr OjpDcmVhdGUoKmctPmN0eCwgImVudHJ5IiwgKGxsdm06OkZ1bmN0aW9uICopb2ZmRnVuYywgMCk7 Ci0gICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5z dChMTFZNTWFza0FsbE9mZiwgZ2xvYmFsQWxsT25NYXNrUHRyLCBvZmZCQik7Ci0gICAgICAgICAg ICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQo Zy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAx MC4wKwotICAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGln bihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwot LSNlbmRpZgotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBsbHZtOjpSZXR1cm5JbnN0OjpD cmVhdGUoKmctPmN0eCwgb2ZmQkIpOwotICAgICAgICAgfQotQEAgLTIyODgsMTEgKzIyODAsNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUg KnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotICNlbmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZv cmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+ Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIGluc3QtPnNl dEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgQWRkRGVi dWdQb3MoaW5zdCk7Ci1AQCAtMjQzMSwxMSArMjQxOSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFz aywKLSAgICAgICAgICAgICAgICAgLy8gdnMgdGhlIHByb3BlciBhbGlnbm1lbnQgaW4gcHJhY3Rp Y2UuKQotICAgICAgICAgICAgICAgICBpbnQgYWxpZ24gPSAxOwotIAotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdu bWVudChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgICAgICAgICBpbnN0 LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpKTsKLS0j ZW5kaWYKLSAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7 Ci1AQCAtMjY0OSwxMSArMjYzMyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAgICAg ICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gCi0gICAg IGlmIChhbGlnbiAhPSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85 XzAKLS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAx MC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oYWxpZ24p LnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAgICAgLy8gRG9uJ3QgYWRkIGRlYnVn Z2luZyBpbmZvIHRvIGFsbG9jYSBpbnN0cnVjdGlvbnMKLSAgICAgcmV0dXJuIGluc3Q7Ci1AQCAt MjkyNiwxMSArMjkwNiw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U3RvcmVJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QKLSAgICAgbGx2bTo6U3Rv cmVJbnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWx1ZSwgcHRyLCBiYmxvY2spOwot IAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAu MCsKLSAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdl dC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0g ICAgIH0KLSAKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLUBAIC0zMDI1LDE2ICszMDAxLDEw IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWVtY3B5SW5zdChsbHZtOjpWYWx1ZSAqZGVz dCwgbGx2bTo6VmFsdWUgKnNyYywgbGx2bTo6Ci0gICAgIH0KLSAgICAgaWYgKGFsaWduID09IE5V TEwpCi0gICAgICAgICBhbGlnbiA9IExMVk1JbnQzMigxKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPD0gSVNQQ19MTFZNXzhfMAotLSAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0KLS0gICAg ICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBpOC5wMGk4 Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6Vm9pZFBv aW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlwZSk7Ci0t I2Vsc2UgLy8gTExWTSA5LjArCi0gICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG1jRnVuY0NhbGxl ZSA9Ci0gICAgICAgICBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oImxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQiLCBMTFZNVHlwZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6OlZvaWRQb2lu dGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNVHlw ZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1UeXBlczo6Qm9v bFR5cGUpOwotICAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0gbGx2bTo6Y2FzdDxsbHZtOjpD b25zdGFudD4obWNGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG1jRnVuYyAhPSBOVUxMKTsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIGxsdm06OmlzYTxsbHZtOjpGdW5jdGlvbj4obWNGdW5jKSk7Ci0gCi1kaWZmIC0tZ2l0IGEv c3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXph dGlvbi5jcHAKLWluZGV4IDE5M2E2NjI4OS4uYTE3NmU5NDYyIDEwMDY0NAotLS0tIGEvc3JjL2dl bi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0 aW9uLmNwcAotQEAgLTQ3MCwxMSArNDcwLDcgQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpM b2NhbGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0 aW9uICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlw ZSAqRWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFs bG9jYUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUo KSArICIubG9jYWwiLCAmRmlyc3RJKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19M TFZNXzlfMAotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQoR1YtPmdldEFsaWdubWVudCgp KTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChs bHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkpOwotLSNlbmRpZgotICAgICAgICAg aWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQotICAgICAgICAgICAg IG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwgJkZpcnN0SSk7Ci0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2lzcGMuY3BwIGIvc3JjL2lzcGMuY3BwCi1pbmRleCBlMmQwZjIw NmUuLmZhYzUyMzNmNyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmNwcAotKysrIGIvc3JjL2lzcGMu Y3BwCi1AQCAtMjcyLDkgKzI3Miw3IEBAIHR5cGVkZWYgZW51bSB7Ci0gICAgIENQVV9TaWx2ZXJt b250LAotIAotICAgICBDUFVfSUNYLAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBDUFVfVEdMLAotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTJfMAotICAgICBDUFVfQURMLAotICAgICBDUFVfU1BSLAotQEAgLTM2NSwx MCArMzYzLDggQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gCi0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5w dXNoX2JhY2soImljZWxha2Utc2VydmVyIik7Ci0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5wdXNo X2JhY2soImljeCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICAgICAgbmFtZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0aWdlcmxha2UiKTsKLSAgICAgICAg IG5hbWVzW0NQVV9UR0xdLnB1c2hfYmFjaygidGdsIik7Ci0tI2VuZGlmCi0gI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNo X2JhY2soImFsZGVybGFrZSIpOwotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJh ZGwiKTsKLUBAIC00MTEsMTEgKzQwNyw5IEBAIGNsYXNzIEFsbENQVXMgewotICAgICAgICAgY29t cGF0W0NQVV9BRExdID0gU2V0KENQVV9BREwsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVf UGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlCcmlkZ2UsIENQ VV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfTm9uZSk7Ci0gI2VuZGlmCi0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBjb21wYXRbQ1BVX1RHTF0g PQotICAgICAgICAgICAgIFNldChDUFVfVEdMLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BV X1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsIENQVV9TYW5k eUJyaWRnZSwKLSAgICAgICAgICAgICAgICAgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dlbGwsIENQ VV9Ccm9hZHdlbGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9JQ1gsIENQVV9Ob25lKTsKLS0jZW5k aWYKLSAgICAgICAgIGNvbXBhdFtDUFVfSUNYXSA9IFNldChDUFVfSUNYLCBDUFVfeDg2XzY0LCBD UFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZl cm1vbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVX1NhbmR5QnJpZGdlLCBD UFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lD TCwgQ1BVX05vbmUpOwotIAotQEAgLTU1Niw5ICs1NTAsNyBAQCBUYXJnZXQ6OlRhcmdldChBcmNo IGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMs IGJvbwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAotICAgICAgICAg Y2FzZSBDUFVfU1BSOgotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICAgICAgY2FzZSBDUFVfVEdMOgotLSNlbmRpZgotICAgICAgICAgY2FzZSBD UFVfSUNYOgotICAgICAgICAgY2FzZSBDUFVfSUNMOgotICAgICAgICAgY2FzZSBDUFVfU0tYOgot QEAgLTkxNiw3ICs5MDgsNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIg KmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgfQot ICAgICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2k4eDY0Ogot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBMTFZNIDEwLjArCi0g ICAgICAgICAvLyBUaGlzIHRhcmdldCBpcyBlbmFibGVkIG9ubHkgZm9yIExMVk0gMTAuMCBhbmQg bGF0ZXIKLSAgICAgICAgIC8vIGJlY2F1c2UgTExWTSByZXF1aXJlcyBhIG51bWJlciBvZiBmaXhl cywgd2hpY2ggYXJlCi0gICAgICAgICAvLyBjb21taXR0ZWQgdG8gTExWTSAxMS4wIGFuZCBjYW4g YmUgYXBwbGllZCB0byAxMC4wLCBidXQgbm90Ci1AQCAtOTM3LDEyICs5MjgsNyBAQCBUYXJnZXQ6 OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3Rhcmdl dCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgdGhpcy0+bV9oYXNWZWNQcmVmZXRjaCA9IGZhbHNl OwotICAgICAgICAgQ1BVZnJvbUlTQSA9IENQVV9TS1g7Ci0gICAgICAgICBicmVhazsKLS0jZWxz ZQotLSAgICAgICAgdW5zdXBwb3J0ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAgICAgIGJyZWFrOwot LSNlbmRpZgotICAgICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pMTZ4MzI6Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAgICAg IC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRlcgot ICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3aGlj aCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBhcHBs aWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05NjMsMTAgKzk0OSw2IEBAIFRhcmdldDo6VGFyZ2V0 KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29s IHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0gICAg ICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0tICAg ICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2VuZGlm Ci0gI2lmZGVmIElTUENfQVJNX0VOQUJMRUQKLSAgICAgY2FzZSBJU1BDVGFyZ2V0OjpuZW9uX2k4 eDE2OgotICAgICAgICAgdGhpcy0+bV9pc2EgPSBUYXJnZXQ6Ok5FT047Ci1AQCAtMTY2MiwxMSAr MTY0NCw5IEBAIEdsb2JhbHM6Okdsb2JhbHMoKSB7Ci0gICAgIGlzTXVsdGlUYXJnZXRDb21waWxh dGlvbiA9IGZhbHNlOwotICAgICBlcnJvckxpbWl0ID0gLTE7Ci0gCi0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGVuYWJsZVRpbWVUcmFjZSA9IGZhbHNlOwot ICAgICAvLyBzZXQgZGVmYXVsdCBncmFudWxhcml0eSB0byA1MDAuCi0gICAgIHRpbWVUcmFjZUdy YW51bGFyaXR5ID0gNTAwOwotLSNlbmRpZgotICAgICB0YXJnZXQgPSBOVUxMOwotICAgICBjdHgg PSBuZXcgbGx2bTo6TExWTUNvbnRleHQ7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lzcGMuaCBiL3Ny Yy9pc3BjLmgKLWluZGV4IGUyNWQ4ODMwZS4uZGUzNTdhMjFjIDEwMDY0NAotLS0tIGEvc3JjL2lz cGMuaAotKysrIGIvc3JjL2lzcGMuaAotQEAgLTY5NSwxMyArNjk1LDEyIEBAIHN0cnVjdCBHbG9i YWxzIHsKLSAKLSAgICAgLyogTnVtYmVyIG9mIGVycm9ycyB0byBzaG93IGluIElTUEMuICovCi0g ICAgIGludCBlcnJvckxpbWl0OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotKwotICAgICAvKiBXaGVuIHRydWUsIGVuYWJsZSBjb21waWxlIHRpbWUgdHJhY2luZy4g Ki8KLSAgICAgYm9vbCBlbmFibGVUaW1lVHJhY2U7Ci0gCi0gICAgIC8qIFdoZW4gY29tcGlsZSB0 aW1lIHRyYWNpbmcgaXMgZW5hYmxlZCwgc2V0IHRpbWUgZ3JhbnVsYXJpdHkuICovCi0gICAgIGlu dCB0aW1lVHJhY2VHcmFudWxhcml0eTsKLS0jZW5kaWYKLSB9OwotIAotIGVudW0gewotZGlmZiAt LWdpdCBhL3NyYy9pc3BjX3ZlcnNpb24uaCBiL3NyYy9pc3BjX3ZlcnNpb24uaAotaW5kZXggZDc4 MTM0N2ZkLi40MzRiMmQ2NzggMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwY192ZXJzaW9uLmgKLSsrKyBi L3NyYy9pc3BjX3ZlcnNpb24uaAotQEAgLTQ0LDEzICs0NCwxMSBAQAotIAotICNkZWZpbmUgSVNQ Q19MTFZNX1ZFUlNJT04gKExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwMDAwICsgTExWTV9WRVJTSU9O X01JTk9SICogMTAwKQotIAotLSNkZWZpbmUgSVNQQ19MTFZNXzhfMCA4MDAwMAotLSNkZWZpbmUg SVNQQ19MTFZNXzlfMCA5MDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEwXzAgMTAwMDAwCi0gI2Rl ZmluZSBJU1BDX0xMVk1fMTFfMCAxMTAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8xMl8wIDEyMDAw MAotIAotLSNkZWZpbmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV84XzAKLSsjZGVm aW5lIE9MREVTVF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fMTBfMAotICNkZWZpbmUgTEFURVNU X1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMl8wCi0gCi0gI2lmZGVmIF9faXNwY19feHN0cgot ZGlmZiAtLWdpdCBhL3NyYy9tYWluLmNwcCBiL3NyYy9tYWluLmNwcAotaW5kZXggOGY2NDMzMGNj Li41YzkyMGVhYmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFpbi5jcHAKLSsrKyBiL3NyYy9tYWluLmNw cAotQEAgLTU1LDkgKzU1LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1NpZ25hbHMuaD4K LSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RhcmdldFJlZ2lzdHJ5Lmg+Ci0gI2luY2x1ZGUgPGxs dm0vU3VwcG9ydC9UYXJnZXRTZWxlY3QuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1Rvb2xPdXRwdXRGaWxlLmg+Ci0t I2VuZGlmCi0gCi0gI2lmZGVmIElTUENfSE9TVF9JU19XSU5ET1dTCi0gI2RlZmluZSBzdHJjYXNl Y21wIHN0cmljbXAKLUBAIC0xODEsMTEgKzE3OSw5IEBAIHN0YXRpYyB2b2lkIGxQcmludFZlcnNp b24oKSB7Ci0gICAgIHNucHJpbnRmKHRhcmdldEhlbHAsIHNpemVvZih0YXJnZXRIZWxwKSwgIlst LXRhcmdldC1vcz08b3M+XVx0XHRcdFNlbGVjdCB0YXJnZXQgT1MuICA8b3M+PXslc30iLAotICAg ICAgICAgICAgICBnLT50YXJnZXRfcmVnaXN0cnktPmdldFN1cHBvcnRlZE9TZXMoKS5jX3N0cigp KTsKLSAgICAgUHJpbnRXaXRoV29yZEJyZWFrcyh0YXJnZXRIZWxwLCAyNCwgVGVybWluYWxXaWR0 aCgpLCBzdGRvdXQpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICBwcmludGYoIiAgICBbLS10aW1lLXRyYWNlXVx0XHRcdFR1cm4gb24gdGltZSBwcm9maWxl ci4gR2VuZXJhdGVzIEpTT04gZmlsZSBiYXNlZCBvbiBvdXRwdXQgZmlsZW5hbWUuXG4iKTsKLSAg ICAgcHJpbnRmKCIgICAgWy0tdGltZS10cmFjZS1ncmFudWxhcml0eT08dmFsdWU+XHRNaW5pbXVt IHRpbWUgZ3JhbnVsYXJpdHkgKGluIG1pY3Jvc2Vjb25kcykgdHJhY2VkIGJ5IHRpbWUgIgotICAg ICAgICAgICAgInByb2ZpbGVyLlxuIik7Ci0tI2VuZGlmCi0gICAgIHByaW50ZigiICAgIFstLXZl cnNpb25dXHRcdFx0XHRQcmludCBpc3BjIHZlcnNpb25cbiIpOwotICNpZmRlZiBJU1BDX0dFTlhf RU5BQkxFRAotICAgICBwcmludGYoIiAgICBbLS12Yy1vcHRpb25zPTxcIi1vcHRpb24xIC1vcHRp b24yLi4uXCI+XVx0XHRcdFx0UGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gVmVjdG9yIENvbXBp bGVyIGJhY2tlbmRcbiIpOwotQEAgLTQ2Miw3ICs0NTgsNiBAQCBzdGF0aWMgdm9pZCBzZXRDYWxs aW5nQ29udihWZWN0b3JDYWxsU3RhdHVzIHZlY3RvckNhbGwsIEFyY2ggYXJjaCkgewotICAgICB9 Ci0gfQotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotIHN0YXRp YyB2b2lkIHdyaXRlQ29tcGlsZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0g ICAgIGxsdm06OlNtYWxsU3RyaW5nPDEyOD4ganNvbkZpbGVOYW1lKG91dEZpbGVOYW1lKTsKLSAg ICAganNvbkZpbGVOYW1lLmFwcGVuZCgiLmpzb24iKTsKLUBAIC00NzksNyArNDc0LDYgQEAgc3Rh dGljIHZvaWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsK LSAgICAgb2YtPmtlZXAoKTsKLSAgICAgcmV0dXJuOwotIH0KLS0jZW5kaWYKLSAKLSBzdGF0aWMg c3RkOjpzZXQ8aW50PiBQYXJzaW5nUGhhc2VzKGNoYXIgKnN0YWdlcywgQXJnRXJyb3JzICZlcnJv ckhhbmRsZXIpIHsKLSAgICAgY29uc3RleHByIGludCBwYXJzaW5nX2xpbWl0ID0gMTAwOwotQEAg LTc5MSwxMiArNzg1LDEwIEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAg ICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLWZv cmNlLWFsaWdubWVudD0iLCAxOCkpIHsKLSAgICAgICAgICAgICBnLT5mb3JjZUFsaWdubWVudCA9 IGF0b2koYXJndltpXSArIDE4KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNl IikpIHsKLSAgICAgICAgICAgICBnLT5lbmFibGVUaW1lVHJhY2UgPSB0cnVlOwotICAgICAgICAg fSBlbHNlIGlmICghc3RybmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PSIs IDI1KSkgewotICAgICAgICAgICAgIGctPnRpbWVUcmFjZUdyYW51bGFyaXR5ID0gYXRvaShhcmd2 W2ldICsgMjUpOwotLSNlbmRpZgotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0s ICItLXdvZmYiKSB8fCAhc3RyY21wKGFyZ3ZbaV0sICItd29mZiIpKSB7Ci0gICAgICAgICAgICAg Zy0+ZGlzYWJsZVdhcm5pbmdzID0gdHJ1ZTsKLSAgICAgICAgICAgICBnLT5lbWl0UGVyZldhcm5p bmdzID0gZmFsc2U7Ci1AQCAtMTA1OSw3ICsxMDUxLDYgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNo YXIgKkFyZ3ZbXSkgewotIAotICAgICAvLyBUaGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB0aGUg VGFyZ2V0T1MgaXMgZGVjaWRlZC4KLSAgICAgc2V0Q2FsbGluZ0NvbnYodmVjdG9yQ2FsbCwgYXJj aCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGlmIChn LT5lbmFibGVUaW1lVHJhY2UpIHsKLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVySW5p dGlhbGl6ZShnLT50aW1lVHJhY2VHcmFudWxhcml0eSwgImlzcGMiKTsKLSAgICAgfQotQEAgLTEw NzcsOSArMTA2OCw1IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAgICAg ICAgIH0KLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVyQ2xlYW51cCgpOwotICAgICB9 Ci0tI2Vsc2UKLS0gICAgaW50IHJldCA9IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChmaWxlLCBh cmNoLCBjcHUsIHRhcmdldHMsIGZsYWdzLCBvdCwgb3V0RmlsZU5hbWUsIGhlYWRlckZpbGVOYW1l LCBkZXBzRmlsZU5hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVwc1RhcmdldE5hbWUsIGhvc3RTdHViRmlsZU5hbWUsIGRldlN0dWJGaWxlTmFtZSk7Ci0tI2Vu ZGlmCi0gICAgIHJldHVybiByZXQ7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuY3BwIGIv c3JjL21vZHVsZS5jcHAKLWluZGV4IGZlNzQ1MmRmMS4uYTg1ZmVjNzdhIDEwMDY0NAotLS0tIGEv c3JjL21vZHVsZS5jcHAKLSsrKyBiL3NyYy9tb2R1bGUuY3BwCi1AQCAtMTcwLDkgKzE3MCw3IEBA IE1vZHVsZTo6TW9kdWxlKGNvbnN0IGNoYXIgKmZuKSB7Ci0gICAgIG1vZHVsZS0+c2V0RGF0YUxh eW91dChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0U3RyaW5nUmVwcmVzZW50YXRpb24o KSk7Ci0gCi0gICAgIGlmIChnLT5nZW5lcmF0ZURlYnVnZ2luZ1N5bWJvbHMpIHsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIFRpbWVTY29wZSgiQ3JlYXRlIERlYnVnIERhdGEiKTsKLS0jZW5kaWYKLSAgICAgICAg IC8vIFRvIGVuYWJsZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBXaW5kb3dzLCB3ZSBoYXZlIHRvIGxl dCBsbHZtIGtub3csIHRoYXQKLSAgICAgICAgIC8vIGRlYnVnIGluZm9ybWF0aW9uIHNob3VsZCBi ZSBlbWl0dGVkIGluIENvZGVWaWV3IGZvcm1hdC4KLSAgICAgICAgIGlmIChnLT50YXJnZXRfb3Mg PT0gVGFyZ2V0T1M6OndpbmRvd3MpIHsKLUBAIC0yMjYsMTAgKzIyNCw4IEBAIGV4dGVybiBZWV9C VUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlcihGSUxFICosIGludCk7Ci0gZXh0ZXJuIHZvaWQg eXlfZGVsZXRlX2J1ZmZlcihZWV9CVUZGRVJfU1RBVEUpOwotIAotIGludCBNb2R1bGU6OkNvbXBp bGVGaWxlKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBDb21waWxlRmlsZVRpbWVTY29wZSgKLSAgICAgICAgICJD b21waWxlRmlsZSIsIGxsdm06OlN0cmluZ1JlZihmaWxlbmFtZSArICgiXyIgKyBzdGQ6OnN0cmlu ZyhnLT50YXJnZXQtPkdldElTQVN0cmluZygpKSkpKTsKLS0jZW5kaWYKLSAgICAgZXh0ZXJuIHZv aWQgUGFyc2VySW5pdCgpOwotICAgICBQYXJzZXJJbml0KCk7Ci0gCi1AQCAtMjM4LDE4ICsyMzQs MTQgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAgIC8vIHZhcmlhYmxlICdtJyB0 byBiZSBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlICh3aGljaCBpdCBpc24ndCB1bnRpbAotICAg ICAvLyB0aGUgTW9kdWxlIGNvbnN0cnVjdG9yIHJldHVybnMuLi4pCi0gICAgIHsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIFRpbWVTY29wZSgiRGVmaW5lU3RkbGliIik7Ci0tI2VuZGlmCi0gICAgICAgICBEZWZp bmVTdGRsaWIoc3ltYm9sVGFibGUsIGctPmN0eCwgbW9kdWxlLCBnLT5pbmNsdWRlU3RkbGliKTsK LSAgICAgfQotIAotICAgICBib29sIHJ1blByZXByb2Nlc3NvciA9IGctPnJ1bkNQUDsKLSAKLSAg ICAgaWYgKHJ1blByZXByb2Nlc3NvcikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9u dGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghSXNTdGRpbihmaWxlbmFtZSkp IHsKLSAgICAgICAgICAgICAvLyBUcnkgdG8gb3BlbiB0aGUgZmlsZSBmaXJzdCwgc2luY2Ugb3Ro ZXJ3aXNlIHdlIGNyYXNoIGluIHRoZQotICAgICAgICAgICAgIC8vIHByZXByb2Nlc3NvciBpZiB0 aGUgZmlsZSBkb2Vzbid0IGV4aXN0LgotQEAgLTI2OCw5ICsyNjAsNyBAQCBpbnQgTW9kdWxlOjpD b21waWxlRmlsZSgpIHsKLSAgICAgICAgIHl5cGFyc2UoKTsKLSAgICAgICAgIHl5X2RlbGV0ZV9i dWZmZXIoc3RyYnVmKTsKLSAgICAgfSBlbHNlIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgi RnJvbnRlbmQgcGFyc2VyIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBObyBwcmVwcm9jZXNzb3Is IGp1c3Qgb3BlbiB1cCB0aGUgZmlsZSBpZiBpdCdzIG5vdCBzdGRpbi4uCi0gICAgICAgICBGSUxF ICpmID0gTlVMTDsKLSAgICAgICAgIGlmIChJc1N0ZGluKGZpbGVuYW1lKSkgewotQEAgLTI5Nyw5 ICsyODcsNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAKLSAgICAgaWYgKGRpQnVp bGRlcikKLSAgICAgICAgIGRpQnVpbGRlci0+ZmluYWxpemUoKTsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNj b3BlKCJPcHRpbWl6ZSIpOwotLSNlbmRpZgotICAgICBpZiAoZXJyb3JDb3VudCA9PSAwKQotICAg ICAgICAgT3B0aW1pemUobW9kdWxlLCBnLT5vcHQubGV2ZWwpOwotIAotQEAgLTEyNDMsMTUgKzEy MzEsOCBAQCBib29sIE1vZHVsZTo6d3JpdGVPYmplY3RGaWxlT3JBc3NlbWJseShsbHZtOjpUYXJn ZXRNYWNoaW5lICp0YXJnZXRNYWNoaW5lLCBsbHZtOgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIC8vIEZpZ3Vy ZSBvdXQgaWYgd2UncmUgZ2VuZXJhdGluZyBvYmplY3QgZmlsZSBvciBhc3NlbWJseSBvdXRwdXQs IGFuZAotICAgICAvLyBzZXQgYmluYXJ5IG91dHB1dCBmb3Igb2JqZWN0IGZpbGVzCi0tI2lmIElT UENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgQXNzZXJ0KCFnLT50YXJnZXQt PmlzR2VuWFRhcmdldCgpKTsKLS0gICAgbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q29kZUdlbkZpbGVU eXBlIGZpbGVUeXBlID0KLS0gICAgICAgIChvdXRwdXRUeXBlID09IE9iamVjdCkgPyBsbHZtOjpU YXJnZXRNYWNoaW5lOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDR0ZU X0Fzc2VtYmx5RmlsZTsKLS0gICAgYm9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6VGFy Z2V0TWFjaGluZTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAg IGxsdm06OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9IChvdXRwdXRUeXBlID09IE9iamVjdCkg PyBsbHZtOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpDR0ZUX0Fzc2VtYmx5RmlsZTsKLSAgICAg Ym9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZW5k aWYKLSAKLSAgICAgbGx2bTo6c3lzOjpmczo6T3BlbkZsYWdzIGZsYWdzID0gYmluYXJ5ID8gbGx2 bTo6c3lzOjpmczo6Rl9Ob25lIDogbGx2bTo6c3lzOjpmczo6Rl9UZXh0OwotIAotQEAgLTIyMTks MTEgKzIyMDAsNyBAQCB2b2lkIE1vZHVsZTo6ZXhlY1ByZXByb2Nlc3Nvcihjb25zdCBjaGFyICpp bmZpbGVuYW1lLCBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gKgotICAgICBpbnN0LnNldFRhcmdl dCh0YXJnZXQpOwotICAgICBpbnN0LmNyZWF0ZVNvdXJjZU1hbmFnZXIoaW5zdC5nZXRGaWxlTWFu YWdlcigpKTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAg ICBjbGFuZzo6RnJvbnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJ bnB1dEtpbmQ6OlVua25vd24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgY2xhbmc6OkZy b250ZW5kSW5wdXRGaWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kKCkp OwotLSNlbmRpZgotIAotICAgICBpbnN0LkluaXRpYWxpemVTb3VyY2VNYW5hZ2VyKGlucHV0Rmls ZSk7Ci0gCi1AQCAtMjcyMiw5ICsyNjk5LDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1 dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAK LSAgICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAgICAgaWYgKG0tPkNvbXBp bGVGaWxlKCkgPT0gMCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIp OwotLSNlbmRpZgotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICAgICAgICAgICAgIGlmIChv dXRwdXRUeXBlID09IEFzbSB8fCBvdXRwdXRUeXBlID09IE9iamVjdCkgewotICAgICAgICAgICAg ICAgICBpZiAoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSkgewotQEAgLTI4NTUsOSArMjgzMCw3 IEBAIGludCBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3JjRmlsZSwgQXJj aCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICAgICAgbSA9IG5ldyBNb2R1 bGUoc3JjRmlsZSk7Ci0gICAgICAgICAgICAgaW50IGNvbXBpbGVGaWxlRXJyb3IgPSBtLT5Db21w aWxlRmlsZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIpOwotLSNl bmRpZgotICAgICAgICAgICAgIGlmIChjb21waWxlRmlsZUVycm9yID09IDApIHsKLSAgICAgICAg ICAgICAgICAgLy8gQ3JlYXRlIHRoZSBkaXNwYXRjaCBtb2R1bGUsIHVubGVzcyBhbHJlYWR5IGNy ZWF0ZWQ7Ci0gICAgICAgICAgICAgICAgIC8vIGluIHRoZSBsYXR0ZXIgY2FzZSwganVzdCBkbyB0 aGUgY2hlY2tpbmcKLWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmggYi9zcmMvbW9kdWxlLmgKLWlu ZGV4IDYxZDNjZmVhMC4uNjAzMTI0ZDUwIDEwMDY0NAotLS0tIGEvc3JjL21vZHVsZS5oCi0rKysg Yi9zcmMvbW9kdWxlLmgKLUBAIC00Myw5ICs0Myw3IEBACi0gCi0gI2luY2x1ZGUgPGxsdm0vSVIv RGVidWdJbmZvLmg+Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAKLSAj aWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAjaW5jbHVkZSAib2NsX2lnY19pbnRlcmZhY2UvaWdj X29jbF9kZXZpY2VfY3R4LmgiCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNw cAotaW5kZXggYTY1NWE4MzQ0Li41YjFhYzdiNjMgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAot KysrIGIvc3JjL29wdC5jcHAKLUBAIC02Niw2ICs2Niw3IEBACi0gI2luY2x1ZGUgPGxsdm0vSVIv SW5zdHJ1Y3Rpb25zLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljSW5zdC5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3MuaD4KLSsjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5z aWNzWDg2Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvTGVnYWN5UGFzc01hbmFnZXIuaD4KLSAjaW5j bHVkZSA8bGx2bS9JUi9Nb2R1bGUuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9QYXR0ZXJuTWF0Y2gu aD4KLUBAIC04NSw5ICs4Niw2IEBACi0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9TY2FsYXIv SW5zdFNpbXBsaWZ5UGFzcy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaD4K LSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1V0aWxzL0Jhc2ljQmxvY2tVdGlscy5oPgotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotLSNpbmNsdWRlIDxsbHZtL0lS L0ludHJpbnNpY3NYODYuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX0xJTlVY Ci0gI2luY2x1ZGUgPGFsbG9jYS5oPgotQEAgLTEwMDMsMTAgKzEwMDEsNyBAQCBib29sIEludHJp bnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAg ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5n ZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotICAgICAgICAg ICAgICAgICBuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJf bG9hZCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAg ICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0tICAgICAgICAgICAgICAg ICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBhbGlnbiwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xh dGlsZSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1 Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotQEAgLTEwNDMsMTMgKzEwMzgsOCBAQCBib29sIEludHJp bnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAg ICAgICAgICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVu dCgpOwotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9 IGNhbGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZFN0b3JlMzIgPyA0IDog ODsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAg ICAgICBsbHZtOjpTdG9yZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QocnZh bHVlLCBjYXN0UHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0gICAgICAgICAgICAg ICAgc3RvcmVJbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlCi0gICAgICAgICAgICAg ICAgIGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFs dWUsIGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpN YXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgICAg ICBsQ29weU1ldGFkYXRhKHN0b3JlSW5zdCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBs bHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBzdG9yZUluc3QpOwotIAotQEAgLTEw NjYsOSArMTA1Niw3IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkZ1bmN0aW9u KGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW50cmluc2lj c09wdDo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikg ewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0xMjM5 LDkgKzEyMjcsNyBAQCBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5PbkJhc2ljQmxv Y2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQ YXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1 bmNTY29wZSgiSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5h bWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9y IChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1 bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMjk3NCwxNiArMjk2MCwxMCBAQCBzdGF0aWMgYm9vbCBs SW1wcm92ZU1hc2tlZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotIAotICAgICAg ICAgICAgIGx2YWx1ZSA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsdmFsdWUsIHB0clR5cGUsICJs dmFsdWVfdG9fcHRyX3R5cGUiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0 YShsdmFsdWUsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICAgICAgICAgIHN0b3JlID0KLS0gICAgICAgICAgICAgICAgbmV3IGxsdm06OlN0 b3JlSW5zdChydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkg PyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pOwot LSNlbHNlCi0gICAgICAgICAgICAgc3RvcmUgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KAotICAgICAg ICAgICAgICAgICBydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAg ICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkg PyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi0g ICAgICAgICAgICAgICAgICAgICAudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgIH0K LSAgICAgICAgIGlmIChzdG9yZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0 YShzdG9yZSwgY2FsbEluc3QpOwotQEAgLTMwNTksMTEgKzMwMzksNyBAQCBzdGF0aWMgYm9vbCBs SW1wcm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Js b2NrOjppdGVyYQotICAgICAgICAgewotICAgICAgICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUg PSBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJbnN0LT5nZXRUeXBlKCksIDApOwotICAgICAg ICAgICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIHB0clR5cGUsICJwdHJfY2Fz dF9mb3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19M TFZNXzlfMAotLSAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBjYWxs SW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0aW9uICopTlVM TCk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsb2FkID0gbmV3 IGxsdm06OkxvYWRJbnN0KAotICAgICAgICAgICAgICAgICBwdHIsIGNhbGxJbnN0LT5nZXROYW1l KCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2bTo6TWF5 YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVW ZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotQEAgLTMxMjksOSArMzEwNSw3IEBAIGJv b2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotIAotIGJvb2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbXByb3ZlTWVtb3J5 T3BzUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9v bCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDog RikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0z NDI0LDkgKzMzOTgsNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExvYWQobGx2bTo6VmFsdWUgKmJh c2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06OgotICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxsdm06OlZhbHVlICpwdHIgPSBs R0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5ld19iYXNlIiwgaW5zZXJ0QmVm b3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgbGx2bTo6UG9pbnRl clR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICByZXR1cm4gbmV3IGxsdm06Okxv YWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBhbGln biwgaW5zZXJ0QmVmb3JlKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1f MTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICByZXR1 cm4gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxz ZSAvLyBMTFZNIDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1l bnRUeXBlKCksIHB0ciwKLUBAIC00MTM1LDkgKzQxMDcsNyBAQCBib29sIEdhdGhlckNvYWxlc2Nl UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBH YXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNDQ2Nyw5ICs0NDM3LDcgQEAgYm9vbCBS ZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25GdW5j dGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxh Y2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNl bmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFz aWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxv Y2soQkIpOwotQEAgLTQ1NzMsOSArNDU0MSw3IEBAIGJvb2wgSXNDb21waWxlVGltZUNvbnN0YW50 UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJ c0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZG KSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxs dm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSXNDb21waWxlVGltZUNvbnN0YW50UGFzczo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01MjAxLDkgKzUx NjcsNyBAQCBib29sIFBlZXBob2xlUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gCi0gYm9vbCBQZWVwaG9sZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVu Y3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQZWVwaG9sZVBhc3M6OnJ1bk9u RnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkg PSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAg IG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTI5OSw5ICs1MjYzLDcg QEAgYm9vbCBSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBs YWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRp ZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNC bG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2so QkIpOwotQEAgLTUzOTksOSArNTM2MSw3IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhCb29sZWFu U2VsZWN0UGFzczo6Zml4U2VsZWN0KGxsdm06OlNlbGVjdEluc3QgKnNlbCwgbGx2bTo6Ci0gfQot IAotIGJvb2wgRml4Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rp b24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVu T25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFu eSA9IGZhbHNlOwotIAotICAgICByZXR1cm4gbW9kaWZpZWRBbnk7Ci1AQCAtNTk2NCw5ICs1OTI0 LDcgQEAgYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJh c2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9u RnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJHZW5Y R2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYK LSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxv Y2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJC KTsKLUBAIC02MTEzLDkgKzYwNzEsNyBAQCBib29sIFByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFByb21v dGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7 Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06 OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1 bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRB bnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAg ICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjE4MSw5ICs2MTM3 LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpC YXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1 bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVw bGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRp ZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNC bG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2so QkIpOwotQEAgLTYyNzgsOSArNjIzMiw3IEBAIGJvb2wgUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFj ZVVuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5j dGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZh bHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9k aWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MzY5LDkgKzYzMjEsNyBAQCBi b29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0 aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiQ2hlY2tVbnN1 cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTY0NDAsOSArNjM5MCw3IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIE1hbmdsZU9wZW5D TEJ1aWx0aW5zOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3Bl IEZ1bmNTY29wZSgiTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5h bWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9y IChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1 bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjgyOCw5ICs2Nzc2LDcgQEAgYm9vbCBGaXhBZGRyZXNz U3BhY2U6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAgICAgLy8gVHJhbnNm b3JtYXRpb25zIGFyZSBjb3JyZWN0IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbnRlcm5hbC4K LSAgICAgLy8gVGhpcyBpcyBkdWUgdG8gYWRkcmVzcyBzcGFjZSBjYWxjdWxhdGlvbiBhbGdvcml0 aG0uCi0gICAgIC8vIFRPRE86IHByb2JsZW1zIGNhbiBiZSBtZXQgaW4gY2FzZSBvZiBTdGFjayBD YWxscwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEFkZHJlc3NTcGFjZTo6cnVuT25GdW5jdGlv biIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuZ2V0TGlua2FnZSgpID09IGxs dm06Okdsb2JhbFZhbHVlOjpMaW5rYWdlVHlwZXM6OkludGVybmFsTGlua2FnZSkKLSAgICAgICAg IHJldHVybiBmYWxzZTsKLSAKLUBAIC02ODU0LDkgKzY4MDAsNyBAQCBjbGFzcyBEZW1vdGVQSElz IDogcHVibGljIGxsdm06OkZ1bmN0aW9uUGFzcyB7Ci0gY2hhciBEZW1vdGVQSElzOjpJRCA9IDA7 Ci0gCi0gYm9vbCBEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRGVtb3RlUEhJczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0 TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuaXNEZWNsYXJhdGlvbigpIHx8IHNraXBGdW5j dGlvbihGKSkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6 SW5zdHJ1Y3Rpb24gKj4gV29ya0xpc3Q7Ci1kaWZmIC0tZ2l0IGEvc3JjL3R5cGUuY3BwIGIvc3Jj L3R5cGUuY3BwCi1pbmRleCA2ODhhNGU4NzQuLmZhMGNiMDRkYiAxMDA2NDQKLS0tLSBhL3NyYy90 eXBlLmNwcAotKysrIGIvc3JjL3R5cGUuY3BwCi1AQCAtMTgyMiwxNCArMTgyMiwxMCBAQCBsbHZt OjpESVR5cGUgKlN0cnVjdFR5cGU6OkdldERJVHlwZShsbHZtOjpESVNjb3BlICpzY29wZSkgY29u c3QgewotICAgICBsbHZtOjpESUZpbGUgKmRpRmlsZSA9IHBvcy5HZXRESUZpbGUoKTsKLSAgICAg bGx2bTo6RElOYW1lc3BhY2UgKmRpU3BhY2UgPSBwb3MuR2V0RElOYW1lc3BhY2UoKTsKLSAgICAg cmV0dXJuIG0tPmRpQnVpbGRlci0+Y3JlYXRlU3RydWN0VHlwZShkaVNwYWNlLCBHZXRTdHJpbmco KSwgZGlGaWxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv cy5maXJzdF9saW5lLCAgICAgICAgICAvLyBMaW5lIG51bWJlcgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAvLyBTaXpl IGluIGJpdHMKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0QWxpZ25tZW50 KCkgKiA4LCAvLyBBbGlnbm1lbnQgaW4gYml0cwotLSNlbHNlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMTFZNIDEwLjAr Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZpcnN0X2xp bmUsICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBudW1iZXIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMoKSwgICAgICAg ICAgICAvLyBTaXplIGluIGJpdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsYXlvdXQtPmdldEFsaWdubWVudCgpLnZhbHVlKCkgKiA4LCAvLyBBbGlnbm1lbnQg aW4gYml0cwotLSNlbmRpZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkRJTm9kZTo6RmxhZ1plcm8sIC8vIEZsYWdzCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywgICAgICAgICAg ICAgLy8gRmxhZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBlbGVtZW50cyk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcx LmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi1pbmRleCA5ODA2NGQ4NGQuLjRmZWI3 M2RkNyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLSsrKyBiL3Rlc3Rz L2xpdC10ZXN0cy8xNzcxLmlzcGMKLUBAIC01LDcgKzUsNiBAQAotIC8vIFJVTjogJXtpc3BjfSAl cyAtLXRhcmdldD1zc2U0LWkxNng4IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hl Y2stcHJlZml4PUNIRUNLU1NFNF9JMTZYOAotIC8vIFJVTjogJXtpc3BjfSAlcyAtLXRhcmdldD1z c2U0LWk4eDE2IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNI RUNLU1NFNF9JOFgxNgotIAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0gLy8gUkVRVUlSRVM6 IFg4Nl9FTkFCTEVECi0gCi0gLy8gQ0hFQ0tBVlgyX0kzMlg4OiB7e1thLXpdKnhvclthLXpdKn19 ICAleG1tMCwgJXhtbTAsICV4bW0wCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQu aXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLWluZGV4IDc5M2E4ODY2Yy4uMTg5ZWRm NGMzIDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotKysrIGIvdGVzdHMv bGl0LXRlc3RzLzE4NDQuaXNwYwotQEAgLTYsOSArNiw2IEBACi0gCi0gLy8gUkVRVUlSRVM6IFg4 Nl9FTkFCTEVECi0gCi0tLy8gSXQgZG9lc24ndCB3b3JrIGZvciBhbnl0aGluZyBlYXJsaWVyIHRo YW4gMTAuMCwgYnV0IGl0IHdpbGwgbm90IGJlIGZpeGVkLCBzbyBkb24ndCBydW4uCi0tLy8gUkVR VUlSRVM6IExMVk1fMTBfMCsKLS0KLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQ2NCB2YXJf NjsKLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQxNiB2YXJfMTE7Ci0gZXh0ZXJuIHVuaWZv cm0gYm9vbCBhcnJfMjAxIFsxXSBbMTVdIFsyMF07Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRl c3RzLzE5MjYuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLWluZGV4IDcwZjdjYzNj Mi4uNzkyMWM5MWE2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotKysr IGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotQEAgLTIsOCArMiw2IEBACi0gLy8gUlVOOiBj YXQgJVQvMTkyNi5vLmpzb24gXAotIC8vIFJVTjogICB8IEZpbGVDaGVjayAlcwotIAotLS8vIFJF UVVJUkVTOiBMTFZNXzEwXzArCi0tCi0gLy8gQ0hFQ0s6ICJ0cmFjZUV2ZW50cyIKLSAvLyBDSEVD SzogImRldGFpbCIKLSBleHBvcnQgdW5pZm9ybSBpbnQgZm9vKHVuaWZvcm0gaW50IGFbXSwgdW5p Zm9ybSBpbnQgY291bnQpIHsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYu aXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1pbmRleCA1MTZlZmRkNGMuLjRk NjAxODZmNiAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi0rKysg Yi90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwotQEAgLTI0LDYgKzI0LDggQEAKLSAvLzsg UlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0t Y3B1PWljbAotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0 PXNzZTItaTMyeDQgLS1jcHU9aWNlbGFrZS1zZXJ2ZXIKLSAvLzsgUlVOOiAle2lzcGN9ICVzIC1v ICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljeAotKy8vOyBSVU46 ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9 dGlnZXJsYWtlCi0rLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJn ZXQ9c3NlMi1pMzJ4NCAtLWNwdT10Z2wKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLSAK LWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMgYi90ZXN0 cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggZWYwMDAwMGU1Li4wMDAwMDAwMDAKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVz X3g4Nl9sbHZtMTAuaXNwYwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTEgKzAsMCBAQAotLS8vIFRo ZSB0ZXN0IGNoZWNrcyB0aGF0IGNwdSBkZWZpbml0aW9ucyAoaW5jbHVkaW5nIGFsbCBzeW5vbnlt cykgYXJlIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBieSBjb21waWxlci4KLS0KLS0vLzsgUlVOOiAl e2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRp Z2VybGFrZQotLS8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0 PXNzZTItaTMyeDQgLS1jcHU9dGdsCi0tCi0tLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0tLy8g UkVRVUlSRVM6IExMVk1fMTBfMCsKLS0KLS11bmlmb3JtIGludCBpOwotLQotLXZvaWQgZm9vKCkg e30KLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyBiL3Rlc3RzL2xpdC10ZXN0 cy9saXQuY2ZnCi1pbmRleCAxNzAxNjU3OWQuLjA0NWU2OTQzNyAxMDA2NDQKLS0tLSBhL3Rlc3Rz L2xpdC10ZXN0cy9saXQuY2ZnCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotQEAgLTMw LDExICszMCw2IEBAIHByaW50KCJDb25maWc6IikKLSAKLSAjIExMVk0gdmVyc2lvbgotIGxsdm1f dmVyc2lvbiA9IExvb3NlVmVyc2lvbihpc3BjX2xsdm1fdmVyc2lvbl9udW1iZXIpCi0taWYgbGx2 bV92ZXJzaW9uID49IExvb3NlVmVyc2lvbigiMTAuMC4wIik6Ci0tICAgIHByaW50KCJMTFZNXzEw XzArOiBZRVMiKQotLSAgICBjb25maWcuYXZhaWxhYmxlX2ZlYXR1cmVzLmFkZCgiTExWTV8xMF8w KyIpCi0tZWxzZToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IE5PIikKLSAKLSBpZiBsbHZtX3Zl cnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMi4wLjAiKToKLSAgICAgcHJpbnQoIkxMVk1fMTJfMCs6 IFlFUyIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNo IGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDQyM2FmYzllM2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MDQgKzAs MCBAQAotRnJvbSAxODUxZDE4YjIxM2RiYWQxNjk5MzcwNzYxNzZiMmQ1NTA5NzMzYzc2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVuZHJha3VtYXJhbiA8ZGVlcGFr LnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDEyIEphbiAyMDIxIDIyOjE1 OjEyIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeGVzICMxODIxIC0gUmVtb3ZpbmcgTExWTUdl dE5hbWUoKSBhbmQgc3dpdGNoaW5nIHRvCi0gTExWTTo6VHdpbmUuCi0KLS0tLQotIHNyYy9jdHgu Y3BwICAgICAgfCAzMDQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBzcmMvY3R4LmggICAgICAgIHwgIDcyICsrKysrLS0tLS0tCi0gc3JjL2V4cHIuY3Bw ICAgICB8ICAzNiArKystLS0KLSBzcmMvbGx2bXV0aWwuY3BwIHwgIDE3IC0tLQotIHNyYy9sbHZt dXRpbC5oICAgfCAgIDUgLQotIHNyYy9vcHQuY3BwICAgICAgfCAxMDMgKysrKysrKysrLS0tLS0t LQotIDYgZmlsZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDQyYzRlYTA5 ZC4uZGVkNTI0YjcxIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3Bw Ci1AQCAtMTAyMCw4ICsxMDIwLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2Fz ZUxhYmVsKGludCB2YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2 bTo6QmFzaWNCbG9jayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3 YXJlTWFzaygpKSB7Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwg Y2FzZSBpbXBsZW1lbnRhdGlvbgotLSAgICAgICAgc3RkOjpzdHJpbmcgYmJOYW1lID0gYmJDYXNl LT5nZXROYW1lKCkuc3RyKCkgKyAiX2ltcGwiOwotLSAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0 ZUJhc2ljQmxvY2soYmJOYW1lLmNfc3RyKCksIGJiQ2FzZSk7Ci0rICAgICAgICBsbHZtOjpUd2lu ZSBiYk5hbWUgPSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiOwotKyAg ICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNhc2UpOwotICAg ICB9Ci0gI2VuZGlmCi0gCi1AQCAtMTE4NSw3ICsxMTg1LDcgQEAgYm9vbCBGdW5jdGlvbkVtaXRD b250ZXh0Ojppbml0TGFiZWxCQmxvY2tzKEFTVE5vZGUgKm5vZGUsIHZvaWQgKmRhdGEpIHsKLSAg ICAgaWYgKGN0eC0+bGFiZWxNYXAuZmluZChscy0+bmFtZSkgIT0gY3R4LT5sYWJlbE1hcC5lbmQo KSkKLSAgICAgICAgIEVycm9yKGxzLT5wb3MsICJNdWx0aXBsZSBsYWJlbHMgbmFtZWQgXCIlc1wi IGluIGZ1bmN0aW9uLiIsIGxzLT5uYW1lLmNfc3RyKCkpOwotICAgICBlbHNlIHsKLS0gICAgICAg IGxsdm06OkJhc2ljQmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1lLmNf c3RyKCkpOwotKyAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2lj QmxvY2sobHMtPm5hbWUpOwotICAgICAgICAgY3R4LT5sYWJlbE1hcFtscy0+bmFtZV0gPSBiYjsK LSAgICAgfQotICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0xMjk5LDcgKzEyOTksNyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QW55KGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAg IC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMg YXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAg ICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENh bGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbnkiKSk7Ci0rICAg IHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5h bWUoKSkgKyAiX2FueSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMxNSw3ICsxMzE1LDcgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAqbWFzaykgewotICAg ICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJz IGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0g ICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBD YWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfYWxsIikpOwotKyAg ICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXRO YW1lKCkpICsgIl9hbGwiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6Ok5vbmUobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzMxLDcgKzEzMzEsNyBAQCBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewot ICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBp MzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4u Ci0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVy biBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfbm9uZSIpKTsK LSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+ Z2V0TmFtZSgpKSArICJfbm9uZSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUgKnYpIHsKLUBAIC0xMzQ5LDcgKzEzNDksNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUg KnYpIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90 aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNl cm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAg ICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBMTFZNR2V0TmFtZSh2LCAiX21vdm1zayIp KTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgdiwgbGx2bTo6VHdpbmUodi0+Z2V0 TmFtZSgpKSArICJfbW92bXNrIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpNYXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKSB7 Ci1AQCAtMTM2NCwxMSArMTM2NCwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6TWFza3NBbGxFcXVhbChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MgotICNlbHNl Ci0gICAgIGlmIChnLT50YXJnZXQtPmdldEFyY2goKSA9PSBBcmNoOjp3YXNtMzIpIHsKLSAgICAg ICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtLT5tb2R1bGUtPmdldEZ1bmN0aW9uKCJfX3dhc21f Y21wX21za19lcSIpOwotLSAgICAgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2 Mn0sIExMVk1HZXROYW1lKCJ3YXNtX2NtcF9tc2tfZXEiLCB2MSwgdjIpKTsKLSsgICAgICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHt2MSwgdjJ9LCAoKGxsdm06OlR3aW5lKCJ3YXNtX2Nt cF9tc2tfZXFfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+Z2V0TmFtZSgpKTsKLSAg ICAgfQotICAgICBsbHZtOjpWYWx1ZSAqbW0xID0gTGFuZU1hc2sodjEpOwotICAgICBsbHZtOjpW YWx1ZSAqbW0yID0gTGFuZU1hc2sodjIpOwotLSAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0 cnVjdGlvbjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsIExMVk1HZXRO YW1lKCJlcXVhbCIsIHYxLCB2MikpOwotKyAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0cnVj dGlvbjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsCi0rICAgICAgICAg ICAgICAgICAgICgobGx2bTo6VHdpbmUoImVxdWFsXyIpICsgdjEtPmdldE5hbWUoKSkgKyAiXyIp ICsgdjItPmdldE5hbWUoKSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTEzOTIsNyArMTM5Myw3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRTdHJpbmdQdHIoY29uc3Qgc3Rk OjpzdHJpbmcgJnN0cikgewotICAgICByZXR1cm4gbmV3IGxsdm06OkJpdENhc3RJbnN0KGxzdHJQ dHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCAic3RyX3ZvaWRfcHRyIiwgYmJsb2NrKTsK LSB9Ci0gCi0tbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFz aWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlcikg ewotK2xsdm06OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxv Y2soY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVy KSB7Ci0gICAgIGxsdm06OkJhc2ljQmxvY2sgKm5ld0JCID0gbGx2bTo6QmFzaWNCbG9jazo6Q3Jl YXRlKCpnLT5jdHgsIG5hbWUsIGxsdm1GdW5jdGlvbik7Ci0gICAgIGlmIChpbnNlcnRBZnRlcikK LSAgICAgICAgIG5ld0JCLT5tb3ZlQWZ0ZXIoaW5zZXJ0QWZ0ZXIpOwotQEAgLTE0MTYsMTQgKzE0 MTcsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkkxVmVjVG9Cb29sVmVj KGxsdm06OlZhbHVlICpiKSB7Ci0gCi0gICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg aSA8IGF0LT5nZXROdW1FbGVtZW50cygpOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqZWx0ID0gRXh0cmFjdEluc3QoYiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNl eHQgPSBTd2l0Y2hCb29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0b3JhZ2VUeXBl LCBMTFZNR2V0TmFtZShlbHQsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqc2V4dCA9Ci0rICAgICAgICAgICAgICAgIFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5 cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIGxsdm06OlR3aW5lKGVsdC0+Z2V0TmFtZSgpKSAr ICJfdG9fYm9vbHZlYyIpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBzZXh0 LCBpKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0gZWxzZSB7Ci0g ICAgICAgICAvLyBGb3Igbm9uLWFycmF5IHR5cGVzLCBjb252ZXJ0IHRvICdMTFZNVHlwZXM6OkJv b2xWZWN0b3JUeXBlJyBpZgotICAgICAgICAgLy8gbmVjZXNzYXJ5LgotLSAgICAgICAgcmV0dXJu IFN3aXRjaEJvb2xTaXplKGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIExMVk1HZXROYW1l KGIsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6ZShiLCBM TFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShiLT5nZXROYW1lKCkpICsgIl90 b19ib29sdmVjIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY1LDcgQEAgc3RhdGlj IGludCBsQXJyYXlWZWN0b3JXaWR0aChsbHZtOjpUeXBlICp0KSB7Ci0gfQotIAotIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MCA9PSBOVUxMIHx8IHYx ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50 ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNTczLDcgKzE1NzUsNyBAQCBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1 Y3Rpb246OkJpbmFyeU9wcyBpbgotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdjAtPmdldFR5cGUo KTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBp ZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSA/IG5hbWUgOiAi IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSwgYmJsb2NrKTsKLSAgICAgICAg IEFkZERlYnVnUG9zKGJvcCk7Ci0gICAgICAgICByZXR1cm4gYm9wOwotICAgICB9IGVsc2Ugewot QEAgLTE1OTEsNyArMTU5Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0gICAgIH0KLSB9 Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06 OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTYw MywxNCArMTYwNSwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3Bl cmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIGxsdm06OlR5cGUg KnR5cGUgPSB2LT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0b3JX aWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqYmluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5h bWUgPyBuYW1lIDogIm5vdCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq Ymluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gIm5vdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3Mo Ymluc3QpOwotICAgICAgICAgcmV0dXJuIGJpbnN0OwotICAgICB9IGVsc2UgewotICAgICAgICAg bGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh0eXBlKTsKLSAgICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVl ICpvcCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZSA/IG5hbWUgOiAi bm90IiwgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlTm90KGEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gIm5vdCIg OiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgICAgIEFkZERlYnVnUG9zKG9wKTsKLSAgICAgICAg ICAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotQEAgLTE2Mzgs NyArMTY0MCw3IEBAIHN0YXRpYyBsbHZtOjpUeXBlICpsR2V0TWF0Y2hpbmdCb29sVmVjdG9yVHlw ZShsbHZtOjpUeXBlICp0eXBlKSB7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpD bXBJbnN0OjpQcmVkaWNhdGUgcHJlZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwgY29uc3QgY2hhciAq bmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewot ICAgICBpZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1A QCAtMTY0OCw3ICsxNjUwLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNt cEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAgICAgbGx2bTo6 VHlwZSAqdHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlW ZWN0b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqY2kgPSBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwgcHJlZCwg djAsIHYxLCBuYW1lID8gbmFtZSA6ICJjbXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmNpID0KLSsgICAgICAgICAgICBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwg cHJlZCwgdjAsIHYxLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJjbXAiIDogbmFtZSwgYmJs b2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGNpKTsKLSAgICAgICAgIHJldHVybiBjaTsKLSAg ICAgfSBlbHNlIHsKLUBAIC0xNjU3LDE0ICsxNjYwLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBs bHZtCi0gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5U2l6ZTsgKytpKSB7Ci0gICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmEgPSBFeHRyYWN0SW5zdCh2MCwgaSk7Ci0gICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKmIgPSBFeHRyYWN0SW5zdCh2MSwgaSk7Ci0tICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKm9wID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lKTsKLSsgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUuaXNU cml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lKTsKLSAgICAgICAgICAgICByZXQgPSBJbnNl cnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAg ICAgfQotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlm b3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotQEAgLTE3MDQsMjEgKzE3MDcsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNo YXIgKm4KLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5h bWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9iaXRjYXN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpCaXRDYXN0 SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxs dm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9iaXRjYXN0IiA6IG5hbWUsIGJibG9jayk7 Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBA IC0xNzI4LDIzICsxNzI5LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQ dHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICAv LyBuby1vcCBmb3IgdmFyeWluZyBwb2ludGVyczsgdGhleSdyZSBhbHJlYWR5IHZlY3RvcnMgb2Yg aW50cwotICAgICAgICAgcmV0dXJuIHZhbHVlOwotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQot LSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0cjJpbnQiKTsKLSAgICAgbGx2 bTo6VHlwZSAqdHlwZSA9IExMVk1UeXBlczo6UG9pbnRlckludFR5cGU7Ci0tICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWx1ZSwgdHlwZSwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRy VG9JbnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJs b2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAg ICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAi X3B0cjJpbnQiKTsKLS0KLSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlw ZSgpOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewot ICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVyCi1AQCAtMTc1MiwyNyArMTc0OSwyNiBAQCBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAgICAgICAgICAgIC8vIGFscmVhZHkgdGhlIHJpZ2h0IHR5 cGUtLWRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBlbHNlIGlmIChm cm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5C aXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1l KTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3 aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAgICAgICAgZWxz ZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBlLT5nZXRTY2Fs YXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7Ci0tICAgICAg ICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAg IHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAg ICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxs dm06OlB0clRvSW50SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QoCi0rICAgICAgICB2 YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVl LT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVn UG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxM KSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkK LS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9pbnQycHRyIik7Ci0tCi0gICAg IGxsdm06OlR5cGUgKmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYgKGxsdm06 OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZhcnlpbmcg cG9pbnRlcgotQEAgLTE3ODAsOTUgKzE3NzYsODcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnQK LSAgICAgICAgICAgICAvLyBkb25lCi0gICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAg ICAgZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA+IHRvVHlwZS0+Z2V0 U2NhbGFyU2l6ZUluQml0cygpKQotLSAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUs IHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9U eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lKTsK LSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBmcm9t VHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpIDwgdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRz KCkpOwotLSAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsK LSsgICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIg OiBuYW1lKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSwgYmJsb2Nr KTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0 KAotKyAgICAgICAgdmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZt OjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lLCBiYmxvY2spOwot ICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06 Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpUcnVuY0luc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5z dHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlm ICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYg KG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl90cnVu YyIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJh eSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1 cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zdCA9IG5ldyBsbHZtOjpUcnVuY0luc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0r ICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5zdCgKLSsgICAg ICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZh bHVlLT5nZXROYW1lKCkpICsgIl90cnVuYyIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9u ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9w cyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5h bWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNo b3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBC aXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFs aXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0 ZShvcCwgdmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgIG9wLCB2YWx1ZSwgdHlw ZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgp KSArICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAg ICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRD b250ZXh0OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAg ICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICBy ZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAg bmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ug c2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcu IEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9u YWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3Jl YXRlRlBDYXN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENhc3QoCi0rICAgICAgICB2YWx1 ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0 TmFtZSgpKSArICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0 KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlv bkVtaXRDb250ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfc2V4dCIpOwotLQotICAgICAvLyBUT0RPOiB3 ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUu Zy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rp b25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpTRXh0SW5z dCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c3QgPSBuZXcgbGx2bTo6U0V4dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc2V4dCIg OiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGlu c3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6WkV4dEluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAg ICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodmFsdWUsICJfemV4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkg aGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwg YnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCh2YWx1ZSwgdHlwZSwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6WkV4 dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBs bHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfemV4dCIgOiBuYW1lLCBiYmxvY2spOwot ICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotQEAgLTE5MTMs MTQgKzE5MDEsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmFwcGx5VmFy eWluZ0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmEKLSAgICAgICAgIHNjYWxlID0g U21lYXJVbmlmb3JtKHNjYWxlKTsKLSAgICAgICAgIEFzc2VydChpbmRleCAhPSBOVUxMKTsKLSAg ICAgICAgIC8vIG9mZnNldCA9IGluZGV4ICogc2NhbGUKLS0gICAgICAgIG9mZnNldCA9IEJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRleCwgTExWTUdldE5h bWUoIm11bCIsIHNjYWxlLCBpbmRleCkpOwotKyAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3BlcmF0 b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgc2NhbGUtPmdldE5hbWUo KSkgKyAiXyIpICsgaW5kZXgtPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAKLSAgICAgLy8gRm9yIDY0 LWJpdCB0YXJnZXRzLCBpZiB3ZSd2ZSBiZWVuIGRvaW5nIG91ciBvZmZzZXQgY2FsY3VsYXRpb25z IGluCi0gICAgIC8vIDMyIGJpdHMsIHdlIHN0aWxsIGhhdmUgdG8gY29udmVydCB0byBhIDY0LWJp dCB2YWx1ZSBiZWZvcmUgd2UKLSAgICAgLy8gYWN0dWFsbHkgYWRkIHRoZSBvZmZzZXQgdG8gdGhl IHBvaW50ZXIuCi0gICAgIGlmIChnLT50YXJnZXQtPmlzMzJCaXQoKSA9PSBmYWxzZSAmJiBnLT5v cHQuZm9yY2UzMkJpdEFkZHJlc3NpbmcgPT0gdHJ1ZSkKLS0gICAgICAgIG9mZnNldCA9IFNFeHRJ bnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQ2NFZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9mZnNl dCwgIl90b182NCIpKTsKLSsgICAgICAgIG9mZnNldCA9IFNFeHRJbnN0KG9mZnNldCwgTExWTVR5 cGVzOjpJbnQ2NFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJf dG9fNjQiKTsKLSAKLSAgICAgLy8gU21lYXIgb3V0IHRoZSBwb2ludGVyIHRvIGJlIHZhcnlpbmc7 IGVpdGhlciB0aGUgYmFzZSBwb2ludGVyIG9yIHRoZQotICAgICAvLyBpbmRleCBtdXN0IGJlIHZh cnlpbmcgZm9yIHRoaXMgbWV0aG9kIHRvIGJlIGNhbGxlZC4KLUBAIC0xOTI5LDcgKzE5MTgsNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5nR0VQKGxsdm06 OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICBsbHZtOjpWYWx1ZSAqdmFyeWluZ1B0ciA9 IGJhc2VJc1VuaWZvcm0gPyBTbWVhclVuaWZvcm0oYmFzZVB0cikgOiBiYXNlUHRyOwotIAotICAg ICAvLyBuZXdQdHIgPSBwdHIgKyBvZmZzZXQKLS0gICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxs dm06Okluc3RydWN0aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgTExWTUdldE5hbWUoYmFz ZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0 cnVjdGlvbjo6QWRkLCB2YXJ5aW5nUHRyLCBvZmZzZXQsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdl dE5hbWUoKSkgKyAiX29mZnNldCIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6 Ok1hdGNoSW50ZWdlclR5cGVzKGxsdm06OlZhbHVlICoqdjAsIGxsdm06OlZhbHVlICoqdjEpIHsK LUBAIC0yMDA2LDEzICsxOTk1LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpNYWtlU2xpY2VQb2ludGVyKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlCi0gICAgIGxs dm06OlN0cnVjdFR5cGUgKnN0ID0gbGx2bTo6U3RydWN0VHlwZTo6Z2V0KCpnLT5jdHgsIGVsdFR5 cGVzKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChz dCk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBwdHIsIDAsIExMVk1HZXROYW1lKHJldCwg Il9zbGljZV9wdHIiKSk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIExM Vk1HZXROYW1lKHJldCwgIl9zbGljZV9vZmZzZXQiKSk7Ci0rICAgIHJldCA9IEluc2VydEluc3Qo cmV0LCBwdHIsIDAsIGxsdm06OlR3aW5lKHJldC0+Z2V0TmFtZSgpKSArICJfc2xpY2VfcHRyIik7 Ci0rICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIGxsdm06OlR3aW5lKHJldC0+ Z2V0TmFtZSgpKSArICJfc2xpY2Vfb2Zmc2V0Iik7Ci0gICAgIHJldHVybiByZXQ7Ci0gfQotIAot IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZt OjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4LCBjb25zdCBUeXBlICpwdHJSZWZU eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChi YXNlUHRyID09IE5VTEwgfHwgaW5kZXggPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAg LTIwNjUsOCArMjA1NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRF bGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1 bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAg ICAgICAgIGxsdm06OlZhbHVlICppbmRbMV0gPSB7aW5kZXh9OwotICAgICAgICAgbGx2bTo6QXJy YXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJmluZFswXSwgJmluZFsxXSk7Ci0tICAgICAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVu dFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUg PyBuYW1lIDogImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQ dHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIg OiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICBy ZXR1cm4gaW5zdDsKLSAgICAgfSBlbHNlCi1AQCAtMjA3NCw3ICsyMDYzLDcgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpi YXNlUHRyLCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5k ZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlICpwdHJSZWZUeXBlLCBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIGlmIChiYXNlUHRyID09IE5VTEwgfHwgaW5kZXgwID09IE5VTEwgfHwgaW5kZXgxID09 IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4g MCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMTE0LDggKzIxMDMsOCBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBlbWl0IHRoZSBy ZWd1bGFyIExMVk0gR0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqaW5kaWNl c1syXSA9IHtpbmRleDAsIGluZGV4MX07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpW YWx1ZSAqPiBhcnJheVJlZigmaW5kaWNlc1swXSwgJmluZGljZXNbMl0pOwotLSAgICAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJ bnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFt ZSA6ICJnZXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBs bHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBh cnJheVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJnZXAiIDogbmFt ZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAgICAgcmV0dXJu IGluc3Q7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMjEzOCw3ICsyMTI3LDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNl UHRyLCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFk ZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQgZWxlbWVudE51bSwg Y29uc3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAq KnJlc3VsdFB0clR5cGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgY29uc3QgUG9pbnRlclR5cGUg KipyZXN1bHRQdHJUeXBlKSB7Ci0gICAgIGlmIChyZXN1bHRQdHJUeXBlICE9IE5VTEwpCi0gICAg ICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyUmVmVHlwZSAhPSBOVUxMKTsKLSAKLUBAIC0y MTk1LDggKzIxODQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxl bWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgLy8gSWYg dGhlIHBvaW50ZXIgaXMgdW5pZm9ybSwgd2UgY2FuIHVzZSB0aGUgcmVndWxhciBMTFZNIEdFUC4K LSAgICAgICAgIGxsdm06OlZhbHVlICpvZmZzZXRzWzJdID0ge0xMVk1JbnQzMigwKSwgTExWTUlu dDMyKGVsZW1lbnROdW0pfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+ IGFycmF5UmVmKCZvZmZzZXRzWzBdLCAmb2Zmc2V0c1syXSk7Ci0tICAgICAgICByZXN1bHRQdHIg PQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFz ZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJzdHJ1Y3Rfb2Zmc2V0Iiwg YmJsb2NrKTsKLSsgICAgICAgIHJlc3VsdFB0ciA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpD cmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/ICJzdHJ1Y3Rfb2Zmc2V0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIH0gZWxzZSB7Ci0g ICAgICAgICAvLyBPdGhlcndpc2UgZG8gdGhlIG1hdGggdG8gZmluZCB0aGUgb2Zmc2V0IGFuZCBh ZGQgaXQgdG8gdGhlIGdpdmVuCi0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXJzCi1AQCAtMjIz Nyw3ICsyMjI2LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1l bnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAgIHJldHVybiBy ZXN1bHRQdHI7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0 Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3Qg Y2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hC b29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKCh2YWx1ZSA9PSBOVUxMKSB8fCAodG9UeXBlID09 IE5VTEwpKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+ IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI0OCwyMCArMjIzNywxOCBAQCBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlCi0gICAgIGxsdm06OlZhbHVlICpuZXdCb29sID0gdmFsdWU7Ci0g ICAgIGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHMoZnJv bVR5cGUpID4KLSAgICAgICAgIGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6 ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAg ICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0tICAgICAgICBu ZXdCb29sID0gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgbmV3Qm9v bCA9Ci0rICAgICAgICAgICAgVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zd2l0Y2hCb29s IikgOiBuYW1lKTsKLSAgICAgfSBlbHNlIGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+ Z2V0VHlwZVNpemVJbkJpdHMoZnJvbVR5cGUpIDwKLSAgICAgICAgICAgICAgICBnLT50YXJnZXQt PmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewotLSAgICAgICAg aWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUs ICJfc3dpdGNoQm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFNFeHRJbnN0KHZhbHVlLCB0b1R5 cGUsIG5hbWUpOwotKyAgICAgICAgbmV3Qm9vbCA9Ci0rICAgICAgICAgICAgU0V4dEluc3QodmFs dWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUt PmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6IG5hbWUpOwotICAgICB9Ci0gCi0gICAgIHJl dHVybiBuZXdCb29sOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgY29uc3QgY2hhciAq bmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjcwLDEz ICsyMjU3LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gICAgIGxsdm06OlBvaW50ZXJU eXBlICpwdCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUo KSk7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdCAhPSBOVUxMKTsKLSAKLS0gICAgaWYg KG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJfbG9hZCIp OwotLQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsbHZt OjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0UG9pbnRlckVsZW1l bnRUeXBlKCksIHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3Qg PQotKyAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5cGUo KSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0 eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJs b2NrKTsKLSAjZWxzZQotLSAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2Fk SW5zdChwdHIsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsg ICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJsb2NrKTsK LSAjZW5kaWYKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7Ci1AQCAt MjMwNyw4ICsyMjk0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJ bnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxGaW5hbFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6 VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKipwdHJUeXBlKSB7Ci0gICAgIEFzc2VydChD YXN0VHlwZTxQb2ludGVyVHlwZT4oKnB0clR5cGUpICE9IE5VTEwpOwotIAotLSAgICBsbHZtOjpW YWx1ZSAqc2xpY2VQdHIgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMCwgTExWTUdldE5hbWUocHRy LCAiX3B0ciIpKTsKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0 SW5zdChwdHIsIDEsIExMVk1HZXROYW1lKHB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxsdm06OlZh bHVlICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBsbHZtOjpUd2luZShwdHIt PmdldE5hbWUoKSkgKyAiX3B0ciIpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBj dHgtPkV4dHJhY3RJbnN0KHB0ciwgMSwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9v ZmZzZXQiKTsKLSAKLSAgICAgLy8gc2xpY2VQdHIgc2hvdWxkIGJlIGEgcG9pbnRlciB0byBhbiBz b2Etd2lkdGggd2lkZSBhcnJheSBvZiB0aGUKLSAgICAgLy8gZmluYWwgYXRvbWljL2VudW0vcG9p bnRlciB0eXBlCi1AQCAtMjMyNywxNCArMjMxNCwxNCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxG aW5hbFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKnB0 cgotICAgICAgICAgc2xpY2VQdHIgPSBjdHgtPkJpdENhc3RJbnN0KHNsaWNlUHRyLCAoKnB0clR5 cGUpLT5MTFZNVHlwZShnLT5jdHgpKTsKLSAKLSAgICAgLy8gQW5kIGZpbmFsbHkgaW5kZXggYmFz ZWQgb24gdGhlIHNsaWNlIG9mZnNldAotLSAgICByZXR1cm4gY3R4LT5HZXRFbGVtZW50UHRySW5z dChzbGljZVB0ciwgc2xpY2VPZmZzZXQsICpwdHJUeXBlLCBMTFZNR2V0TmFtZShzbGljZVB0ciwg Il9maW5hbF9nZXAiKSk7Ci0rICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNsaWNl UHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIGxsdm06OlR3aW5lKHNsaWNlUHRyLT5nZXROYW1l KCkpICsgIl9maW5hbF9nZXAiKTsKLSB9Ci0gCi0gLyoqIFV0aWxpdHkgcm91dGluZSB0aGF0IGxv YWRzIGZyb20gYSB1bmlmb3JtIHBvaW50ZXIgdG8gc29hPD4gZGF0YSwKLSAgICAgcmV0dXJuaW5n IGEgcmVndWxhciB1bmlmb3JtIChub24tU09BIHJlc3VsdCkuCi0gICovCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRy LCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBjb25zdCBUeXBlICp1bmlm VHlwZSA9IHB0clR5cGUtPkdldEJhc2VUeXBlKCktPkdldEFzVW5pZm9ybVR5cGUoKTsKLSAKLSAg ICAgY29uc3QgQ29sbGVjdGlvblR5cGUgKmN0ID0gQ2FzdFR5cGU8Q29sbGVjdGlvblR5cGU+KHB0 clR5cGUtPkdldEJhc2VUeXBlKCkpOwotQEAgLTIzNjMsNyArMjM1MCw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0 ciwgbGx2bTo6VmFsCi0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpM b2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAq cHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSwgYm9vbCBvbmVfZWxlbSkgewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgYm9vbCBvbmVf ZWxlbSkgewotICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0y MzcxLDkgKzIzNTgsNiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZElu c3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwgJiYgbWFzayAhPSBOVUxMKTsKLSAKLS0g ICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJf bG9hZCIpOwotLQotICAgICBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZTsKLSAgICAgY29uc3Qg VHlwZSAqZWxUeXBlOwotICAgICBpZiAoQ2FzdFR5cGU8UmVmZXJlbmNlVHlwZT4ocHRyUmVmVHlw ZSkgIT0gTlVMTCkgewotQEAgLTIzOTMsNyArMjM3Nyw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFz aywKLSAKLSAgICAgaWYgKHB0clR5cGUtPklzVW5pZm9ybVR5cGUoKSkgewotICAgICAgICAgaWYg KHB0clR5cGUtPklzU2xpY2UoKSkgewotLSAgICAgICAgICAgIHJldHVybiBsb2FkVW5pZm9ybUZy b21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gbG9h ZFVuaWZvcm1Gcm9tU09BKHB0ciwgbWFzaywgcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5l KHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgICAgIC8vIEZJWE1FOiBzYW1lIGlzc3VlIGFzIGFib3ZlIGxvYWQgaW5zdCByZWdh cmRpbmcgYWxpZ25tZW50Li4uCi0gICAgICAgICAgICAgLy8KLUBAIC0yNDA1LDExICsyMzkwLDE1 IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1 ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAgICAgICBjb25zdCBBdG9taWNUeXBl ICphdG9taWNUeXBlID0gQ2FzdFR5cGU8QXRvbWljVHlwZT4ocHRyVHlwZS0+R2V0QmFzZVR5cGUo KSk7Ci0gCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV8xMF8wCi0tICAgICAg ICAgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1l LCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0rICAgICAgICAgICAgbGx2bTo6 TG9hZEluc3QgKmluc3QgPQotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRy LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkg KyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwot ICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlICpwdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0 PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7Ci0gICAgICAgICAgICAgbGx2bTo6 TG9hZEluc3QgKmluc3QgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRy X3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2 b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0 KHB0cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdp bmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotICNl bmRpZgotIAotICAgICAgICAgICAgIGlmIChhdG9taWNUeXBlICE9IE5VTEwgJiYgYXRvbWljVHlw ZS0+SXNWYXJ5aW5nVHlwZSgpKSB7Ci1AQCAtMjQzMyw3ICsyNDIyLDggQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZh bHVlICptYXNrLAotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIHNob3Vs ZCBoYXZlIGEgdmFyeWluZyBwdHIgYW5kIGl0J3MgdGltZSBmb3IgYQotICAgICAgICAgLy8gZ2F0 aGVyLgotLSAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1bHQgPSBnYXRoZXIocHRyLCBw dHJUeXBlLCBHZXRGdWxsTWFzaygpLCBuYW1lKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpnYXRo ZXJfcmVzdWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2soKSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0 eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0g ICAgICAgICBpZiAoIW9uZV9lbGVtKQotICAgICAgICAgICAgIHJldHVybiBnYXRoZXJfcmVzdWx0 OwotIAotQEAgLTI0NTMsMTkgKzI0NDMsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAg ICAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUg aTMycyBhcyBmYXIgYXMKLSAgICAgICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJu ZWQuLi4KLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0t ICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ss IExMVk1HZXROYW1lKG1hc2ssICJfbW92bXNrIikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmlu dF9tYXNrID0gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXRO YW1lKCkpICsgIl9tb3Ztc2siKTsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFN5bWJvbCAqPiBsejsK LSAgICAgICAgIG0tPnN5bWJvbFRhYmxlLT5Mb29rdXBGdW5jdGlvbigiX19jb3VudF90cmFpbGlu Z196ZXJvc19pNjQiLCAmbHopOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZseiA9IGx6WzBd LT5mdW5jdGlvbjsKLS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENhbGxJbnN0KGZs eiwgTlVMTCwgaW50X21hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfY2x6IikpOwotLSAgICAgICAg bGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZShnYXRo ZXJfcmVzdWx0LCBlbGVtX2lkeCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoZ2F0aGVyX3Jlc3VsdCwgIl91 bWFza2VkX2VsZW0iKSwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9 IENhbGxJbnN0KGZseiwgTlVMTCwgaW50X21hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX2NseiIpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0 RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICBnYXRoZXJfcmVzdWx0LCBlbGVtX2lk eCwgbGx2bTo6VHdpbmUoZ2F0aGVyX3Jlc3VsdC0+Z2V0TmFtZSgpKSArICJfdW1hc2tlZF9lbGVt IiwgYmJsb2NrKTsKLSAgICAgICAgIHJldHVybiBlbGVtOwotICAgICB9Ci0gfQotIAotIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29u c3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHBvaW50ZXIgaWYgd2UgZ2V0 IGhlcmUuLi4KLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clR5cGUtPklzVmFyeWluZ1R5 cGUoKSk7Ci0gCi1AQCAtMjYwMiw3ICsyNTkyLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0 OjphZGRHU01ldGFkYXRhKGxsdm06OlZhbHVlICp2LCBTb3VyY2VQb3MgcG9zKSB7Ci0gICAgIGlu c3QtPnNldE1ldGFkYXRhKCJsYXN0X2NvbHVtbiIsIG1kKTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNv bnN0IGNoYXIgKm5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGludCBhbGlnbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9jaykgewotICAgICBp ZiAobGx2bVR5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTI2MTUsMTIgKzI2 MDYsMTIgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2 bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGxsdm06Okluc3RydWN0 aW9uICpyZXRJbnN0ID0gYWxsb2NhQmxvY2stPmdldFRlcm1pbmF0b3IoKTsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCByZXRJbnN0KTsKLSAgICAgICAgIHVuc2lnbmVkIEFTID0gbGx2 bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFsbG9jYUFkZHJTcGFj ZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywg bmFtZSA/IG5hbWUgOiAiIiwgcmV0SW5zdCk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFs bG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lLCByZXRJbnN0KTsKLSAgICAgfSBlbHNlIHsKLSAg ICAgICAgIC8vIFVubGVzcyB0aGUgY2FsbGVyIG92ZXJyb2RlIHRoZSBkZWZhdWx0IGFuZCB3YW50 cyBpdCBpbiB0aGUKLSAgICAgICAgIC8vIGN1cnJlbnQgYmFzaWMgYmxvY2sKLSAgICAgICAgIHVu c2lnbmVkIEFTID0gbGx2bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdl dEFsbG9jYUFkZHJTcGFjZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0 KGxsdm1UeXBlLCBBUywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGluc3Qg PSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIGJibG9jayk7Ci0gICAg IH0KLSAKLSAgICAgLy8gSWYgbm8gYWxpZ25tZW50IHdhcyBzcGVjaWZpZWQgYnV0IHdlIGhhdmUg YW4gYXJyYXkgb2YgYSB1bmlmb3JtCi1AQCAtMjYzOSw3ICsyNjMwLDggQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNv bnN0IGNoYXIgKm4KLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNo YXIgKm5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChwdHJU eXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMDc1LDY2ICszMDY3LDU5IEBA IGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcmFuY2hJbnN0KGxsdm06 OkJhc2ljQmxvY2sgKnRydWVCbG9jaywKLSAgICAgcmV0dXJuIGI7Ci0gfQotIAotLWxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50 IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAg ICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsK LS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfZXh0cmFjdF8lZCIsIGVsdCk7 Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqZWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3Rv clR5cGU+KHYtPmdldFR5cGUoKSkpCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RFbGVtZW50 SW5zdDo6Q3JlYXRlKHYsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAg ZWkgPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBM TFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgo bGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfZXh0cmFjdF8iKSArIGxsdm06OlR3aW5lKGVs dCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAgICAgZWkgPSBsbHZtOjpFeHRy YWN0VmFsdWVJbnN0OjpDcmVhdGUodiwgZWx0LCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgZWkg PSBsbHZtOjpFeHRyYWN0VmFsdWVJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgZWx0LCBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJf ZXh0cmFjdF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwKLSsgICAgICAgICAgICBiYmxv Y2spOwotICAgICBBZGREZWJ1Z1BvcyhlaSk7Ci0gICAgIHJldHVybiBlaTsKLSB9Ci0gCi0tbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6VmFsdWUgKnYs IGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwg bGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKHYgPT0gTlVMTCB8fCBlbHRWYWwgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVm WzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfaW5zZXJ0XyVkIiwg ZWx0KTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0tCi0g ICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2 bTo6VmVjdG9yVHlwZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0 RWxlbWVudEluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxv Y2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAg ICAgICAgICAgIHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksCi0rICAgICAgICAgICAgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2Vy dF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAg ICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIGVsdCwg bmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0OjpDcmVh dGUoCi0rICAgICAgICAgICAgdiwgZWx0VmFsLCBlbHQsCi0rICAgICAgICAgICAgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2VydF8i KSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3Mo aWkpOwotICAgICByZXR1cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2 bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6U2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAq djIsIGxsdm06OlZhbHVlICptYXNrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodjEgPT0g TlVMTCB8fCB2MiA9PSBOVUxMIHx8IG1hc2sgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwot ICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMy XTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfc2h1ZmZsZSIpOwotLSAg ICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYxLCBidWYpOwotLSAgICB9Ci0tCi0tICAgIGxsdm06 Okluc3RydWN0aW9uICppaSA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIG1h c2ssIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IG5ldyBsbHZt OjpTaHVmZmxlVmVjdG9ySW5zdCgKLSsgICAgICAgIHYxLCB2MiwgbWFzaywgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodjEtPmdldE5hbWUoKSkgKyAiX3NodWZmbGUiKSA6 IG5hbWUsIGJibG9jayk7Ci0gCi0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0dXJuIGlp OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFs dWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2 bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2ID09IE5VTEwgfHwgdmVjVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci1AQCAtMzE0OCwxMiArMzEzMyw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0g ICAgIEFzc2VydCh0eSAmJiB0eS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKSA9PSB2LT5nZXRUeXBl KCkpOwotICNlbmRpZgotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFy IGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX2Jyb2FkY2Fz dCIpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAg ICAgLy8gR2VuZXJhdGUgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKLSAgICAgLy8gICAlbmFtZV9p bml0LmkgPSBpbnNlcnRlbGVtZW50IDw0IHggaTMyPiB1bmRlZiwgaTMyICV2YWwsIGkzMiAwCi0g ICAgIC8vICAgJW5hbWUuaSA9IHNodWZmbGV2ZWN0b3IgPDQgeCBpMzI+ICVuYW1lX2luaXQuaSwg PDQgeCBpMzI+IHVuZGVmLAotQEAgLTMxNjMsNyArMzE0Miw3IEBAIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlw ZSAqdmVjCi0gICAgIGxsdm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQo dmVjVHlwZSk7Ci0gCi0gICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6VHdpbmUgdHcg PSBsbHZtOjpUd2luZShuYW1lKSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotKyAgICBsbHZtOjpU d2luZSB0dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5h bWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotICAg ICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigp LmNfc3RyKCkpOwotIAotICAgICAvLyBTaHVmZmxlVmVjdG9yCi1AQCAtMzE3OSwyOCArMzE1OCwy NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2 bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVk IGludD4odHktPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZSksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpU eXBlOjpnZXRJbnQzMlR5KCpnLT5jdHgpKSk7Ci0gI2VuZGlmCi0tICAgIGxsdm06OlZhbHVlICpy ZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywgbmFtZSk7Ci0rICAgIGxs dm06OlZhbHVlICpyZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSk7Ci0g Ci0gICAgIHJldHVybiByZXQ7Ci0gfQotIAotLWxsdm06OlBISU5vZGUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBjaGFyICpu YW1lKSB7Ci0tICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJTm9kZTo6Q3JlYXRlKHR5 cGUsIGNvdW50LCBuYW1lID8gbmFtZSA6ICJwaGkiLCBiYmxvY2spOwotK2xsdm06OlBISU5vZGUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50 LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotKyAgICBsbHZtOjpQSElOb2RlICpwbiA9IGxs dm06OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAicGhpIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKHBuKTsKLSAgICAgcmV0 dXJuIHBuOwotIH0KLSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 U2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZh bHVlICp2YWwxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodGVzdCA9PSBOVUxMIHx8IHZhbDAgPT0gTlVMTCB8fCB2YWwxID09IE5VTEwpIHsKLSAgICAg ICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICBy ZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAg bmFtZSA9IExMVk1HZXROYW1lKHRlc3QsICJfc2VsZWN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbGx2bTo6U2VsZWN0SW5zdDo6Q3JlYXRlKHRlc3QsIHZhbDAsIHZhbDEs IG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6U2Vs ZWN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgdGVzdCwgdmFsMCwgdmFsMSwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodGVzdC0+Z2V0TmFtZSgpKSArICJfc2VsZWN0Iikg OiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGlu c3Q7Ci0gfQotQEAgLTMyMjYsNyArMzIwNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbENhbGxl ZUFyZ0NvdW50KGxsdm06OlZhbHVlICpjYWxsZWUsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuCi0g fQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpW YWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFs dWUgKj4gJmFyZ3MsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gJmFy Z3MsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChmdW5jID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMjU4LDkgKzMyMzYsOSBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0 aW9uVHlwZQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAg ICAgbGx2bTo6UG9pbnRlclR5cGUgKmZ1bmNfcHRyX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpQb2ludGVyVHlwZT4oZnVuYy0+Z2V0VHlwZSgpKTsKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9u VHlwZSAqZnVuY190eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6RnVuY3Rpb25UeXBlPihmdW5j X3B0cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSk7Ci0tICAgICAgICBsbHZtOjpDYWxs SW5zdCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlwZSwgZnVuYywg YXJnVmFscywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJ bnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBh cmdWYWxzLCBuYW1lLCBiYmxvY2spOwotICNlbHNlCi0tICAgICAgICBsbHZtOjpDYWxsSW5zdCAq Y2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUgPyBu YW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBs bHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9jayk7Ci0gI2Vu ZGlmCi0gCi0gICAgICAgICAvLyBXZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiBw b2ludGVyIGluIHdoaWNoIGNhc2UgdGhpcyB3aWxsIG5vdCBiZSBhICdsbHZtOjpGdW5jdGlvbicu Ci1AQCAtMzQ2NCwxNCArMzQ0MiwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZQotIH0KLSAK LSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUg KmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gYXJn czsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnKTsKLSAgICAgcmV0dXJuIENhbGxJbnN0KGZ1bmMs IGZ1bmNUeXBlLCBhcmdzLCBuYW1lKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUg KmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnMCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUg KmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06 OlZhbHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZzApOwotICAgICBhcmdzLnB1 c2hfYmFjayhhcmcxKTsKLWRpZmYgLS1naXQgYS9zcmMvY3R4LmggYi9zcmMvY3R4LmgKLWluZGV4 IDZlNWFkNzRiYS4uNDhiM2JiODI2IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5oCi0rKysgYi9zcmMv Y3R4LmgKLUBAIC0zMDIsNyArMzAyLDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0g ICAgIGxsdm06OlZhbHVlICpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpzdHJpbmcgJnN0cik7Ci0g Ci0gICAgIC8qKiBDcmVhdGUgYSBuZXcgYmFzaWMgYmxvY2sgd2l0aCBnaXZlbiBuYW1lICovCi0t ICAgIGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hhciAqbmFtZSwg bGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSsgICAgbGx2bTo6QmFzaWNC bG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFz aWNCbG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEdpdmVuIGEgdmVjdG9y IHdpdGggZWxlbWVudCB0eXBlIGkxLCByZXR1cm4gYSB2ZWN0b3Igb2YgdHlwZQotICAgICAgICAg TExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZS4gIFRoaXMgbWV0aG9kIGhhbmRsZXMgdGhlIGNvbnZl cnNpb24gZm9yCi1AQCAtMzgwLDMzICszODAsMzMgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4 dCB7Ci0gICAgICAgICB0aGlzIGFsc28gaGFuZGxlcyBhcHBseWluZyB0aGUgZ2l2ZW4gb3BlcmF0 aW9uIHRvIHRoZSB2ZWN0b3IKLSAgICAgICAgIGVsZW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1 ZSAqQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbnN0LCBsbHZt OjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1p dCB0aGUgIm5vdCIgb3BlcmF0b3IuICBMaWtlIEJpbmFyeU9wZXJhdG9yKCksIHRoaXMgYWxzbyBo YW5kbGVzCi0gICAgICAgICBhIFZlY3RvclR5cGUtYmFzZWQgb3BlcmFuZC4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IGEgY29tcGFyaXNv biBpbnN0cnVjdGlvbi4gIElmIHRoZSBvcGVyYW5kcyBhcmUgVmVjdG9yVHlwZXMsCi0gICAgICAg ICB0aGVuIGEgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGJvb2xlYW4gVmVjdG9yVHlwZSBp cwotICAgICAgICAgcmV0dXJuZWQuICovCi0gICAgIGxsdm06OlZhbHVlICpDbXBJbnN0KGxsdm06 Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJbnN0OjpQcmVkaWNhdGUgcHJl ZCwgbGx2bTo6VmFsdWUgKnYwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqdjEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAg ICAgLyoqIEdpdmVuIGEgc2NhbGFyIHZhbHVlLCByZXR1cm4gYSB2ZWN0b3Igb2YgdGhlIHNhbWUg dHlwZSAob3IgYW4KLSAgICAgICAgIGFycmF5LCBmb3IgcG9pbnRlciB0eXBlcykuICovCi0tICAg IGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFs dWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6 VmFsdWUgKkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0 KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZt OjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqSW50VG9QdHJJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFt ZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsg ICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAK LS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq Q2FzdEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZQQ2FzdElu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpTRXh0SW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqWkV4dEluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEdpdmVuIHR3byBpbnRlZ2VyLXR5cGVkIHZhbHVlcyAo YnV0IHBvc3NpYmx5IG9uZSB2ZWN0b3IgYW5kIHRoZQotICAgICAgICAgb3RoZXIgbm90LCBhbmQg b3Igb2YgcG9zc2libHktZGlmZmVyZW50IGJpdC13aWR0aHMpLCB1cGRhdGUgdGhlaXIKLUBAIC00 MjYsOSArNDI2LDkgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBwb2lu dGVycy4gIFRoZSB1bmRlcmx5aW5nIHR5cGUgb2YgdGhlIGJhc2UgcG9pbnRlciBtdXN0IGJlIHBy b3ZpZGVkCi0gICAgICAgICB2aWEgdGhlIHB0clR5cGUgcGFyYW1ldGVyICovCi0gICAgIGxsdm06 OlZhbHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFs dWUgKmluZGV4LCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxs dm06OlZhbHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6 VmFsdWUgKmluZGV4MCwgbGx2bTo6VmFsdWUgKmluZGV4MSwgY29uc3QgVHlwZSAqcHRyVHlwZSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBO VUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBw b2ludGVyIHRoYXQgcmVwcmVzZW50cyBvZmZzZXR0aW5nIHRoZQotICAgICAgICAgZ2l2ZW4gYmFz ZSBwb2ludGVyIHRvIHBvaW50IGF0IHRoZSBnaXZlbiBlbGVtZW50IG51bWJlciBvZiB0aGUKLUBA IC00MzYsMjYgKzQzNiwyNiBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAg IHBvaW50ZXIgbXVzdCBiZSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgdHlwZS4gIFRoZSBwdHJU eXBlIGdpdmVzCi0gICAgICAgICB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlciwgdGhvdWdoIGl0IG1h eSBiZSBOVUxMIGlmIHRoZSBiYXNlIHBvaW50ZXIKLSAgICAgICAgIGlzIHVuaWZvcm0uICovCi0t ICAgIGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBp bnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5V TEwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50ZXJUeXBl ICoqcmVzdWx0UHRyVHlwZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWRkRWxlbWVudE9m ZnNldChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0 clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSA9IE5VTEwp OwotIAotICAgICAvKiogQm9vbCBpcyBzdG9yZWQgYXMgaTggYW5kIDxXSURUSCB4IGk4PiBidXQg cmVwcmVzZW50ZWQgaW4gSVIgYXMgaTEgYW5kCi0gICAgICAqIDxXSURUSCB4IE1BU0s+LiBUaGlz IGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIG1hdGNoIGJvb2wgc2l6ZSBhdCBzdG9yYWdlCi0gICAg ICAqIGludGVyZmFjZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAg IC8qKiBMb2FkIGZyb20gdGhlIG1lbW9yeSBsb2NhdGlvbihzKSBnaXZlbiBieSBsdmFsdWUsIHVz aW5nIHRoZSBnaXZlbgotICAgICAgICAgbWFzay4gIFRoZSBsdmFsdWUgbWF5IGJlIHZhcnlpbmcs IGluIHdoaWNoIGNhc2UgdGhpcyBjb3JyZXNwb25kcyB0bwotICAgICAgICAgYSBnYXRoZXIgZnJv bSB0aGUgbXVsdGlwbGUgbWVtb3J5IGxvY2F0aW9ucyBnaXZlbiBieSB0aGUgYXJyYXkgb2YKLSAg ICAgICAgIHBvaW50ZXIgdmFsdWVzIGdpdmVuIGJ5IHRoZSBsdmFsdWUuICBJZiB0aGUgbHZhbHVl IGlzIG5vdCB2YXJ5aW5nLAotICAgICAgICAgdGhlbiBib3RoIHRoZSBtYXNrIHBvaW50ZXIgYW5k IHRoZSB0eXBlIHBvaW50ZXIgbWF5IGJlIE5VTEwuICovCi0tICAgIGxsdm06OlZhbHVlICpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRy VHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsCi0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgb25lX2VsZW0gPSBmYWxzZSk7Ci0gCi0gICAgIC8qIExvYWQgZnJvbSBtZW1vcnkg bG9jYXRpb24ocykgZ2l2ZW4uCi0gICAgICAqICd0eXBlJyBuZWVkcyB0byBiZSBwcm92aWRlZCB3 aGVuIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBGb3IgZXhhbXBsZSwK LSAgICAgICogJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQgYXMgJ2k4Jy4K LSAgICAgICogT3RoZXJ3aXNlIGxlYXZlIHRoaXMgYXMgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFs dWUgKkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8g YWxsb2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYg YSBub24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBA IC00NjMsNyArNDYzLDggQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBp bnN0cnVjdGlvbiBpcyBhZGRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIGluIHRoZSBl bnRyeQotICAgICAgICAgYmFzaWMgYmxvY2s7IGlmIGl0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUg Y3VycmVudCBiYXNpYyBibG9jaywgdGhlbgotICAgICAgICAgdGhlIGF0RW50cnlCbG9jayBwYXJh bWV0ZXIgc2hvdWxkIGJlIGZhbHNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChs bHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9 IDAsIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJ bnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBp bnQgYWxpZ24gPSAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlC bG9jayA9IHRydWUpOwotIAotICAgICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3RydWN0aW9uIHRv IGFsbG9jYXRlIHN0YWNrIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAgdHlwZS4gIElm IGEgbm9uLXplcm8gYWxpZ25tZW50IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBpcyBhbHNvCi1A QCAtNDc0LDcgKzQ3NSw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAg VGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBwcmVmZXJyZWQgd2hlbiBwb3NzaWJsZS4gSXQgaXMgbmVl ZGVkIHdoZW4KLSAgICAgICAgIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBl LiBGb3IgZXhhbXBsZSwKLSAgICAgICAgICd1bmZvcm0gYm9vbCcgaXMgJ2kxJyBpbiBJUiBidXQg c3RvcmVkIGFzICdpOCcuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5 cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29s IGF0RW50cnlCbG9jayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChjb25z dCBUeXBlICpwdHJUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBpbnQgYWxpZ24g PSAwLCBib29sIGF0RW50cnlCbG9jayA9IHRydWUpOwotIAotICAgICAvKiogU3RhbmRhcmQgc3Rv cmUgaW5zdHJ1Y3Rpb247IGZvciB0aGlzIHZhcmlhbnQsIHRoZSBsdmFsdWUgbXVzdCBiZSBhCi0g ICAgICAgICBzaW5nbGUgcG9pbnRlciwgbm90IGEgdmFyeWluZyBsdmFsdWUuCi1AQCAtNTAyLDM5 ICs1MDMsNDEgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIC8qKiBUaGlzIGNv bnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdCBpZiB0 aGUKLSAgICAgICAgIGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFu IGxsdm06OkV4dHJhY3RWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5zdChsbHZtOjpWYWx1 ZSAqdiwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8q KiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06Okluc2VydEVsZW1lbnRJ bnN0IGlmIHRoZQotICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBh bmQgdG8gYW4gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0Ci0gICAgICAgICBvdGhlcndpc2UuICovCi0t ICAgIGxsdm06OlZhbHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAq ZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZh bHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQg ZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgY29u dmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QuICovCi0t ICAgIGxsdm06OlZhbHVlICpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVl ICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg bGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0g ICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCB0byBnZW5lcmF0ZSBicm9hZGNhc3QgcGF0 dGVybi4gSXQgdGFrZXMgYSB2YWx1ZQotICAgICAgICAgYW5kIGEgdmVjdG9yIHR5cGUuIFR5cGUg b2YgdGhlIHZhbHVlIG11c3QgbWF0Y2ggZWxlbWVudCB0eXBlIG9mIHRoZQotICAgICAgICAgdmVj dG9yLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYs IGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2 bTo6VmFsdWUgKkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNU eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6UEhJTm9k ZSAqUGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUg KnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwgY29uc3QgY2hhciAq bmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpQSElOb2RlICpQaGlOb2RlKGxsdm06OlR5cGUgKnR5 cGUsIGludCBjb3VudCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06 Okluc3RydWN0aW9uICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAq dmFsMCwgbGx2bTo6VmFsdWUgKnZhbDEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdHMgSVIg dG8gZG8gYSBmdW5jdGlvbiBjYWxsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4gIElmIHRoZQot ICAgICAgICAgZnVuY3Rpb24gdHlwZSBpcyBhIHZhcnlpbmcgZnVuY3Rpb24gcG9pbnRlciB0eXBl LCBpdHMgZnVsbCB0eXBlCi0gICAgICAgICBtdXN0IGJlIHByb3ZpZGVkIGluIGZ1bmNUeXBlLiAg ZnVuY1R5cGUgY2FuIGJlIE5VTEwgaWYgZnVuYyBpcyBhCi0gICAgICAgICB1bmlmb3JtIGZ1bmN0 aW9uIHBvaW50ZXIuICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAq ZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2 bTo6VmFsdWUgKj4gJmFyZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRo b2QgdGhhdCBpc3N1ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9u IHRoYXQgdGFrZXMganVzdCBhIHNpbmdsZSBhcmd1bWVudC4gKi8KLS0gICAgbGx2bTo6VmFsdWUg KkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBl LCBsbHZtOjpWYWx1ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06 OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpm dW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZl bmllbmNlIG1ldGhvZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAg ICAgZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1 ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5 cGUsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogTGF1 bmNoIGFuIGFzeW5jaHJvbm91cyB0YXNrIHRvIHJ1biB0aGUgZ2l2ZW4gZnVuY3Rpb24sIHBhc3Np bmcgaXQKLSAgICAgICAgIGhlIGdpdmVuIGFyZ3VtZW50IHZhbHVlcy4gKi8KLUBAIC03NTYsOSAr NzU5LDEwIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICB2b2lkIG1hc2tlZFN0 b3JlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqcHRy VHlwZSwgbGx2bTo6VmFsdWUgKm1hc2spOwotICAgICB2b2lkIHN0b3JlVW5pZm9ybVRvU09BKGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNv bnN0IFR5cGUgKnZhbHVlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQ b2ludGVyVHlwZSAqcHRyVHlwZSk7Ci0tICAgIGxsdm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21T T0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBl ICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlm b3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9p bnRlclR5cGUgKnB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpnYXRo ZXIobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZh bHVlICptYXNrLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmdhdGhlcihs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICBsbHZtOjpWYWx1 ZSAqYWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBl ICpwdHJUeXBlKTsKLSB9OwotZGlmZiAtLWdpdCBhL3NyYy9leHByLmNwcCBiL3NyYy9leHByLmNw cAotaW5kZXggODBjYzMwMjBhLi42ZDM4ZDE4ODkgMTAwNjQ0Ci0tLS0gYS9zcmMvZXhwci5jcHAK LSsrKyBiL3NyYy9leHByLmNwcAotQEAgLTEwMjEsMTEgKzEwMjEsMTEgQEAgc3RhdGljIGxsdm06 OlZhbHVlICpsRW1pdE5lZ2F0ZShFeHByICphcmcsIFNvdXJjZVBvcyBwb3MsIEZ1bmN0aW9uRW1p dENvbnRleHQgKmMKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAgICBpZiAodHlwZS0+ SXNGbG9hdFR5cGUoKSkgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsbHZtOjpDb25z dGFudEZQOjpnZXRaZXJvVmFsdWVGb3JOZWdhdGlvbih0eXBlLT5MTFZNVHlwZShnLT5jdHgpKTsK LS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpG U3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdhdGUiKSk7Ci0rICAg ICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6RlN1Yiwg emVybywgYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIp OwotICAgICB9IGVsc2UgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsTExWTUNvbnN0 YW50VmFsdWUodHlwZSwgZy0+Y3R4LCAwLik7Ci0gICAgICAgICBBc3NlcnRQb3MocG9zLCB0eXBl LT5Jc0ludFR5cGUoKSk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZt OjpJbnN0cnVjdGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9u ZWdhdGUiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0 cnVjdGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgp KSArICJfbmVnYXRlIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTA0NywxMSArMTA0NywxMSBAQCBs bHZtOjpWYWx1ZSAqVW5hcnlFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgp IGNvbnN0IHsKLSAgICAgICAgIHJldHVybiBsRW1pdE5lZ2F0ZShleHByLCBwb3MsIGN0eCk7Ci0g ICAgIGNhc2UgTG9naWNhbE5vdDogewotICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4 cHItPkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdW YWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9sb2dpY2Fsbm90IikpOwotKyAgICAgICAgcmV0dXJu IGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkg KyAiX2xvZ2ljYWxub3QiKTsKLSAgICAgfQotICAgICBjYXNlIEJpdE5vdDogewotICAgICAgICAg bGx2bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4cHItPkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1 cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9iaXRub3Qi KSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5l KGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfYml0bm90Iik7Ci0gICAgIH0KLSAgICAgZGVmYXVsdDoK LSAgICAgICAgIEZBVEFMKCJsb2dpYyBlcnJvciIpOwotQEAgLTE1MTgsNyArMTUxOCw4IEBAIHN0 YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlBcml0aChCaW5hcnlFeHByOjpPcCBvcCwgbGx2 bTo6VmFsdWUgKnZhbHVlMCwgbGx2Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAg ICB9Ci0gCi0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAs IHZhbHVlMSwgTExWTUdldE5hbWUob3BOYW1lLCB2YWx1ZTAsIHZhbHVlMSkpOwotKyAgICAgICAg cmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChsbHZtOjpUd2luZShvcE5hbWUpICsgIl8i KSArIHZhbHVlMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2YWx1ZTEtPmdldE5hbWUoKSk7Ci0gICAg IH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY0LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1p dEJpbmFyeUNtcChCaW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6VmFsdWUgKmUwVmFsLCBsbHZtOjoK LSAgICAgfQotIAotICAgICBsbHZtOjpWYWx1ZSAqY21wID0gY3R4LT5DbXBJbnN0KGlzRmxvYXRP cCA/IGxsdm06Okluc3RydWN0aW9uOjpGQ21wIDogbGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIHBy ZWQsIGUwVmFsLCBlMVZhbCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TFZNR2V0TmFtZShvcE5hbWUsIGUwVmFsLCBlMVZhbCkpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsgZTBWYWwtPmdl dE5hbWUoKSkgKyAiXyIpICsgZTFWYWwtPmdldE5hbWUoKSk7Ci0gICAgIC8vIFRoaXMgaXMgYSBs aXR0bGUgdWdseTogQ21wSW5zdCByZXR1cm5zIGkxIHZhbHVlcywgYnV0IHdlIHVzZSB2ZWN0b3Jz Ci0gICAgIC8vIG9mIGkzMnMgZm9yIHZhcnlpbmcgYm9vbCB2YWx1ZXM7IHR5cGUgY29udmVydCB0 aGUgcmVzdWx0IGhlcmUgaWYKLSAgICAgLy8gbmVlZGVkLgotQEAgLTQxNzcsNyArNDE3OCw3IEBA IHN0YXRpYyBsbHZtOjpWYWx1ZSAqbENvbnZlcnRUb1NsaWNlUG9pbnRlcihGdW5jdGlvbkVtaXRD b250ZXh0ICpjdHgsIGxsdm06OlZhbHVlCi0gICAgIC8vIG9mZnNldHMKLSAgICAgbGx2bTo6VmFs dWUgKnJlc3VsdCA9IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUoc2xpY2VTdHJ1Y3RUeXBl KTsKLSAgICAgLy8gQW5kIHJlcGxhY2UgdGhlIHBvaW50ZXIgaW4gdGhlIHN0cnVjdCB3aXRoIHRo ZSBnaXZlbiBwb2ludGVyCi0tICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBwdHIs IDAsIExMVk1HZXROYW1lKHB0ciwgIl9zbGljZSIpKTsKLSsgICAgcmV0dXJuIGN0eC0+SW5zZXJ0 SW5zdChyZXN1bHQsIHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9zbGlj ZSIpOwotIH0KLSAKLSAvKiogSWYgdGhlIGdpdmVuIGFycmF5IGluZGV4IGlzIGEgY29tcGlsZSB0 aW1lIGNvbnN0YW50LCBjaGVjayB0byBzZWUgaWYgaXQKLUBAIC00MjU4LDggKzQyNTksOCBAQCBs bHZtOjpWYWx1ZSAqSW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4 KSBjb25zdCB7Ci0gICAgICAgICAvLyBDb252ZXJ0IHRvIGEgc2xpY2UgcG9pbnRlciBpZiB3ZSdy ZSBpbmRleGluZyBpbnRvIFNPQSBkYXRhCi0gICAgICAgICBiYXNlUHRyVmFsdWUgPSBsQ29udmVy dFB0clRvU2xpY2VJZk5lZWRlZChjdHgsIGJhc2VQdHJWYWx1ZSwgJmJhc2VFeHByVHlwZSk7Ci0g Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgICAgICBjdHgtPkdldEVsZW1l bnRQdHJJbnN0KGJhc2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLCBMTFZNR2V0 TmFtZShiYXNlUHRyVmFsdWUsICJfb2Zmc2V0IikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKnB0 ciA9IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNl RXhwclR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpUd2luZShiYXNlUHRyVmFsdWUtPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwot ICAgICAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwgcHRyLCBHZXRM VmFsdWVUeXBlKCkpOwotICAgICB9Ci0gCi1AQCAtNDI5MCw4ICs0MjkxLDggQEAgbGx2bTo6VmFs dWUgKkluZGV4RXhwcjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3Qg ewotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gCi0gICAgIC8vIEFuZCBkbyB0aGUgYWN0 dWFsIGluZGV4aW5nIGNhbGN1bGF0aW9uLi4KLS0gICAgbGx2bTo6VmFsdWUgKnB0ciA9Ci0tICAg ICAgICBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigwKSwgaW5kZXhW YWx1ZSwgYmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0IikpOwotKyAg ICBsbHZtOjpWYWx1ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyLCBMTFZN SW50MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkp ICsgIl9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0 eCwgcHRyLCBHZXRMVmFsdWVUeXBlKCkpOwotIH0KLSAKLUBAIC00Nzg4LDE1ICs0Nzg5LDE0IEBA IGxsdm06OlZhbHVlICpWZWN0b3JNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250 ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRlbnRp Zmllci5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgIGNoYXIgaWRTdHJbMl0gPSB7aWRlbnRp ZmllcltpXSwgJ1wwJ307Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1lbnRQdHIgPQot LSAgICAgICAgICAgICAgICBjdHgtPkFkZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwgaW5kaWNlc1tp XSwgYmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsIGlkU3RyKSk7Ci0rICAgICAgICAg ICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBiYXNlUHRy VHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArIGlkU3RyKTsKLSAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFZhbHVlID0gY3R4LT5Mb2FkSW5zdChlbGVtZW50UHRy LCBlbGVtZW50TWFzaywgZWxlbWVudFB0clR5cGUpOwotIAotLSAgICAgICAgICAgIGNvbnN0IGNo YXIgKnJlc3VsdE5hbWUgPSBMTFZNR2V0TmFtZShyZXN1bHRQdHIsIGlkU3RyKTsKLS0gICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNldChyZXN1bHRQdHIs IGksIE5VTEwsIHJlc3VsdE5hbWUpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpwdG1wID0g Y3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVMTCwgbGx2bTo6VHdpbmUocmVz dWx0UHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGN0eC0+U3RvcmVJbnN0 KGVsZW1lbnRWYWx1ZSwgcHRtcCwgZWxlbWVudFB0clR5cGUsIGV4cHItPkdldFR5cGUoKS0+SXNV bmlmb3JtVHlwZSgpKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBjdHgtPkxvYWRJ bnN0KHJlc3VsdFB0ciwgbWVtYmVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9zd2l6emxl IikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVzdWx0UHRyLCBtZW1iZXJUeXBl LCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9zd2l6emxlIik7Ci0gICAgIH0K LSB9Ci0gCi1AQCAtNDkzMiw3ICs0OTMyLDcgQEAgbGx2bTo6VmFsdWUgKk1lbWJlckV4cHI6Okdl dFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotIAotICAgICBjdHgtPlNl dERlYnVnUG9zKHBvcyk7Ci0gICAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9IHN0ZDo6c3RyaW5nKCJf IikgKyBpZGVudGlmaWVyOwotLSAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ss IGx2YWx1ZVR5cGUsIExMVk1HZXROYW1lKGx2YWx1ZSwgc3VmZml4LmNfc3RyKCkpKTsKLSsgICAg cmV0dXJuIGN0eC0+TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBsbHZtOjpUd2lu ZShsdmFsdWUtPmdldE5hbWUoKSkgKyBzdWZmaXgpOwotIH0KLSAKLSBjb25zdCBUeXBlICpNZW1i ZXJFeHByOjpHZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gTlVMTDsgfQotQEAgLTY1MDIsNyArNjUw Miw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbFR5cGVDb252QXRvbWljKEZ1bmN0aW9uRW1pdENv bnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKmV4cHJWCi0gICAgICAgICAgICAgICAgIC8vIGRvZXMg Zm9yIGV2ZXJ5b25lIGVsc2UuLi4KLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGNhc3QpOwotICAg ICAgICAgICAgICAgICBjYXN0ID0gY3R4LT5Td2l0Y2hCb29sU2l6ZShjYXN0LCBMTFZNVHlwZXM6 OkJvb2xWZWN0b3JUeXBlLT5nZXRFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjYXN0LCAidG9faV9ib29sIikpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShj YXN0LT5nZXROYW1lKCkpICsgInRvX2lfYm9vbCIpOwotICAgICAgICAgICAgIH0KLSAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gZnJvbVR5cGUtPklzVmFyeWluZ1R5cGUoKSkKLUBA IC04MjQ2LDcgKzgyNDYsNyBAQCBsbHZtOjpWYWx1ZSAqTmV3RXhwcjo6R2V0VmFsdWUoRnVuY3Rp b25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICAvLyBwb2ludGVyIG9mIHRoZSBy ZXR1cm4gdHlwZSBhbmQgdG8gcnVuIHRoZSBjb2RlIGZvciBpbml0aWFsaXplcnMsCi0gICAgICAg ICAvLyBpZiBwcmVzZW50LgotICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IHJldFR5cGUt PkxMVk1UeXBlKGctPmN0eCk7Ci0tICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3Qo cHRyVmFsdWUsIHB0clR5cGUsIExMVk1HZXROYW1lKHB0clZhbHVlLCAiX2Nhc3RfcHRyIikpOwot KyAgICAgICAgcHRyVmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJUeXBlLCBs bHZtOjpUd2luZShwdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdF9wdHIiKTsKLSAKLSAgICAg ICAgIGlmIChpbml0RXhwciAhPSBOVUxMKQotICAgICAgICAgICAgIEluaXRTeW1ib2wocHRyVmFs dWUsIGFsbG9jVHlwZSwgaW5pdEV4cHIsIGN0eCwgcG9zKTsKLWRpZmYgLS1naXQgYS9zcmMvbGx2 bXV0aWwuY3BwIGIvc3JjL2xsdm11dGlsLmNwcAotaW5kZXggOTcwMTc1ZGJmLi5kMGJlY2I5ZjUg MTAwNjQ0Ci0tLS0gYS9zcmMvbGx2bXV0aWwuY3BwCi0rKysgYi9zcmMvbGx2bXV0aWwuY3BwCi1A QCAtMTYwNSwyMyArMTYwNSw2IEBAIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZsZVZlY3RvcnMobGx2 bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1ZltdCi0gICAgIHJldHVy biBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCB2ZWMsICJzaHVmZmxlIiwgaW5z ZXJ0QmVmb3JlKTsKLSB9Ci0gCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUobGx2bTo6VmFsdWUg KnYsIGNvbnN0IGNoYXIgKnMpIHsKLS0gICAgaWYgKHYgPT0gTlVMTCkKLS0gICAgICAgIHJldHVy biBzOwotLSAgICBzdGQ6OnN0cmluZyByZXQgPSBzdGQ6OnN0cmluZyh2LT5nZXROYW1lKCkpOwot LSAgICByZXQgKz0gczsKLS0gICAgcmV0dXJuIHN0cmR1cChyZXQuY19zdHIoKSk7Ci0tfQotLQot LWNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEs IGxsdm06OlZhbHVlICp2MikgewotLSAgICBzdGQ6OnN0cmluZyByID0gb3A7Ci0tICAgIHIgKz0g Il8iOwotLSAgICByICs9IHYxLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHIgKz0gIl8iOwotLSAg ICByICs9IHYyLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHJldHVybiBzdHJkdXAoci5jX3N0cigp KTsKLS19Ci0tCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gYm9vbCBsSXNTVk1Mb2FkKGxs dm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChpbnN0KTsKLWRpZmYgLS1naXQg YS9zcmMvbGx2bXV0aWwuaCBiL3NyYy9sbHZtdXRpbC5oCi1pbmRleCA0MmNjZTRkODMuLjA3ZDA4 OWJiNCAxMDA2NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5oCi0rKysgYi9zcmMvbGx2bXV0aWwuaAot QEAgLTMyOCwxMSArMzI4LDYgQEAgZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNQ29uY2F0VmVjdG9y cyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6SW4KLSBleHRlcm4gbGx2 bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVl ICp2MiwgaW50MzJfdCBzaHVmW10sIGludCBzaHVmU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlKTsKLSAK LS0vKiogVXRpbGl0eSByb3V0aW5lcyB0byBjb25jYXQgc3RyaW5ncyB3aXRoIHRoZSBuYW1lcyBv ZiBleGlzdGluZyB2YWx1ZXMgdG8KLS0gICAgY3JlYXRlIG1lYW5pbmdmdWwgbmV3IG5hbWVzIGZv ciBpbnN0cnVjdGlvbiB2YWx1ZXMuCi0tKi8KLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdldE5h bWUobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKik7Ci0tZXh0ZXJuIGNvbnN0IGNoYXIgKkxM Vk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2 Mik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gZW51bSBBZGRyZXNzU3BhY2UgeyBMb2Nh bCwgR2xvYmFsLCBFeHRlcm5hbCB9OwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3Jj L29wdC5jcHAKLWluZGV4IDViMWFjN2I2My4uOWQ2Y2FlMDU4IDEwMDY0NAotLS0tIGEvc3JjL29w dC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29s IGxHZXRTb3VyY2VQb3NGcm9tTWV0YWRhdGEoY29uc3QgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qs IFNvdXJjZVBvcyAqCi0gICAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1zdGF0aWMgbGx2bTo6SW5z dHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFy ZzAsIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lLAotK3N0YXRpYyBsbHZtOjpJ bnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAq YXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRC ZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzJdID0ge2FyZzAsIGFyZzF9 OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1sw XSwgJmFyZ3NbMl0pOwotQEAgLTI2NSwyMSArMjY1LDIyIEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVj dGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwg bGx2Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1 bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06 OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06 OlZhbHVlICphcmdzWzNdID0ge2FyZzAsIGFyZzEsIGFyZzJ9OwotICAgICBsbHZtOjpBcnJheVJl ZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbM10pOwotICAgICBy ZXR1cm4gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5z ZXJ0QmVmb3JlKTsKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3Qo bGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJn MSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9u ICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRC ZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzRdID0ge2FyZzAsIGFyZzEs IGFyZzIsIGFyZzN9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdB cnJheSgmYXJnc1swXSwgJmFyZ3NbNF0pOwotICAgICByZXR1cm4gbGx2bTo6Q2FsbEluc3Q6OkNy ZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0QmVmb3JlKTsKLSB9Ci0gCi0gc3Rh dGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxs dm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxs dm06OlZhbHVlICphcmc0LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6 VmFsdWUgKmFyZ3NbNV0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNH07Ci0gICAgIGxs dm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s1 XSk7Ci1AQCAtMjg3LDcgKzI4OCw3IEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJ bnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2Ci0gfQotIAot IHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5j LCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcy LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmcz LCBsbHZtOjpWYWx1ZSAqYXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGNoYXIgKm5hbWUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMs IGxsdm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNl0g PSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNX07Ci0gICAgIGxsdm06OkFycmF5 UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s2XSk7Ci1AQCAt OTkxLDIzICs5OTIsMjQgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2 bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqcmV0dXJu VHlwZSA9IGNhbGxJbnN0LT5nZXRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgIEFzc2VydChsbHZt Ojppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0dXJuVHlwZSkpOwotICAgICAgICAgICAgICAgICAv LyBjYXN0IHRoZSBpOCAqIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCi0tICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgw KSwgIl9jYXN0Iik7Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0gbmV3 IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpQb2ludGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLCBuYW1lLCBjYWxsSW5zdCk7Ci0rICAg ICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAgICAgICAgICAgICAgICAg IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgbGx2bTo6 UG9pbnRlclR5cGU6OmdldChyZXR1cm5UeXBlLCAwKSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgw KS0+Z2V0TmFtZSgpKSArICJfY2FzdCIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbENv cHlNZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGludCBhbGln bjsKLSAgICAgICAgICAgICAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpCi0gICAg ICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25t ZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWdu ID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6 IDg7Ci0tICAgICAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKSwgIl9sb2FkIik7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExW TV8xMF8wCi0tICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5l dyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8s Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICop TlVMTCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0r ICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbGx2bTo6VHdp bmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGls ZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwp OwotICNlbHNlCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9 IG5ldyBsbHZtOjpMb2FkSW5zdCgKLS0gICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0 PGxsdm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVu dFR5cGUoKSwgY2FzdFB0ciwgbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpLCAobGx2 bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9j YXN0PGxsdm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxl bWVudFR5cGUoKSwgY2FzdFB0ciwKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNh bGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwgZmFsc2UgLyog bm90IHZvbGF0aWxlICovLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihh bGlnbikudmFsdWVPck9uZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYK LSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShsb2FkSW5zdCwgY2FsbEluc3QpOwotICAg ICAgICAgICAgICAgICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBsb2FkSW5z dCk7Ci1AQCAtMTAyOCw5ICsxMDMwLDkgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgLy8gYWxsIGxh bmVzIHN0b3JpbmcsIHNvIHJlcGxhY2Ugd2l0aCBhIHJlZ3VsYXIgc3RvcmUKLSAgICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKnJ2YWx1ZSA9IGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDIpOwot ICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpzdG9yZVR5cGUgPSBydmFsdWUtPmdldFR5cGUo KTsKLS0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJ bnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX3B0cmNhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFy Z09wZXJhbmQoMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwg bmFtZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9 Ci0rICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdl dEFyZ09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxs SW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfcHRyY2FzdCIsIGNhbGxJbnN0 KTsKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0g Ci0gICAgICAgICAgICAgICAgIGludCBhbGlnbjsKLUBAIC0xMzM5LDggKzEzNDEsOCBAQCBzdGF0 aWMgbGx2bTo6VmFsdWUgKmxHZXRCYXNlUG9pbnRlcihsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6SW5z dHJ1Y3Rpb24gKmluc2VydEJlZgotICAgICAgICAgaWYgKHQgPT0gTlVMTCkgewotICAgICAgICAg ICAgIHJldHVybiBOVUxMOwotICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICByZXR1cm4g bGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5nZXRUeXBlKCkt PmdldFNjYWxhclR5cGUoKSwgTExWTUdldE5hbWUodCwgIl9jYXN0IiksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAg ICByZXR1cm4gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5n ZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpUd2luZSh0LT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0 QmVmb3JlKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotQEAgLTE1ODMsMTMgKzE1ODUsMTMgQEAg c3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZt OjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgaWYgKGNvID09IE5VTEwpCi0gICAgICAg ICAgICAgKmNvbnN0T2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAq Y29uc3RPZmZzZXQgPQotLSAgICAgICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNh c3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFtZShjbywgIl9j YXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6 Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28sIGNhc3QtPmdldFR5cGUoKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OlR3aW5lKGNvLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg IGlmICh2byA9PSBOVUxMKQotICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IE5VTEw7Ci0g ICAgICAgICBlbHNlCi0tICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0KLS0gICAgICAgICAg ICAgICAgbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgdm8sIGNhc3Qt PmdldFR5cGUoKSwgTExWTUdldE5hbWUodm8sICJfY2FzdCIpLCBpbnNlcnRCZWZvcmUpOwotKyAg ICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+ Z2V0T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2by0+Z2V0TmFtZSgp KSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAK LUBAIC0xNjA4LDE2ICsxNjEwLDE4IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZz ZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAg ICAgICBlbHNlIGlmIChjMSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3Jl Z2F0ZVplcm8+KGMxKSkKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gYzA7Ci0gICAg ICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgTExWTUdl dE5hbWUoImFkZCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAg ICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgKChsbHZtOjpUd2lu ZSgiYWRkXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAg ICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgaWYgKHYwID09 IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjApKQotICAg ICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MTsKLSAgICAgICAgICAgICBlbHNlIGlm ICh2MSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KHYx KSkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdjA7Ci0gICAgICAgICAgICAg ZWxzZQotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVy YXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZN R2V0TmFtZSgiYWRkIiwgdjAsIHYxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAg KnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwgKChsbHZtOjpUd2lu ZSgiYWRkXyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSsgICAg ICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgcmV0dXJuOwotICAg ICAgICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgpID09IGxsdm06Okluc3RydWN0aW9uOjpT aGwpIHsKLSAgICAgICAgICAgICBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KG9wMCwgJmMwLCAmdjAs IGluc2VydEJlZm9yZSk7Ci1AQCAtMTYzMywxMCArMTYzNywxMiBAQCBzdGF0aWMgdm9pZCBsRXh0 cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RP ZmZzZXQsCi0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IHZlYzsKLSAgICAgICAgICAg ICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwgTExWTUdldE5hbWUoInNobCIsIGMwLCBj MSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0 ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2 MCwgYzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTExWTUdldE5hbWUoInNobCIsIHYwLCBjMSksIGluc2VydEJlZm9yZSk7 Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCBjMCwg YzEsICgobGx2bTo6VHdpbmUoInNobF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5n ZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAg ICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAot KyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLCAoKGxs dm06OlR3aW5lKCJzaGxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgp LAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgp ID09IGxsdm06Okluc3RydWN0aW9uOjpNdWwpIHsKLUBAIC0xNjQ4LDI1ICsxNjU0LDMwIEBAIHN0 YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6 VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGZpcnN0 IHRlcm0gaXMgYSBjb25zdGFudCBhbmQgdGhlIGxhc3QgdGhyZWUgYXJlCi0gICAgICAgICAgICAg Ly8gdmFyaWFibGUuCi0gICAgICAgICAgICAgaWYgKGMwICE9IE5VTEwgJiYgYzEgIT0gTlVMTCkK LS0gICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsIExMVk1HZXROYW1lKCJtdWwiLCBj MCwgYzEpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNl dCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoIm11bF8iKSArIGMw LT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgKmNv bnN0T2Zmc2V0ID0gTlVMTDsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmEgPSBOVUxM LCAqdmIgPSBOVUxMLCAqdmMgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYm IGMxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6 OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsIExMVk1HZXROYW1lKCJtdWwi LCB2MCwgYzEpLAotKyAgICAgICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMxLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsg djAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAg ICAgICAgaWYgKGMwICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmIg PSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMw LCB2MSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCB2MSksCi0rICAgICAgICAgICAgICAgIHZiID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwg djEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KGxsdm06OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFt ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiB2MSAhPSBOVUxM KQotLSAgICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2 bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIHYxKSwK LSsgICAgICAgICAgICAgICAgdmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06 Okluc3RydWN0aW9uOjpNdWwsIHYwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1l KCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgICAgIGxs dm06OlZhbHVlICp2YWIgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2YSAhPSBOVUxMICYmIHZi ICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmEsIHZiLCBMTFZNR2V0TmFtZSgiYWRkIiwg dmEsIHZiKSwKLSsgICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNy ZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgiYWRkXyIpICsg dmEtPmdldE5hbWUoKSkgKyAiXyIpICsgdmItPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAg ICAgICAgIGVsc2UgaWYgKHZhICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZhOwot QEAgLTE2NzQsOCArMTY4NSw5IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQo bGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAg ICAgICAgdmFiID0gdmI7Ci0gCi0gICAgICAgICAgICAgaWYgKHZhYiAhPSBOVUxMICYmIHZjICE9 IE5VTEwpCi0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM TFZNR2V0TmFtZSgiYWRkIiwgdmFiLCB2YyksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAg ICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLCAoKGxsdm06 OlR3aW5lKCJhZGRfIikgKyB2YWItPmdldE5hbWUoKSkgKyAiXyIpICsgdmMtPmdldE5hbWUoKSwK LSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZSBp ZiAodmFiICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHZhYjsK LSAgICAgICAgICAgICBlbHNlCi1AQCAtMTk0Myw3ICsxOTU1LDcgQEAgc3RhdGljIGJvb2wgbE9m ZnNldHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFs dWUgKipjb24KLSAgICAgICAgICAgICAvLyBhbGwgemVyb3MgKGkuZS4gYSBDb25zdGFudEFnZ3Jl Z2F0ZVplcm8sIGJ1dCBqdXN0IGluIGNhc2UsCi0gICAgICAgICAgICAgLy8gZG8gdGhlIG1vcmUg Z2VuZXJhbCBjaGVjayB3aXRoIGxWZWN0b3JJczMyQml0SW50cygpLgotICAgICAgICAgICAgIHZh cmlhYmxlT2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YXJpYWJsZU9mZnNldCwgTExWTVR5 cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKHZhcmlhYmxlT2Zmc2V0LCAiX3RydW5jIiksIGlu c2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlR3aW5lKHZhcmlhYmxlT2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIs IGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAgcmV0dXJuIGZhbHNl OwotICAgICB9Ci1AQCAtMTk1Miw3ICsxOTY0LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJp dFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24K LSAgICAgICAgIGlmIChsVmVjdG9ySXMzMkJpdEludHMoY29uc3RPZmZzZXQpKSB7Ci0gICAgICAg ICAgICAgLy8gVHJ1bmNhdGUgdGhlbSBzbyB3ZSBoYXZlIGEgMzItYml0IHZlY3RvciB0eXBlIGZv ciB0aGVtLgotICAgICAgICAgICAgIGNvbnN0T2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChj b25zdE9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAi X3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNvbnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90 cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8v IEZJWE1FOiBvdGhlcndpc2Ugd2UganVzdCBhc3N1bWUgdGhhdCBhbGwgY29uc3RhbnQgb2Zmc2V0 cwotICAgICAgICAgICAgIC8vIGNhbiBhY3R1YWxseSBhbHdheXMgZml0IGludG8gMzItYml0cy4u LiAgKFRoaXMgY291bGQgYmUKLUBAIC0xOTYzLDcgKzE5NzUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zm c2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1 ZSAqKmNvbgotICAgICAgICAgICAgIC8vIGxsdm06OkNvbnN0YW50Rm9sZEluc3RydWN0aW9uKCkg ZG9lc24ndCBzZWVtIHRvIGJlIGRvaW5nCi0gICAgICAgICAgICAgLy8gZW5vdWdoIGZvciB1cyBp biBzb21lIGNhc2VzIGlmIHdlIGNhbGwgaXQgZnJvbSBoZXJlLgotICAgICAgICAgICAgIGNvbnN0 T2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChjb25zdE9mZnNldCwgTExWTVR5cGVzOjpJbnQz MlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5l KGNvbnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAg ICAgICB9Ci0gICAgIH0KLSAKLUBAIC0yMDEyLDggKzIwMjQsOCBAQCBzdGF0aWMgYm9vbCBsT2Zm c2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKm9mZnNldFB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc2VydAotIAotICAgICAgICAgLy8gQWx0ZXJuYXRpdmVseSwgb2Zmc2V0IGNvdWxkIGJlIGEg c2VxdWVuY2Ugb2YgYWRkcyB0ZXJtaW5hdGluZwotICAgICAgICAgLy8gaW4gc2FmZSBjb25zdGFu dCB2ZWN0b3JzIG9yIGEgU0V4dC4KLS0gICAgICAgICpvZmZzZXRQdHIgPQotLSAgICAgICAgICAg IG5ldyBsbHZtOjpUcnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwg TExWTUdldE5hbWUob2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAq b2Zmc2V0UHRyID0gbmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJW ZWN0b3JUeXBlLCBsbHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0g ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfSBlbHNlCi0gICAgICAgICByZXR1cm4gZmFsc2U7 Ci1AQCAtMjIyOSw3ICsyMjQxLDggQEAgc3RhdGljIGJvb2wgbEdTVG9HU0Jhc2VPZmZzZXRzKGxs dm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICB9Ci0gICAgIC8vIENhc3QgdGhlIGJhc2Ug cG9pbnRlciB0byBhIHZvaWQgKiwgc2luY2UgdGhhdCdzIHdoYXQgdGhlCi0gICAgIC8vIF9fcHNl dWRvXypfYmFzZV9vZmZzZXRzXyogZnVuY3Rpb25zIHdhbnQuCi0tICAgIGJhc2VQdHIgPSBuZXcg bGx2bTo6SW50VG9QdHJJbnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBM TFZNR2V0TmFtZShiYXNlUHRyLCAiXzJ2b2lkIiksIGNhbGxJbnN0KTsKLSsgICAgYmFzZVB0ciA9 IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5 cGUsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiXzJ2b2lkIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEluc3QpOwotICAgICBsQ29weU1ldGFk YXRhKGJhc2VQdHIsIGNhbGxJbnN0KTsKLSAgICAgbGx2bTo6RnVuY3Rpb24gKmdhdGhlclNjYXR0 ZXJGdW5jID0gaW5mby0+YmFzZU9mZnNldHNGdW5jOwotIAotQEAgLTI4MDMsNyArMjgxNiw3IEBA IHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewot ICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHB0ciwgY2FsbEluc3QpOwotICAgICAgICAg ICAgICAgICBEZWJ1Zyhwb3MsICJUcmFuc2Zvcm1lZCBnYXRoZXIgdG8gdW5hbGlnbmVkIHZlY3Rv ciBsb2FkISIpOwotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbmV3Q2FsbCA9 Ci0tICAgICAgICAgICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1 bmMsIHB0ciwgbWFzaywgTExWTUdldE5hbWUocHRyLCAiX21hc2tlZF9sb2FkIikpOwotKyAgICAg ICAgICAgICAgICAgICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIs IG1hc2ssIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbWFza2VkX2xvYWQiKTsKLSAg ICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShuZXdDYWxsLCBjYWxsSW5zdCk7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIG5ld0NhbGwpOwot ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTk0ZDg0NDNhNWUuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotRnJvbSBjMDNhNTE0MjQ0NDQ3NmExY2FhNWMyYmE3 ZmEyZDkyZDc3OTNkNmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJh amVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBN b24sIDI1IEphbiAyMDIxIDA5OjIyOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGluZyBi dWlsZCBvbiBsbHZtIHRydW5rLgotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDcgKysrLS0tLQotIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBkZWQ1MjRiNzEuLmI2MGU2ZmU4 NCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAs OCArMTAyMCw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQg dmFsdWUsIGJvb2wgY2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxv Y2sgKmJiQ2FzZUltcGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkg ewotICAgICAgICAgLy8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVt ZW50YXRpb24KLS0gICAgICAgIGxsdm06OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3aW5lKGJiQ2Fz ZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFz aWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0rICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFz aWNCbG9jayhsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiLCBiYkNhc2Up OwotICAgICB9Ci0gI2VuZGlmCi0gCi1AQCAtMzE0Miw4ICszMTQxLDggQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZt OjpUeXBlICp2ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6 OmdldCh2ZWNUeXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2lu ZSB0dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUo KSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotLSAgICBs bHZtOjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigpLmNf c3RyKCkpOwotKyAgICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0KLSsgICAgICAgIEluc2VydEluc3Qo dW5kZWYxLCB2LCAwLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5n ZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUgKyAiX2luaXQiKTsKLSAKLSAgICAgLy8g U2h1ZmZsZVZlY3RvcgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoIGIvc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZTNlOTZiMDBhYmZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3MiArMCwwIEBACi1Gcm9t IGMxZDBhNTFiZjg0MTZkNDIxNDRkZTllMmJkZDU5ODI1ZWFlZmYxYWMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVs LmNvbT4KLURhdGU6IEZyaSwgOCBKYW4gMjAyMSAxNDoxMzo0OSAtMDgwMAotU3ViamVjdDogW1BB VENIXSBMTFZNIDExIHN1cHBvcnQgZm9yIGdlbiBjb2RlCi0KLS0tLQotIHNyYy9jdHguY3BwICAg ICAgICAgICAgICAgICAgICAgfCAgMTMgKystCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcCB8ICAgOSArLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAxNDMgKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNl cnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIv c3JjL2N0eC5jcHAKLWluZGV4IGI2MGU2ZmU4NC4uMmE3MmU2ODM3IDEwMDY0NAotLS0tIGEvc3Jj L2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29w eXJpZ2h0IChjKSAyMDEwLTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMp IDIwMTAtMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g Ci0gICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKLUBAIC0zNjg1LDggKzM2ODUsMTcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBs bHZtOjoKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JU eXBlPih2YWx1ZS0+Z2V0VHlwZSgpKSk7Ci0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZ0ID0gbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0gICAgIGlm IChkZWZhdWx0cyA9PSBOVUxMKSB7Ci0tICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50 VmVjdG9yOjpnZXRTcGxhdCh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygp LAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZh dWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxl bWVudHMoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsK LSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgZGVm YXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2ln bmVkIGludD4odnQtPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVs bFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2Vsc2UKLSsgICAgICAgIGRlZmF1bHRz ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyAgICAgICAgICAgIGxsdm06OkVs ZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdldE51bUVsZW1l bnRzKCkpLCBmYWxzZSksCi0rICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1 ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbmRpZgotICAgICB9Ci0gCi0gICAgIGF1dG8g Rm4gPSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24obS0+bW9kdWxlLCBs bHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3NpbWRjZl9wcmVkaWNhdGUsCi1kaWZmIC0tZ2l0IGEv c3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXph dGlvbi5jcHAKLWluZGV4IGExNzZlOTQ2Mi4uNDFmM2IwMGUyIDEwMDY0NAotLS0tIGEvc3JjL2dl bi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0 aW9uLmNwcAotQEAgLTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAxNCwgMjAx Ni0yMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIw MjEsIEludGVsIENvcnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0Ci1AQCAtNTMsOCArNTMsMTAgQEAKLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2lj cy9HZW5YSW50ck9wdHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YSW50 cmluc2ljcy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhNZXRhZGF0YS5o PgotLSNpbmNsdWRlIDxsbHZtL0lSL0NGRy5oPgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMV8wCi0gI2luY2x1ZGUgPGxsdm0vSVIvQ2FsbFNpdGUuaD4KLSsjZW5kaWYKLSsj aW5jbHVkZSA8bGx2bS9JUi9DRkcuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1Z0luZm8uaD4K LSAjaW5jbHVkZSA8bGx2bS9JUi9Eb21pbmF0b3JzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRnVu Y3Rpb24uaD4KLUBAIC00NzAsNyArNDcyLDggQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpM b2NhbGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0 aW9uICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlw ZSAqRWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFs bG9jYUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUo KSArICIubG9jYWwiLCAmRmlyc3RJKTsKLS0gICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxs dm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0rICAgICAgICBBbGxvY2EtPnNl dEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkudmFsdWVPck9u ZSgpKTsKLSsKLSAgICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+KEdWLT5nZXRJbml0aWFsaXpl cigpKSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5nZXRJbml0aWFsaXplcigpLCBB bGxvY2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5j cHAKLWluZGV4IGQ1OGQ3N2Y3My4uMTc4OWI4NDc2IDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAK LSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjg5OSwxNSArMjg5OSwxNyBAQCBzdGF0aWMgbGx2bTo6 RnVuY3Rpb24gKmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJv b2wgaXNTdG9yZQotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6 VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsK LSAgICAgQXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotICAgICBBc3NlcnQobGx2 bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0tICAgIEFzc2VydChs bHZtOjppc1Bvd2VyT2YyXzMyKHZhbC0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygp KSk7Ci0tICAgIEFzc2VydCh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygp IC8gOCA8PSA4ICogT1dPUkQpOwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBl ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyAg ICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1FbGVtZW50cygp KSk7Ci0rICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4 IDw9IDggKiBPV09SRCk7Ci0gCi0gICAgIC8vIFRoZSBkYXRhIHdyaXRlIG9mIHN2bSBzdG9yZSBt dXN0IGhhdmUgYSBzaXplIHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAg ICAgLy8gYnl0ZXMuIEhvd2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRo ZSBkYXRhIHdyaXRlIHNpemUgaXMgOC4KLSAgICAgLy8gU28gd2UgdXNlIG1hc2tlZCBzdG9yZSBm dW5jdGlvbiBoZXJlIGluc3RlYWQgb2Ygc3ZtIHN0b3JlIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBl Ci0gICAgIC8vIGNvcnJlY3RseS4KLS0gICAgaWYgKHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRp dmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydCh2YWwtPmdldFR5cGUo KS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotKyAgICBpZiAodmFs VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0rICAgICAgICBB c3NlcnQodmFsVmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUp OwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRGdW5jID0gbEdlblhNYXNrZWRJ bnQ4SW5zdChpbnN0LCB0cnVlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Q2FsbEluc3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIHZhbCwgTExWTU1hc2tB bGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTI5MjMsMTUgKzI5MjUsMTcgQEAgc3Rh dGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjoKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YTG9h ZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihy ZXRUeXBlKSk7Ci0tICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFR5cGUtPmdldFZl Y3Rvck51bUVsZW1lbnRzKCkpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNp emVJbkJpdHMoKSk7Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRz KCkgLyA4IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnJldFZlY1R5 cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsgICAgQXNz ZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwot KyAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpKTsKLSsgICAg QXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9X T1JEKTsKLSAgICAgLy8gVGhlIGRhdGEgcmVhZCBvZiBzdm0gbG9hZCBtdXN0IGhhdmUgYSBzaXpl IHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAgLy8gYnl0ZXMuIEhv d2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBkYXRhIHJlYWQgc2l6 ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIGxvYWQgZnVuY3Rpb24gaGVyZSBpbnN0 ZWFkIG9mIHN2bSBsb2FkIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0gICAgIC8vIGNvcnJlY3Rs eS4KLS0gICAgaWYgKHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikg ewotLSAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6 OkludDhUeXBlKTsKLSsgICAgaWYgKHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMo KSAvIDggPCAxNikgewotKyAgICAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFNjYWxhclR5cGUo KSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZtOjpGdW5jdGlvbiAq bWFza2VkRnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgZmFsc2UpKQotICAgICAgICAg ICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tl ZEZ1bmMsIHB0ciwgTExWTU1hc2tBbGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTU2 MjIsMTUgKzU2MjYsMjQgQEAgc3RhdGljIGJvb2wgbFZlY3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUg KnB0ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRyVXNlcywgc3RkOjoKLSAgICAgICAgIGxsdm06 OlB0clRvSW50SW5zdCAqcHRyVG9JbnQgPQotICAgICAgICAgICAgIG5ldyBsbHZtOjpQdHJUb0lu dEluc3QocHRyLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgInZlY3Rvcml6ZWRfcHRydG9pbnQiLCBp bnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmFkZHIgPSBsbHZtOjpC aW5hcnlPcGVyYXRvcjo6Q3JlYXRlQWRkKHB0clRvSW50LCBvZmZzZXQsICJ2ZWN0b3JpemVkX2Fk ZHJlc3MiLCBpbnNlcnRCZWZvcmUpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTFfMAotKyAgICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9y VHlwZTo6Z2V0KHNjYWxhcl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZWxzZQotICAgICAg ICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJfdHlw ZSwgcmVxU2l6ZSAvIHRfc2l6ZSk7Ci0rI2VuZGlmCi0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAq Zm4gPSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24oCi0gICAgICAgICAg ICAgbS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3N2bV9ibG9ja19sZF91bmFs aWduZWQsIHtyZXRUeXBlLCBhZGRyLT5nZXRUeXBlKCl9KTsKLSAgICAgICAgIGxsdm06Okluc3Ry dWN0aW9uICpsZCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZm4sIHthZGRyfSwgInZlY3Rvcml6 ZWRfbGQiLCBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgaWYgKGxvYWRpbmdQdHIpIHsKLSAg ICAgICAgICAgICAvLyBDYXN0IGludCB0byBwdHIgdmlhIGludHRvcHRyCi0rI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGQgPSBuZXcgbGx2bTo6 SW50VG9QdHJJbnN0KGxkLCBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChvcmlnaW5hbFR5cGUs IHJlcVNpemUgLyB0X3NpemUpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7Ci0rI2Vsc2UKLSAgICAg ICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OlZlY3RvclR5cGU6 OmdldChvcmlnaW5hbFR5cGUsIHJlcVNpemUgLyB0X3NpemUpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9y ZSk7Ci0rI2VuZGlmCi0gICAgICAgICB9Ci0gCi0gICAgICAgICAvLyBTY2FsYXIgZXh0cmFjdHMg Zm9yIGFsbCBsb2FkZWQgZWxlbWVudHMKLUBAIC02MTYwLDE5ICs2MTczLDM0IEBAIGJvb2wgUmVw bGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gJipJOwotICAgICAgICAgaWYg KGxsdm06OkNhbGxJbnN0ICpjaSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihpbnN0 KSkgewotICAgICAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmdW5jID0gY2ktPmdldENhbGxlZEZ1 bmN0aW9uKCk7Ci0tICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpID09ICJs bHZtLnRyYXAiKSB7Ci0rICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpLmVx dWFscygibGx2bS50cmFwIikpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqYXJnVHlw ZXNbXSA9IHtMTFZNVHlwZXM6OkludDFWZWN0b3JUeXBlLCBMTFZNVHlwZXM6OkludDE2VmVjdG9y VHlwZX07Ci0gICAgICAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uIG9mIHBhcmFtZXRlcnMgZm9y IGdlbnhfcmF3X3NlbmRfbm9yZXN1bHQgY2FuIGJlIGZvdW5kIGluIHRhcmdldC1nZW54LmxsCi0g ICAgICAgICAgICAgICAgIGF1dG8gRm4gPSArbGx2bTo6R2VuWEludHJpbnNpYzo6Z2V0R2VuWERl Y2xhcmF0aW9uKAotICAgICAgICAgICAgICAgICAgICAgbS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50 cmluc2ljOjpnZW54X3Jhd19zZW5kX25vcmVzdWx0LCBhcmdUeXBlcyk7Ci0gICAgICAgICAgICAg ICAgIGxsdm06OlNtYWxsVmVjdG9yPGxsdm06OlZhbHVlICosIDg+IEFyZ3M7Ci0gICAgICAgICAg ICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJ bnQzMlR5cGUsIDApKTsKLS0gICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rICAgICAgICAg ICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAg ICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExWTV9W RVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nh c3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxz ZX0sCi0rI2Vsc2UgLy8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxl bWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKwotICAgICAgICAgICAg ICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50 MzJUeXBlLCAzOSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAzMzU1NDQ0OCkpOwotICAgICAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0 U3BsYXQoCi0tICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rvcldp ZHRoKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MTZU eSgqZy0+Y3R4KSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0r ICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0r I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAg ICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yV2lkdGgoKSksIGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAg ICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+ KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsg ICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlw ZTo6Z2V0SW50MTZUeSgqZy0+Y3R4KSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFj ayh6ZXJvTWFzayk7Ci0gCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdJ bnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShGbiwgQXJncywgY2ktPmdldE5hbWUoKSk7Ci1A QCAtNjE4MSw3ICs2MjA5LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAgICAgbW9k aWZpZWRBbnkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYmIGZ1bmMtPmdl dE5hbWUoKSA9PSAibGx2bS5hc3N1bWUiKSB7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5j ICYmIGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0uYXNzdW1lIikpIHsKLSAgICAgICAgICAg ICAgICAgY2ktPmVyYXNlRnJvbVBhcmVudCgpOwotICAgICAgICAgICAgICAgICBtb2RpZmllZEFu eSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLUBAIC02MzM1LDcgKzYz NjMsNyBAQCBib29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5zdXBwb3J0ZWRGdW5jcy5zaXplKCk7IGkrKykgewot ICAgICAgICAgICAgICAgICBzdGQ6OnNtYXRjaCBtYXRjaDsKLS0gICAgICAgICAgICAgICAgc3Rk OjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgIHN0 ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAg ICAgICBpZiAoc3RkOjpyZWdleF9tYXRjaChmdW5jTmFtZSwgbWF0Y2gsIHVuc3VwcG9ydGVkRnVu Y3NbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB1bnN1cHBvcnRlZCBm dW5jdGlvbi4gR2VuZXJhdGUgZXJyb3IgYW5kIHN0b3AgY29tcGlsYXRpb24uCi0gICAgICAgICAg ICAgICAgICAgICBTb3VyY2VQb3MgcG9zOwotQEAgLTY0MTgsMTIgKzY0NDYsMTQgQEAgYm9vbCBN YW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gICAgICAgICAgICAgaWYgKGZ1bmMtPmdldE5hbWUoKS5zdGFydHN3aXRoKCJfX3NwaXJ2 X29jbCIpKSB7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1hbmdsZWROYW1lOwotICAg ICAgICAgICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gZnVuYy0+Z2V0UmV0dXJuVHlwZSgp OwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUo KTsKLSsgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1l KCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGxsdm06OlR5cGUgKj4gQXJn VHk7Ci0gICAgICAgICAgICAgICAgIC8vIHNwaXJ2IE9wZW5DTCBidWlsdGlucyBhcmUgdXNlZCBm b3IgZG91YmxlIHR5cGVzIG9ubHkKLS0gICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlz VmVjdG9yVHkoKSAmJiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5 KCkgfHwKLSsgICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkgfHwKLSAgICAgICAg ICAgICAgICAgICAgICAgIHJldFR5cGUtPmlzU2luZ2xlVmFsdWVUeXBlKCkgJiYgcmV0VHlwZS0+ aXNEb3VibGVUeSgpKTsKLS0gICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHko KSAmJiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkpIHsKLSsg ICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldEVs ZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotICAgICAgICAgICAgICAgICAgICAgQXJnVHku cHVzaF9iYWNrKExMVk1UeXBlczo6RG91YmxlVmVjdG9yVHlwZSk7Ci0gICAgICAgICAgICAgICAg ICAgICAvLyBfRHZXSURUSCBzdWZmaXggaXMgdXNlZCBpbiB0YXJnZXQgZmlsZSB0byBkaWZmZXJl bnRpYXRlIHNjYWxhcgotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHZlY3RvciB2ZXJzaW9u cyBvZiBpbnRyaW5zaWNzLiBIZXJlIHdlIHJlbW92ZSB0aGlzCi1AQCAtNjUxMSw4ICs2NTQxLDE1 IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJB ZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgIC8vIENhc3Qgb2Zmc2V0cyB0byBp bnQ2NAotICAgICBPZmZzZXRzID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgT2Zmc2V0cywKLSsgICAgICAgIGxs dm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4oT2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAgICAgICAic3Zt X29mZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAgT2Zmc2V0cywg bGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRU eXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4 dCIsIEluc2VydEJlZm9yZSk7Ci0rI2VuZGlmCi0gCi0gICAgIGlmICghbGx2bTo6aXNhPGxsdm06 OkNvbnN0YW50UG9pbnRlck51bGw+KFB0cikpIHsKLSAgICAgICAgIC8vIENhc3QgcHRyIHRvIGlu dDY0Ci1AQCAtNjUyMCwxMyArNjU1NywzMSBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNl OjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotIAot ICAgICAgICAgLy8gVmVjdG9yaXplIHB0cgotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmSW5z ZXJ0VmFsdWUgPQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAg ICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6Omdl dCgKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0 PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyNl bHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6 OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1l bnRzKCkpKTsKLSsjZW5kaWYKLSAgICAgICAgIGFkZHJlc3MgPSBsbHZtOjpJbnNlcnRFbGVtZW50 SW5zdDo6Q3JlYXRlKHVuZGVmSW5zZXJ0VmFsdWUsIGFkZHJlc3MsIExMVk1JbnQzMigwKSwgInN2 bV9wdHJfaWVpIiwgSW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJv VmVjID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEx XzAKLSsgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVz c1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rI2Vsc2UKLSsgICAgICAgIGxsdm06 OkVsZW1lbnRDb3VudDo6Z2V0KAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxl bWVudHMoKSwgZmFsc2UpLAotKyNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50Ojpn ZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENvbnRl eHQoKSkpKTsKLSsKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9Ci0r I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGx2 bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotKyAgICAgICAg ICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UKLSAgICAgICAg ICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBl czo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotKyNl bmRpZgotICAgICAgICAgYWRkcmVzcyA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdChhZGRy ZXNzLCB1bmRlZlNodWZmbGVWYWx1ZSwgemVyb1ZlYywgInN2bV9wdHJfc3ZpIiwgSW5zZXJ0QmVm b3JlKTsKLSAKLSAgICAgICAgIC8vIENhbGN1bGF0ZSBhZGRyZXNzCi1AQCAtNjU1Myw5ICs2NjA4 LDEyIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JM b2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICBpZiAocmV0VHlwZS0+Z2V0U2NhbGFyVHlw ZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVlOwotICAgICAg ICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6Oklu dDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5 cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06 OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpKTsKLSsjZW5kaWYKLSAgICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmVzID0g bEdlblhMb2FkSW5zdChwdHIsIHJldFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0 aW9uPihMSSkpOwotICAgICBBc3NlcnQocmVzKTsKLSAKLUBAIC02NTgwLDExICs2NjM4LDE2IEBA IGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1WZWN0b3JMb2Fk KGxsdm06Okluc3RydWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5z dChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0VHlwZSwgMCksIENJLT5nZXROYW1lKCkg KyAiX2ludHRvcHRyIiwgQ0kpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBO VUxMOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2Fk SW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlw ZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgbG9hZEluc3QsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJLT5nZXROYW1lKCksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChs bHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2lu dGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDSS0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotLSAgICBs b2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIENJLT5nZXROYW1lKCksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChw dHIsIENJLT5nZXROYW1lKCksIGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50 KCkpLnZhbHVlT3JPbmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxs dm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0rCi0gICAgIEFzc2VydChsb2FkSW5z dCk7Ci0gICAgIHJldHVybiBsb2FkSW5zdDsKLSB9Ci1AQCAtNjYwNiw3ICs2NjY5LDExIEBAIGxs dm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JTdG9yZShsbHZt OjpTdG9yZUluc3QgKlNJKSB7Ci0gICAgIC8vIE5vdGU6IGl0IGRvZXNuJ3QgbG9vayBsaWtlIGEg bm9ybWFsIGNhc2UgZm9yIEdlblggdGFyZ2V0Ci0gICAgIGlmICh2YWxUeXBlLT5nZXRTY2FsYXJU eXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRh cmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0 VHlwZTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAg IHZhbFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0r I2Vsc2UKLSAgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlw ZSwgdmFsVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0gICAgICAgICB2 YWwgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbCwgdmFsVHlwZSwgInN2bV9zdF92YWxfcHRy dG9pbnQiLCBTSSk7Ci0gICAgIH0KLSAKLUBAIC02NjMxLDEyICs2Njk4LDggQEAgbGx2bTo6SW5z dHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvclN0b3JlKGxsdm06Oklu c3RydWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChwdHIsIGxs dm06OlBvaW50ZXJUeXBlOjpnZXQodmFsVHlwZSwgMCksIENJLT5nZXROYW1lKCkgKyAiX2ludHRv cHRyIiwgQ0kpOwotIAotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqc3RvcmVJbnN0ID0gTlVMTDsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbG9hZEluc3Qg PSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5 cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZUluc3QsIENJLT5nZXROYW1lKCksIChsbHZt OjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbHNlCi0tICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZt OjpTdG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbmRp ZgotKyAgICBzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRyLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSku dmFsdWVPck9uZSgpKTsKLSAgICAgQXNzZXJ0KHN0b3JlSW5zdCk7Ci0gICAgIHJldHVybiBzdG9y ZUluc3Q7Ci0gfQotQEAgLTY2NDUsMTUgKzY3MDgsMTggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZp eEFkZHJlc3NTcGFjZTo6Y3JlYXRlSW50OFdyUmVnaW9uKGxsdm06OlZhbHVlICpWYWwsIGxsdm06 OlYKLSAgICAgaW50IHdpZHRoID0gZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpOwotIAotICAg ICBsbHZtOjpWYWx1ZSAqQXJnc1s4XTsKLS0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLSsgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpG aXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8g b2xkIHZhbHVlCi0rI2Vsc2UKLSAgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChs bHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KSk7IC8v IG9sZCB2YWx1ZQotLSAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUg dG8gc3RvcmUKLS0gICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZzdHJpZGUK LS0gICAgQXJnc1szXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIHdpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoCi0tICAgIEFyZ3Nb NF0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpZGUKLS0gICAgQXJnc1s1XSA9IGxsdm06 OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQxNlR5cGUsIDApOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIG9mZnNldHMKLS0gICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50 SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHBhcmVudCB3aWR0aCAoaWdub3JlZCkKLS0gICAgQXJnc1s3XSA9IE1hc2s7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG1hc2sKLSsjZW5kaWYKLSsgICAgQXJnc1sxXSA9IFZhbDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdG8gc3Rv cmUKLSsgICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQz MlR5cGUsIDApOyAgICAgLy8gdnN0cmlkZQotKyAgICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJ bnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgd2lkdGgpOyAvLyB3aWR0aAotKyAgICBBcmdz WzRdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgNCk7ICAg ICAvLyBzdHJpZGUKLSsgICAgQXJnc1s1XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5 cGVzOjpJbnQxNlR5cGUsIDApOyAgICAgLy8gb2Zmc2V0cwotKyAgICBBcmdzWzZdID0gbGx2bTo6 Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAvLyBwYXJlbnQg d2lkdGggKGlnbm9yZWQpCi0rICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sKLSAKLSAgICAgbGx2bTo6VHlwZSAq VHlzWzRdOwotIAotQEAgLTY3MDgsNyArNjc3NCwxMiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4 QWRkcmVzc1NwYWNlOjpwcm9jZXNzR2F0aGVyU2NhdHRlclByaXZhdGUobGx2bTo6Q2FsbEluc3Qg KgotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gCi0gICAgIGxsdm06OlZhbHVlICphZGRyZXNzID0g Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MocHRyLCBvZmZzZXRzLCBDSSk7Ci0rI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIGxsdm06OlR5cGUgKmk4VmVj VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdp ZHRoICogNCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0gbGx2bTo6VmVj dG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCk7Ci0rI2VuZGlmCi0r Ci0gICAgIGJvb2wgaXNJbnQ4ID0gKHZhbHVlLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSA9 PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAKLSAgICAgQXNzZXJ0KGFkZHJlc3MgJiYgIkJhZCBn YXRoZXIvc2NhdHRlciBhZGRyZXNzISIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4MjllYTQ4MzkxZS4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMjYgKzAsMCBAQAotRnJvbSBiYjNmNDkzZDFmYmQ0NWM3OWUxZDlkZWU2N2Ew NDMwYmEzMTNlYWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5 YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDE5IEphbiAyMDIx IDExOjA3OjMzIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGlmZGVmcyBmb3IgTExWTV8x MQotCi0tLS0KLSBzcmMvY3R4LmNwcCB8ICA2ICsrKy0tLQotIHNyYy9vcHQuY3BwIHwgMTggKysr KysrKysrLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWlu ZGV4IDJhNzJlNjgzNy4uNTI3YTAyZjMwIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBi L3NyYy9jdHguY3BwCi1AQCAtMTY5MSw3ICsxNjkxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06 OlQKLSAgICAgaWYgKGxsdm06OkNvbnN0YW50ICpjb25zdF92YWwgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpDb25zdGFudD4odmFsdWUpKSB7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzExXzAKLSAgICAgICAgIHJldCA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChn LT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCksIGNvbnN0X3ZhbCk7Ci0tI2VsaWYgSVNQQ19MTFZN X1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMl8wCi0gICAgICAgICByZXQgPQotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50 VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdl dFZlY3RvcldpZHRoKCkpLCBmYWxzZX0sIGNvbnN0X3ZhbCk7Ci0gI2Vsc2UgLy8gTExWTSAxMi4w KwotQEAgLTMxNDgsNyArMzE0OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnpl cm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAgICB2ZWNUeXBl LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLCBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxs dm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzEyXzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPQotICAgICAgICAgbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXRO dW1FbGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJU eSgqZy0+Y3R4KSkpOwotQEAgLTM2ODgsNyArMzY4OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGRl ZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1F bGVtZW50cygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkp OwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgZGVmYXVsdHMgPSBsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQt PmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5n ZXRFbGVtZW50VHlwZSgpKSk7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3Ny Yy9vcHQuY3BwCi1pbmRleCAxNzg5Yjg0NzYuLjNmZjE5MWEwYSAxMDA2NDQKLS0tLSBhL3NyYy9v cHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTEwNDUsNyArMTA0NSw3IEBAIGJvb2wgSW50 cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAg ICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25t ZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWdu ID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6 IDg7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENf TExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSAgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2Fk SW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0 TmFtZSgpKSArICJfbG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxs dm06Okluc3RydWN0aW9uICopTlVMTCk7Ci1AQCAtMTQ3Miw3ICsxNDcyLDcgQEAgc3RhdGljIGxs dm06OlZhbHVlICpsR2V0QmFzZVB0ckFuZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0cnMsIGxsdm06 OlZhbHVlICoqb2Zmc2UKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFz ayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY3YtPmdldFR5cGUo KS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJ U1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAK LSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQo Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0 b3JUeXBlPihjdi0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNl IC8vIExMVk0gMTIuMCsKLUBAIC0xNDk1LDcgKzE0OTUsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUg KmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFsdWUgKipv ZmZzZQotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxs dm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3BfdmFyX3R5cGUt PmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQ Q19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihib3BfdmFyX3R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8g TExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291 bnQ6OmdldCgKLUBAIC0yODAzLDcgKzI4MDMsNyBAQCBzdGF0aWMgYm9vbCBsR1NUb0xvYWRTdG9y ZShsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq emVyb01hc2sgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAg ICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjYWxsSW5zdC0+Z2V0 VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9O ID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTJfMAotICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0g ICAgICAgICAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY2Fs bEluc3QtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAKLUBAIC0zMTAw LDcgKzMxMDAsNyBAQCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbElu c3QgKmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Jsb2NrOjppdGVyYQotICAgICAgICAgewotICAgICAg ICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJ bnN0LT5nZXRUeXBlKCksIDApOwotICAgICAgICAgICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0 SW5zdChwdHIsIHB0clR5cGUsICJwdHJfY2FzdF9mb3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZElu c3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFsc2UgLyog bm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9w dC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVu dCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzQ1OSw3ICszNDU5LDcgQEAgbGx2bTo6VmFsdWUgKmxH RVBBbmRMb2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNldCwgaW50IGFsaWdu LCBsbHZtOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqdHlwZSkgewot ICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExWTUludDY0KG9mZnNl dCksICJuZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRD YXN0SW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCksICJwdHJfY2FzdCIs IGluc2VydEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8w Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgcmV0dXJuIG5l dyBsbHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGls ZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8g TExWTSAxMS4wKwotICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0 PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpLCBwdHIsCi1AQCAtNjE4Myw3ICs2MTgzLDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNp Y3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAg ICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lm IElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAg IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzEyXzAKLSAgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+ KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBM TFZNIDEyLjArCi0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChz dGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgo KSksIGZhbHNlKSwKLUBAIC02MTk1LDcgKzYxOTUsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmlu c2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAg ICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRT cGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAg ICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVu c2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAot ICNlbHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRD b3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVW ZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotQEAgLTY1NjcsNyArNjU2Nyw3IEBAIGxsdm06OlZhbHVl ICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZh bHVlICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNv bnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xM Vk1fMTFfMAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygp LAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgIHtsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZh bHNlfSwKLSAjZWxzZQotICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoIGIvc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MWI5NzVmODk2YzdlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1Gcm9tIDYyZjVh NmMzN2JmMjZmYzI1YTdjZjgxODY4MDUyZDM0NzI4NzQ2MTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4K LURhdGU6IFR1ZSwgMjMgTWFyIDIwMjEgMjM6MDc6MzAgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0g RG8gbm90IGdlbmVyYXRlIGZ1bmN0aW9uIG1hc2sgd2hlbiBpdCBpcyBub3QgcmVxdWlyZWQKLQot LS0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKyst LS0tLS0tCi0gdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIHwgNjMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9m dWxsX21hc2suaXNwYwotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAot aW5kZXggNTI3YTAyZjMwLi45ZTc3NWZjNWMgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysr IGIvc3JjL2N0eC5jcHAKLUBAIC0yMzEsMTAgKzIzMSwxOCBAQCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpGdW5jdGlvbkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2 bTo6RgotICAgICBpbnRlcm5hbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6Ok1h c2tUeXBlLCAiaW50ZXJuYWxfbWFza19tZW1vcnkiKTsKLSAgICAgU3RvcmVJbnN0KExMVk1NYXNr QWxsT24sIGludGVybmFsTWFza1BvaW50ZXIpOwotIAotLSAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9 IExMVk1NYXNrQWxsT247Ci0tCi0tICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExW TVR5cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLS0gICAgU3RvcmVJbnN0KExM Vk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIC8vIElmIHRoZSBmdW5jdGlvbiBk b2Vzbid0IGhhdmUgX19tYXNrIGluIHBhcmFtZXRlcnMsIHRoZXJlIGlzIG5vIG5lZWQgdG8KLSsg ICAgLy8gaGF2ZSBmdW5jdGlvbiBtYXNrCi0rICAgIGlmICgoZnVuYy0+R2V0VHlwZSgpLT5pc0V4 cG9ydGVkICYmCi0rICAgICAgICAgKGxmLT5nZXRGdW5jdGlvblR5cGUoKS0+Z2V0TnVtUGFyYW1z KCkgPT0gZnVuYy0+R2V0VHlwZSgpLT5HZXROdW1QYXJhbWV0ZXJzKCkpKSB8fAotKyAgICAgICAg KGZ1bmMtPkdldFR5cGUoKS0+aXNVbm1hc2tlZCkgfHwgKGZ1bmMtPkdldFR5cGUoKS0+aXNUYXNr KSkgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBOVUxMOwotKyAgICAgICAgZnVsbE1h c2tQb2ludGVyID0gTlVMTDsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1Zh bHVlID0gTExWTU1hc2tBbGxPbjsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUlu c3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLSsgICAgICAgIFN0 b3JlSW5zdChMTFZNTWFza0FsbE9uLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gCi0gICAg IGJsb2NrRW50cnlNYXNrID0gTlVMTDsKLSAgICAgYnJlYWtMYW5lc1B0ciA9IGNvbnRpbnVlTGFu ZXNQdHIgPSBOVUxMOwotQEAgLTM4OSwyMCArMzk3LDI2IEBAIGxsdm06OkJhc2ljQmxvY2sgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkdldEN1cnJlbnRCYXNpY0Jsb2NrKCkgeyByZXR1cm4gYmJsb2Nr OyB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRDdXJyZW50QmFzaWNCbG9jayhs bHZtOjpCYXNpY0Jsb2NrICpiYikgeyBiYmxvY2sgPSBiYjsgfQotIAotLWxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlvbk1hc2soKSB7IHJldHVybiBmdW5jdGlvbk1h c2tWYWx1ZTsgfQotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlv bk1hc2soKSB7IHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdW5jdGlvbk1hc2tWYWx1ZSA6IExM Vk1NYXNrQWxsT247IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 SW50ZXJuYWxNYXNrKCkgeyByZXR1cm4gTG9hZEluc3QoaW50ZXJuYWxNYXNrUG9pbnRlciwgTlVM TCwgImxvYWRfbWFzayIpOyB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkdldEZ1bGxNYXNrKCkgewotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1 Y3Rpb246OkFuZCwgR2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVlLCAiaW50ZXJu YWxfbWFzayZmdW5jdGlvbl9tYXNrIik7Ci0rICAgIHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwg ZnVuY3Rpb25NYXNrVmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiaW50ZXJuYWxfbWFzayZmdW5jdGlvbl9tYXNrIikKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IEdldEludGVybmFsTWFzaygpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2ludGVyKCkgeyByZXR1cm4gZnVsbE1hc2tQ b2ludGVyOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bGxNYXNr UG9pbnRlcigpIHsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bGxNYXNrUG9pbnRl ciA6IGludGVybmFsTWFza1BvaW50ZXI7Ci0rfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4 dDo6U2V0RnVuY3Rpb25NYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotLSAgICBmdW5jdGlvbk1h c2tWYWx1ZSA9IHZhbHVlOwotLSAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0tICAgICAgICBTdG9y ZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNr UG9pbnRlciAhPSBOVUxMKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IHZhbHVlOwot KyAgICAgICAgaWYgKGJibG9jayAhPSBOVUxMKQotKyAgICAgICAgICAgIFN0b3JlSW5zdChHZXRG dWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gfQotIAotIHZvaWQgRnVuY3Rp b25FbWl0Q29udGV4dDo6U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7IGJs b2NrRW50cnlNYXNrID0gdmFsdWU7IH0KLUBAIC00MTAsNyArNDI0LDggQEAgdm9pZCBGdW5jdGlv bkVtaXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxv Y2tFbnRyeU1hc2sKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVybmFsTWFzayhs bHZtOjpWYWx1ZSAqdmFsdWUpIHsKLSAgICAgU3RvcmVJbnN0KHZhbHVlLCBpbnRlcm5hbE1hc2tQ b2ludGVyKTsKLSAgICAgLy8ga2x1ZGdlIHNvIHRoYXQgX19tYXNrIHJldHVybnMgdGhlIHJpZ2h0 IHZhbHVlIGluIGlzcGMgY29kZS4KLS0gICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxN YXNrUG9pbnRlcik7Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIpCi0rICAgICAgICBTdG9yZUlu c3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSB9Ci0gCi0gdm9pZCBGdW5jdGlv bkVtaXRDb250ZXh0OjpTZXRJbnRlcm5hbE1hc2tBbmQobGx2bTo6VmFsdWUgKm9sZE1hc2ssIGxs dm06OlZhbHVlICp0ZXN0KSB7Ci1AQCAtMTI2NSw3ICsxMjgwLDcgQEAgdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjpDdXJyZW50TGFuZXNSZXR1cm5lZChFeHByICpleHByLCBib29sIGRvQ29oZXJl bmNlQ2hlY2sKLSAgICAgICAgIC8vIGxhbmVzIGhhdmUgcmV0dXJuZWQKLSAgICAgICAgIGlmIChk b0NvaGVyZW5jZUNoZWNrKSB7Ci0gICAgICAgICAgICAgLy8gaWYgbmV3UmV0dXJuZWRMYW5lcyA9 PSBmdW5jdGlvbk1hc2tWYWx1ZSwgZ2V0IG91dCBvZiBoZXJlIQotLSAgICAgICAgICAgIGxsdm06 OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKGZ1bmN0aW9uTWFza1ZhbHVlLCBuZXdSZXR1cm5l ZExhbmVzKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NBbGxFcXVhbChH ZXRGdW5jdGlvbk1hc2soKSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0gICAgICAgICAgICAgbGx2bTo6 QmFzaWNCbG9jayAqYkRvUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygiZG9fcmV0dXJuIik7Ci0g ICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYk5vUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9j aygibm9fcmV0dXJuIik7Ci0gICAgICAgICAgICAgQnJhbmNoSW5zdChiRG9SZXR1cm4sIGJOb1Jl dHVybiwgY21wKTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMg Yi90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCAwMDAwMDAwMDAuLmFjMGIwYmNhMwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGVzdHMvbGl0 LXRlc3RzL2Z1bGxfbWFzay5pc3BjCi1AQCAtMCwwICsxLDYzIEBACi0rLy8gUlVOOiAle2lzcGN9 ICVzIC1ESVNQQ19FWFBPUlQgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwK LSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVD S19JU1BDX0VYUE9SVCAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfVU5NQVNLRUQg LS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVj ayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX1VOTUFTS0VEICVz Ci0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19OT1FVQUxJRiAtLWVtaXQtbGx2bS10ZXh0 IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0l dC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfTk9RVUFMSUYgJXMKLSsKLSsvLyBSVU46ICV7 aXNwY30gJXMgLURJU1BDX1RBU0sgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQu bGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1D SEVDS19JU1BDX1RBU0sgJXMKLSsKLStzdHJ1Y3QgUGFyYW1ldGVycyB7Ci0rICAgIGZsb2F0ICp2 b3V0OwotKyAgICBpbnQgcGFyYW07Ci0rfTsKLSsKLSsjaWZkZWYgSVNQQ19FWFBPUlQKLSsvLyBD SEVDS19JU1BDX0VYUE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnRfX18KLSsvLyBDSEVD S19JU1BDX0VYUE9SVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBDSEVDS19JU1BD X0VYUE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnQoCi0rLy8gQ0hFQ0tfSVNQQ19FWFBP UlQtTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK2V4cG9ydCB2b2lkIHNpbXBsZV9l eHBvcnQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAo UGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFy YW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9n cmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1VOTUFTS0VECi0rLy8gQ0hFQ0tf SVNQQ19VTk1BU0tFRDogZGVmaW5lIHZvaWQgQHNpbXBsZV91bm1hc2tlZAotKy8vIENIRUNLX0lT UENfVU5NQVNLRUQtTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3VubWFza2VkIHZv aWQgc2ltcGxlX3VubWFza2VkKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAq dW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1J bmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3Jh bUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19OT1FVQUxJ RgotKy8vIENIRUNLX0lTUENfTk9RVUFMSUY6IGRlZmluZSB2b2lkIEBzaW1wbGUKLSsvLyBDSEVD S19JU1BDX05PUVVBTElGOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3ZvaWQgc2ltcGxl KHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFt ZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQot KyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUlu ZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19UQVNLCi0rCi0rLy8gQ0hFQ0tfSVNQQ19U QVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3Rhc2sKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAl ZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZv aWQgQHNpbXBsZV9lbnRyeV9wb2ludF9fCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiAlZnVsbF9tYXNr X21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNpbXBs ZV9lbnRyeV9wb2ludCgKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVsbF9tYXNrX21lbW9y eSA9IGFsbG9jYQotK3Rhc2sgdm9pZCBzaW1wbGVfdGFzayh2b2lkICp1bmlmb3JtIF9wKSB7Ci0r ICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0r ICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3Jh bUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rZXhwb3J0IHZvaWQg c2ltcGxlX2VudHJ5X3BvaW50KHZvaWQgKnVuaWZvcm0gcGFyYW1ldGVycywgdW5pZm9ybSBpbnQg ZGltMCwgdW5pZm9ybSBpbnQgZGltMSwgdW5pZm9ybSBpbnQgZGltMikgewotKyAgICBsYXVuY2hb ZGltMCwgZGltMSwgZGltMl0gc2ltcGxlX3Rhc2socGFyYW1ldGVycyk7Ci0rfQotKyNlbmRpZgot XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDA4LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg0MTNkOGI3ODg3Li4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE0OSArMCwwIEBACi1Gcm9tIGFmYWQxNDIyN2Q5MjA0YTNjOGE2MjZjYTYw OGY1YjQzYzMyMThmZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNo bHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAy MSAxMTo0Mzo1MiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBJU1BDIGdlbiBidWlsZCBm b3IgTExWTTEyCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgIDQgKysrKwotIHNyYy9vcHQuY3BwIHwg NDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMg Y2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCAwYzcwNTA1OTEuLmY3ZGMwNjkzOSAx MDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTM3MzgsNyAr MzczOCwxMSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRkFu eShsbHZtOjpWYWx1ZSAqdmFsdWUpIHsKLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVl ICpkZWZhdWx0cykgewotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06 OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2dCA9IGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0rI2Vs c2UKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0 b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAgICAgaWYgKGRlZmF1bHRzID09 IE5VTEwpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAg ICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCksCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAot aW5kZXggY2VhNGFmYTIzLi40ZTMzZDZiMWEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysr IGIvc3JjL29wdC5jcHAKLUBAIC0yOTE2LDkgKzI5MTYsMTMgQEAgc3RhdGljIGxsdm06OkZ1bmN0 aW9uICpsR2VuWE1hc2tlZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0LCBib29sIGlz U3RvcmUKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZh bHVlICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0g ICAgIEFzc2VydChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhl ZFZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0rICAgIGxsdm06OkZpeGVkVmVjdG9yVHlw ZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFs LT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9y VHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0KLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdmFsVmVj VHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsK LSsjZW5kaWYKLSAgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsVmVjVHlwZS0+Z2V0 TnVtRWxlbWVudHMoKSkpOwotICAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6 ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotIAotQEAgLTI5NDIsOSArMjk0NiwxMyBAQCBz dGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxs dm06OlZhbHVlICpwdHIsIGxsdm06OgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxH ZW5YTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5 cGUpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZWxzZQotICAgICBBc3Nl cnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpKTsKLS0KLSAgICAgbGx2bTo6 VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHJldFR5cGUpOwotKyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRW ZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQ cmltaXRpdmVTaXplSW5CaXRzKCkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0 aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotQEAgLTU0ODUsOCArNTQ5MywxMyBA QCBzdGF0aWMgdm9pZCBsQ3JlYXRlQmxvY2tMRFVzZShsbHZtOjpJbnN0cnVjdGlvbiAqY3Vycklu c3QsIHN0ZDo6dmVjdG9yPGxsdm06OkV4dAotICAgICAgICAgfSBlbHNlIGlmIChhdXRvIGdhdGhl ciA9IGxHZXRQc2V1ZG9HYXRoZXIobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KHVp LT5nZXRVc2VyKCkpKSkgewotICAgICAgICAgICAgIC8vIENvbGxlY3QgaWR4cyBmcm9tIGdhdGhl ciBhbmQgZml4IHVzZXJzCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnJlcyA9IGxsdm06OlVu ZGVmVmFsdWU6OmdldChnYXRoZXItPmdldFR5cGUoKSk7Ci0tICAgICAgICAgICAgZm9yICh1bnNp Z25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmVzLT5n ZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotLSAgICAgICAgICAgICAgICAg KytpKSB7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAg ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4 ZWRWZWN0b3JUeXBlPihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7 Ci0rICAgICAgICAgICAgICAgICArK2kpCi0rI2Vsc2UKLSsgICAgICAgICAgICBmb3IgKHVuc2ln bmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdl dFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7ICsraSkKLSsjZW5kaWYKLSsgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIC8vIEdldCBlbGVtZW50IHZpYSBJRUkKLSAgICAg ICAgICAgICAgICAgcmVzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZShyZXMsIEVF SXNbcHRyVXNlLmlkeHNbY3Vycl9pZHgrK11dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5 cGVzOjpJbnQzMlR5cGUsIGkpLAotQEAgLTU1MjIsMTAgKzU1MzUsMTEgQEAgc3RhdGljIGJvb2wg bFZlY3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUgKnB0ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRy VXNlcywgc3RkOjoKLSAKLSAgICAgLy8gQWRqdXN0IHZhbHVlcyBmb3IgdmVjdG9yIGxvYWQKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgaWYgKGF1dG8gdmVj VHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUpKSB7Ci0rICAg IGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih0 eXBlKSkKLSAjZWxzZQotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHR5cGUpKSB7Ci0rICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4odHlwZSkpCi0gI2VuZGlmCi0rICAgIHsKLSAgICAgICAgIC8v IEdldCBzaW5nbGUgZWxlbWVudCBzaXplCi0gICAgICAgICB0X3NpemUgLz0gdmVjVHktPmdldE51 bUVsZW1lbnRzKCk7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQgdHlwZQotQEAgLTY0 NzcsNyArNjQ5MSw3IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdh dGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBPZmZzZXRzLAotICAgICAgICAgbGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlw ZT4oT2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3Zt X29mZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSAjZWxzZQotICAgICAgICAgT2Zmc2V0cywg bGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRU eXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotQEAgLTY0OTIsNyArNjUwNiw3IEBAIGxs dm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNz KGxsdm06OlZhbHVlICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRW YWx1ZSA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAot LSAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAg ICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhl ZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0g ICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChM TFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkp KTsKLSAjZW5kaWYKLUBAIC02NTAxLDE3ICs2NTE1LDE2IEBAIGxsdm06OlZhbHVlICpGaXhBZGRy ZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIs IGxsCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAjZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0tICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAot KyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJl c3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlCi0tICAgICAgICBsbHZt OjpFbGVtZW50Q291bnQ6OmdldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUtPmdldE51bUVs ZW1lbnRzKCksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChs bHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVt RWxlbWVudHMoKSwgZmFsc2UpLAotICNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50 OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENv bnRleHQoKSkpKTsKLSAKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAg bGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotLSAgICAg ICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAgICAgICAg ICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3Rv clR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0gICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlw ZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSAj ZW5kaWYKLUBAIC02NTQyLDcgKzY1NTUsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVz c1NwYWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAqTEkpIHsKLSAgICAgICAg IGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQt PmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgICAgICByZXRU eXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAg ICAgcmV0VHlwZSA9Ci0rICAgICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2Nh bGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKS0+ Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0 b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7 Ci0gI2VuZGlmCi1AQCAtNjYwNCw3ICs2NjE4LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFk ZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3JlSW5zdCAqU0kpIHsKLSAg ICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAg ICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6Oklu dDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotLSAgICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5 cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsgICAgICAgIHZhbFR5cGUgPQotKyAgICAgICAgICAg IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxs dm06OkZpeGVkVmVjdG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotICNlbHNl Ci0gICAgICAgICB2YWxUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZh bFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZWE2Nzgy ODU4Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTA5ICswLDAgQEAKLUZyb20gOTdiMTNjMzIxMzJl MjcwNGE1ZTNlN2IyZWFlNDlkODU0ZDA4N2UzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTog VHVlLCA0IE1heSAyMDIxIDExOjMxOjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZWQg YnVpbHRpbnMtY20qIGZvciBzd2l0Y2ggdG8gTExWTTEyCi0KLS0tLQotIGJ1aWx0aW5zL2J1aWx0 aW5zLWNtLTMyLmxsIHwgMjM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0K LSBidWlsdGlucy9idWlsdGlucy1jbS02NC5sbCB8IDIzMiArKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzMyBpbnNlcnRpb25zKCspLCAyMzMg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9idWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCBi L2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi1pbmRleCAzMmRlYmYzMmUuLjQ4MWJiZGM0OCAx MDA2NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi0rKysgYi9idWlsdGlucy9i dWlsdGlucy1jbS0zMi5sbAotQEAgLTU1Nyw3ICs1NTcsNyBAQCAkX1pOMTNWYXJ5aW5nV3JpdGVy MTJXcml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29tZGF0IGFueQotIEAuc3RyLjEwID0gcHJpdmF0ZSB1 bm5hbWVkX2FkZHIgY29uc3RhbnQgWzUgeCBpOF0gYyIlMDhYXDAwIiwgYWxpZ24gMQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWdu ZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2ln bmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDEgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2NTMV9T MV91MkNNdgotIGRlY2xhcmUgPDEgeCBpOD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpOC52MWk4 LmkxNig8MSB4IGk4PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+ KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIx X2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIg eCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgot ICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi1AQCAtNjgwLDcgKzY4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0 IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUg ewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTgxOCw3 ICs4MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBs X2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtODY0LDcgKzg2 NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMzJFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2Rl ZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2Mo aTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxp Z24gMQotQEAgLTg5MCw3ICs4OTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4 PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4Piwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC05MDQsNyArOTA0 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxv Y2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC05MTgsNyArOTE4LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHgg aTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQg eCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQK LUBAIC05MzIsNyArOTMyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDgg eCBpOD4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLSAgICUzID0g YWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC05NDYsNyArOTQ2LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjhfY1NfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0rZGVm aW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDE2IHgg aTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUg PSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTk2MCw3ICs5NjAsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2 X2NTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NT Xyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4Piwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC05NzQsNyArOTc0LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18o PDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2ln bmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2 IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0x MDU4LDcgKzEwNTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBp MTY+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTE2LnYxaTE2LmkxNig8MSB4IGkxNj4sIGkzMiwg aTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBp bnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NT Xyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNzQsNyArMTA3NCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEg eCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkx Nj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2 PiwgYWxpZ24gNAotQEAgLTExNDMsNyArMTE0Myw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkx Nj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NTMV9TMV91MkNN Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NT Xyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHgg aTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24g OAotQEAgLTEzNTAsNyArMTM1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4 IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHgg aTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2Piwg YWxpZ24gNjQKLUBAIC0xNDE5LDcgKzE0MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2 PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX3NTMV9TMV91Mgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2ln bmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMz IHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1LDcgKzE0NDUs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsK LStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAl NSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDU5LDcgKzE0NTksNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9z U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xNDczLDcgKzE0NzMsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwy IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBp MTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAot ICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkx Nj4sIGFsaWduIDgKLUBAIC0xNDg3LDcgKzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2Piwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9z U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4 IGkxNj4pICM5IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0g YWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxp Z24gMTYKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8 MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwx NiB4IGkxNj4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAg JTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkx Nj4sIGFsaWduIDMyCi1AQCAtMTUxNSw3ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkx Nj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIz Ml9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBp MTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE1MjksNyArMTUyOSw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8 MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIs IGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci1AQCAtMTczMCw3ICsxNzMwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pO N2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSBkZWNs YXJlIDwxIHggaTMyPiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkzMi52MWkzMi5pMTYoPDEgeCBp MzI+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3NDYsNyArMTc0Niw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAgZGVmaW5lIGlu dGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZi VF9faVMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRl cm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8 NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxp Z24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRf X2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2LDcgQEAgZGVm aW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJF RUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbWlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLUBAIC0yNzAyLDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBp MzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAj MTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAg LTI3MTYsNyArMjcxNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwy IHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMjczMCw3 ICsyNzMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+ KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0g YWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxp Z24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNzQ0LDcgKzI3 NDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMx NyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxv Y2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTI3NTgsNyArMjc1OCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMx OCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0g YWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBh bGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC0yNzcyLDcg KzI3NzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBp MzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1A QCAtMjc4Niw3ICsyNzg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9l eHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJv ZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19o UzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4s IDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxp Z24gMQotQEAgLTI4NjAsNyArMjg2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsK LSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0yOTA2LDcg KzI5MDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTJFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMx NCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAl NSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMwNDQsNyArMzA0NCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVF dTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5l IGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMy X2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0g YWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUy Q012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBp OCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMx MTYsNyArMzExNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9lCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4 PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFs bG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICszMTMwLDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5l IGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9o U18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8 MiB4IGk4PiwgYWxpZ24gMgotQEAgLTMxNDQsNyArMzE0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4 PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi NF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQK LUBAIC0zMTU4LDcgKzMxNTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8 OCB4IGk4PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0gICAl MyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3Miw3ICszMTcy LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYg ewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAlMyA9IGFsbG9j YSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2 Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3ICszMTg2LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewot K2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0g ICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzIwMCw3ICszMjAwLDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIzMl9oU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2 IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAy Ci0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2Piwg YWxpZ24gMgotQEAgLTMyNzgsNyArMzI3OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8 MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxs b2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci1AQCAtMzI5NCw3ICszMjk0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2 PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0z MzYwLDcgKzMzNjAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4 IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4s IGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM1NTgsNyAr MzU1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkx Nj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAg ICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBp MTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0z NjI0LDcgKzM2MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMx NF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBp MTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9l eHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBh bGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NTAsNyArMzY1MCw3IEBAIGRlZmluZSBk c29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYg emVyb2V4dCwgaTE2IHplCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18o PDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY2NCw3ICszNjY0LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4 IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkx Nj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot ICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkx Nj4sIGFsaWduIDQKLUBAIC0zNjc4LDcgKzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2Piwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90 U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQg eCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotQEAgLTM2OTIsNyArMzY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4 IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4p ICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9j YSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2 Ci1AQCAtMzcwNiw3ICszNzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHgg aTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBp MTY+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0g YWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBh bGlnbiAzMgotQEAgLTM3MjAsNyArMzcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNf KDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2Piwg PDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLUBAIC0zNzM0LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHgg aTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIp ICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dmpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9 IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot QEAgLTM4OTIsNyArMzg5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRh aWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4s IDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzkw OCw3ICszOTA4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBp MzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUz ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00MDU0LDcgKzQw NTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkyRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMx NiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxv Y2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIsNyArNDQ5Miw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkxNkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMx OSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0g YWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwg YWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NjM4 LDcgKzQ2MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxNF9f aW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFs IGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotICAg JTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2NCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBp MzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg PDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBp MzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci1AQCAtNDY3OCw3ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4s IDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJf alNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwy IHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFs aWduIDgKLUBAIC00NjkyLDcgKzQ2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQg eCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+ KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxv Y2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotQEAgLTQ3MDYsNyArNDcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkz Mj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMx NyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8 OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1A QCAtNDcyMCw3ICs0NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMy PiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+ KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxs b2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGln biA2NAotQEAgLTQ3MzQsNyArNDczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwz MiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMy IHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAg JTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLUBAIC00NzQ4LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHgg aTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMios IGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3By aW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7 Ci0gICAlOCA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICU5ID0gYWxsb2NhIGk4KiwgYWxpZ24g NAotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTQ5ODgsNyArNDk4OCw3IEBAIGRl ZmluZSBpbnRlcm5hbCB2b2lkIEBfWk43ZGV0YWlsczE2X2NtX3ByaW50X2Zvcm1hdElMaTEyOEVF RXYxNWNtX3N1cmZhY2VpbmRleGp1Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgq LCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLStk ZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkz MiosIGkzMiwgaTMyLCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0gICAlMTAgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlMTEgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAlMTIgPSBhbGxv Y2EgaTMyLCBhbGlnbiA0Ci1AQCAtNTA2OSw3ICs1MDY5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB2 b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkz MiwgaTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAhMTU5LCAh dGJhYSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwgYWxpZ24g MzIsICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVy QzJFUmpSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTMyKiBkZXJl ZmVyZW5jZWFibGUoNCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoNCkgJTE0LCBpMzIgJTY2 LCBpNjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFy eWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUyMyksICFk YmcgITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46NzA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBAIC01MTg3 LDcgKzUxODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1eGlsaWFy eV9zdHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQg IWRiZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAl Y2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFzcy5WYXJ5 aW5nV3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTYsNyArNTE5Niw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIxM1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4 KiwgIWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICExOTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVu Y29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGlu Z0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAsIGxhYmVs ICUxNiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDQsNyArNTIwNCw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIgJTE0LCBp MzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTE1ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEz VmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5 aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwgIWRiZyAh MjAyCi0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBAIC01Mjc5 LDcgKzUyNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJF UmpSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfX251bV9j b3JlcygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVtX2NvcmVz KCkgIzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0gCi1AQCAt ODg2MCw3ICs4ODYwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFpbHMzN19f Y21faW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJlIHZvaWQg QGxsdm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBpMzIsIDwx IHggaTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhF bmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0g ICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1X cml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg2OSw3ICs4ODY5LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNV bmlmb3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTQgdG8g aTgqLCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0rICAlOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8o aTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl NSksICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBAIC04ODc3 LDcgKzg4NzcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIy c3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgqIG5vY2Fw dHVyZSByZWFkb25seSwgaTMyLCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlz aW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJO U184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAg ewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5WYXJ5 aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4ODYsMTIgKzg4ODYsMTIgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlp bmdJMTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTQgdG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0r ICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU X1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0gICAlNCA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIs IGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iLCBhbGlnbiAxCi1AQCAtODkxNCw3ICs4OTE0LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4Kiwg IWRiZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTMyIDY0LCBpMSBmYWxzZSksICFk YmcgITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICExNjU4 Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBsYWJlbCAl NjAsIGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkyMiw3ICs4OTIyLDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwg aTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy ICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAhMTY2Mgot ICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAotIDsgPGxh YmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUy NQotQEAgLTg5MzAsNyArODkzMCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzIg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2NjUKLSAg ICUzMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2 NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl MzIsIGk4KiBhbGlnbiAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUzNCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFs aWduIDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUz NSwgIWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5MzgsNyArODkzOCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpMzIgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEy KSwgIWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotICAgYnIg aTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxhYmVsPjo0 MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAg LTg5NDYsNyArODk0Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0gICAlNDMg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzMKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBp OCogYWxpZ24gMzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWdu IDEgJTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwg IWRiZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NTQsNyArODk1NCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTUg dG8gaTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4LmkzMihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE2KSwg IWRiZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAgYnIgaTEg JTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVsPjo1MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTg5 NjIsNyArODk2Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAlNTMgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTUyLCBpOCog YWxpZ24gMzIgJTUzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEuc3RydWN0 ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEg JTE4KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRi ZyAhMTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5NzAsNyArODk3MCw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTkgdG8g aTgqLCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUyMCksICFk YmcgITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBiciBsYWJl bCAlNjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAl MjUsICUzCi1AQCAtODk3OSw3ICs4OTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTAwNSw3ICs5MDA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTAzMSw3ICs5MDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTA1Nyw3ICs5MDU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTA4Myw3ICs5MDgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 MjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEw OSw3ICs5MTA5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEzNSw3 ICs5MTM1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lk MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewot ICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE2MSw3ICs5 MTYxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05OTg0LDcgKzk5 ODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVf b2NsSVB2RUVOU18xOFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1 NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1NSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAl NiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAx Ci1AQCAtMTAwMDcsNyArMTAwMDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIy ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJnICEyMDU3Ci0g ICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIw NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIg JTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA1NywgIXRi YWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSsgICUyNCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEgJTYpLCAhZGJnICEyMDU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1 LCAhZGJnICEyMDU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC0xMDAxNSw3ICsxMDAxNSw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl NyB0byBpOCosICFkYmcgITIwNjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwg IWRiZyAhMjA2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSAgIGJyIGkxICUy OSwgbGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITIwNjMKLSAKLSA7IDxsYWJlbD46MzA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDAy Myw3ICsxMDAyMyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNjUKLSAgICUzMyA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2NQotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBh bGlnbiAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY1LCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITIwNjYKLSsgICUzNCA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEw KSwgIWRiZyAhMjA2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAh MjA2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICUzMAotQEAgLTEwMDMxLDcgKzEwMDMxLDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBp OCosICFkYmcgITIwNjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMjA2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICEyMDY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJn ICEyMDcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDcwCi0gICBiciBpMSAlMzks IGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICEyMDcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwMzks NyArMTAwMzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3MwotICAgJTQzID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDczCi0gICBjYWxs IHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFs aWduIDMyICU0MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzMsICF0YmFhLnN0cnVjdCAh MTk3Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcgITIwNzQKLSsgICU0NCA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUx NCksICFkYmcgITIwNzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcg ITIwNzUKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlNDAKLUBAIC0xMDA0Nyw3ICsxMDA0Nyw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8g aTgqLCAhZGJnICEyMDc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITIwNzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMjA3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRi ZyAhMjA3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA3OAotICAgYnIgaTEgJTQ5 LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMjA3OQotIAotIDsgPGxhYmVsPjo1MDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDU1 LDcgKzEwMDU1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3Qg JWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODEKLSAgICU1MyA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MQotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBh bGlnbiAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDgxLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICEyMDgyCi0rICAlNTQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl MTgpLCAhZGJnICEyMDgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJn ICEyMDgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTUwCi1AQCAtMTAwNjMsNyArMTAwNjMsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFy eWluZ1dyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRv IGk4KiwgIWRiZyAhMjA4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0LCBpMSBmYWxz ZSksICFkYmcgITIwODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAh ZGJnICEyMDg2Ci0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotICAgYnIgbGFi ZWwgJTYwLCAhZGJnICEyMDgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwg JTI1LCAlMwotQEAgLTEwMDcyLDcgKzEwMDcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwODggewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIwODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAwOTgsNyArMTAwOTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NyB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjA5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDEyNCw3ICsxMDEyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEg ITE5MwotQEAgLTEwMTUwLDcgKzEwMTUwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITIxMTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtMTAxNzYsNyArMTAxNzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjEyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDIwMiw3ICsxMDIwMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTMzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMjI4LDcgKzEwMjI4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxNDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAyNTQsNyArMTAyNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIGIvYnVpbHRpbnMvYnVp bHRpbnMtY20tNjQubGwKLWluZGV4IDM5YTJkZDhiZS4uMzc1ZDAxYmVkIDEwMDY0NAotLS0tIGEv YnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0 LmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldyaXRlVmVjRWxl bUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFtZWRfYWRkciBj b25zdGFudCBbOCB4IGk4XSBjIiUwMTZsbFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7 Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0g ZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2KDwxIHgg aTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHgg aTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIg eCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFs bG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIK LUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0 IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgxOCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxp MTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcgQEAgZGVm aW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVF RXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVy bmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0 LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAt ODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4 PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwy IHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIK LSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4 PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0 IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUg ewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTkzMiw3 ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcg ewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9 IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18o PDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwx NiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWdu IDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8 MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4 IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4 PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4s Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBz aWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkg IzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFs aWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgsNyArMTA1 OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4gQGxsdm0u Z2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIsIGkzMiwg aTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2 PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1Nf KDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBp MTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0 Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2Rl dGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2 PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTM1 MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMy IHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMg ewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot QEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWdu ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYg c2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMg PSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhp MTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBp bnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NT Xyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEg eCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkx Nj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2 PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NT Xyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHgg aTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24g OAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkx Nj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkg ewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDgg eCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAg LTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4s IDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2Pikg IzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9j YSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24g MzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIg eCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4 IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQg ewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShp MzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0x NzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBp MzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4sIGkzMiwg aTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9p U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIg eCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19pUzFfUzFf dTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAg JTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBp MzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMxX1MxX3Uy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJf aVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMy PiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEy OAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRf X2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMy LCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHgg aTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAl MyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcxNiw3ICsy NzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAj MTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxs b2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4 Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3MzAsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0r ZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQg eCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAg JTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZp bmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi OF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkz Mj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4 X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2 IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0g ICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3Miw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNzg2LDcg KzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4 PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9TMV91MkNN Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNf KDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAt Mjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBp OD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAy Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkwNiw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0 X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGludGVybmFs IDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19o UzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4 IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9faFMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgo aTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQp ICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3ICszMTE2 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewot K2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18o PDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4 IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQg ewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMxNTgs NyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAj MTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0gYWxsb2Nh IDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAg JTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi OF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0rZGVmaW5l IGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2 X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4 PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0g YWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2 X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGlu dGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hT Xyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4Piwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hT Xyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwg aTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0g YWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1A QCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFp bHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2Piwg PDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjk0 LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkx Nj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAsNyArMzM2 MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsK LStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxv Y2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWdu IDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQsNyArMzYy NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYs IGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6 ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBp MTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4s IDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18o PDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBp MTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkx Nj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMx NSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAt MzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDgg eCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLSAg ICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2 PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0zNzA2 LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYg eCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7 Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2 IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1A QCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2 PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+ KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGln biA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLStk ZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBp MzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkz MiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzg5Miw3 ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1w bF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcgKzM5MDgs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJF RUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi NF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAgZGVmaW5l IGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVF dTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyArNDYzOCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9j YSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5lIGRzb19s b2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNf KDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHgg aTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBh bGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWdu IDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBp MzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAj MTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8 MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAg LTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0 IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDcw Niw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBp MzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUz ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwg YWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00NzIwLDcg KzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBp MzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0g ICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHgg aTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAt NDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwg PDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAj MTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIp ICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgq LCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAgICU4ID0g YWxsb2NhIGk4KiwgYWxpZ24gOAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA4Ci0gICAlMTAg PSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNTA3MCw3ICs1MDcwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBp MzIsIGkzMiwgaTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAh MTU5LCAhdGJhYSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwg YWxpZ24gMzIsICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5n V3JpdGVyQzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTY0 KiBkZXJlZmVyZW5jZWFibGUoOCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoOCkgJTE0LCBp MzIgJTY2LCBpNjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zhcnlp bmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUy MyksICFkYmcgITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46 NzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBA IC01MTg4LDcgKzUxODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1 eGlsaWFyeV9zdHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBj b21kYXQgIWRiZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFz cy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTcsNyArNTE5Nyw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIxM1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1 IHRvIGk4KiwgIWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICExOTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhF bmNvZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAs IGxhYmVsICUxNiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDUsNyAr NTIwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0 Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIg JTE0LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAg JTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5 aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJ MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwg IWRiZyAhMjAyCi0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBA IC01MjgwLDcgKzUyODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3Jp dGVyQzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBf X251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVt X2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0g Ci1AQCAtODg3MCw3ICs4ODcwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFp bHMzN19fY21faW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJl IHZvaWQgQGxsdm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBp MzIsIDwxIHggaTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVF Yk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0 NSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVu aWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg3OSw3ICs4ODc5LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZv cm1JMTNVbmlmb3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTQgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0r ICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlNSksICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBA IC04ODg3LDcgKzg4ODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgq IG5vY2FwdHVyZSByZWFkb25seSwgaTY0LCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcg ITE2NTAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFz cy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4OTYsMTIgKzg4OTYsMTIgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dy aXRlciogJTQgdG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICEx NjUzCi0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0g ICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1X cml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODkyNCw3ICs4OTI0LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRv IGk4KiwgIWRiZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxz ZSksICFkYmcgITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJn ICExNjU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBs YWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkzMiw3ICs4 OTMyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMy ICUyOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAh MTY2MgotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAot IDsgPGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICUyNQotQEAgLTg5NDAsNyArODk0MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0g ICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2 NjUKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMTY2NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUz NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxh YmVsICUzNSwgIWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5NDgsNyArODk0OCw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEgJTEyKSwgIWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAl MTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAot ICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxh YmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUz NQotQEAgLTg5NTYsNyArODk1Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0g ICAlNDMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2 NzMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIg JTQyLCBpOCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRi YWEuc3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVs ICU0NSwgIWRiZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NjQsNyArODk2NCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMTUgdG8gaTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEg JTE2KSwgIWRiZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAg YnIgaTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVs Pjo1MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQot QEAgLTg5NzIsNyArODk3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAl NTMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUy LCBpOCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEu c3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFs aWduIDEgJTE4KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1 NSwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5ODAsNyArODk4MCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MTkgdG8gaTgqLCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUy MCksICFkYmcgITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBi ciBsYWJlbCAlNjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwg JTMwLCAlMjUsICUzCi1AQCAtODk4OSw3ICs4OTg5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtOTAxNSw3ICs5MDE1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtOTA0MSw3ICs5MDQxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTA2Nyw3ICs5MDY3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTA5Myw3ICs5MDkzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3MjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTExOSw3ICs5MTE5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3MzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTE0NSw3ICs5MTQ1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 NDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE3 MSw3ICs5MTcxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1 MSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDAx Myw3ICsxMDAxMyw3IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJp bnRfdHlwZV9vY2xJUHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMDYxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDYxIHsKLSAgICU0ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24g MzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIs IGFsaWduIDEKLUBAIC0xMDAzNiw3ICsxMDAzNiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVy Ci0gICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcg ITIwNjMKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4Kiwg IWRiZyAhMjA2MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBh bGlnbiAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEy MDYzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotKyAg JTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSAlNiksICFkYmcgITIwNjQKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBs YWJlbCAlMjUsICFkYmcgITIwNjUKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDQ0LDcgKzEwMDQ0LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMjA2NwotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFy eWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVt Y3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTY0 IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEgJTgpLCAhZGJnICEyMDY4Ci0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2OAotICAg YnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2OQotIAotIDsgPGxhYmVs PjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQot QEAgLTEwMDUyLDcgKzEwMDUyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA3MQotICAg JTMzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDcx Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUz MiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzEsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3MgotKyAgJTM0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSAlMTApLCAhZGJnICEyMDcyCi0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1 LCAhZGJnICEyMDczCi0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtMTAwNjAsNyArMTAwNjAsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTExIHRvIGk4KiwgIWRiZyAhMjA3NQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dy aXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAw aTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTY0IDY0LCBp MSBmYWxzZSksICFkYmcgITIwNzUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTEx LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUx MiksICFkYmcgITIwNzYKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzYKLSAgIGJy IGkxICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzcKLSAKLSA7IDxsYWJlbD46 NDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBA IC0xMDA2OCw3ICsxMDA2OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDc5Ci0gICAl NDMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzkK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQy LCBpOCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3OSwgIXRiYWEu c3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA4MAotKyAgJTQ0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEgJTE0KSwgIWRiZyAhMjA4MAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0 NSwgIWRiZyAhMjA4MQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTEwMDc2LDcgKzEwMDc2LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxNSB0byBpOCosICFkYmcgITIwODMKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICEyMDgzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx NSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl MTYpLCAhZGJnICEyMDg0Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDg0Ci0gICBi ciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDg1Ci0gCi0gOyA8bGFiZWw+ OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1A QCAtMTAwODQsNyArMTAwODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4NwotICAg JTUzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDg3 Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1 MiwgaTgqIGFsaWduIDMyICU1MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwODcsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODgKLSsgICU1NCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICUxOCksICFkYmcgITIwODgKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAl NTUsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA5Miw3ICsxMDA5Miw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlMTkgdG8gaTgqLCAhZGJnICEyMDkxCi0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwOTEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA5MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQ djEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIg JTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx ICUyMCksICFkYmcgITIwOTIKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUx OSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDkyCi0g ICBiciBsYWJlbCAlNjAsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUz NSwgJTMwLCAlMjUsICUzCi1AQCAtMTAxMDEsNyArMTAxMDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKLUBAIC0xMDEyNyw3ICsxMDEyNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24g MSwgIXRiYWEgITE5MwotQEAgLTEwMTUzLDcgKzEwMTUzLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEz VmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZh cnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAx LCAhdGJhYSAhMTkzCi1AQCAtMTAxNzksNyArMTAxNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNW YXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC0xMDIwNSw3ICsxMDIwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Zh cnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMjMxLDcgKzEwMjMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzkgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMzkgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAyNTcsNyArMTAyNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC0xMDI4Myw3ICsxMDI4Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Zhcnlp Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ UHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxNTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUgYi9zcmNwa2dzL2lz cGMvdGVtcGxhdGUKaW5kZXggOWMzYWNiNDJhOWNmLi42OGZlZDVhNGM2NTkgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKQEAgLTEs MTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lzcGMnCiBwa2duYW1lPWlzcGMKLXZl cnNpb249MS4xNS4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTEuMTcuMAorcmV2aXNpb249MQogYXJj aHM9Ing4Nl82NCoiCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19O T19EVU1QUz1PTiAtREFSTV9FTkFCTEVEPU9GRiIKK2NvbmZpZ3VyZV9hcmdzPSItRElTUENfTk9f RFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UiCiBo b3N0bWFrZWRlcGVuZHM9ImNsYW5nIGNsYW5nLXRvb2xzLWV4dHJhIHB5dGhvbjMgbTQgYmlzb24g ZmxleCBsbHZtIgogbWFrZWRlcGVuZHM9Im5jdXJzZXMtZGV2ZWwgbmN1cnNlcy1saWJ0aW5mby1k ZXZlbCB6bGliLWRldmVsIgogc2hvcnRfZGVzYz0iQ29tcGlsZXIgZm9yIGhpZ2gtcGVyZm9ybWFu Y2UgU0lNRCBwcm9ncmFtbWluZyBvbiB0aGUgQ1BVIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFp bmVyPSJBbmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQlNELTMt Q2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vaXNwYy5naXRodWIuaW8iCiBkaXN0ZmlsZXM9Imh0 dHBzOi8vZ2l0aHViLmNvbS9pc3BjL2lzcGMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1j aGVja3N1bT0yNjU4ZmYwMGRjMDQ1YWM5ZmNlZmJmNmJkMjZkZmZhZjcyM2IwNTlhOTQyYTI3ZGY5 MWJiYjYxYmM1MDNhMjg1CitjaGVja3N1bT0zN2ZiMTA1NWQ2YzZiMjMyZTExMmQ4ZDUwMTQ1ZDcy NjgyNGVkNGQ4ZGE5M2E3Mzk2MzE1ZGNlYmE2Yzc2ZTYyCiBub2Nyb3NzPXllcwogbm9waWU9eWVz CiAKCkZyb20gN2RjNTBlOTkwMGUzNDk0MDk4NTUzNmIwMjdiMzViZmVkNzlkZjYzYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5h Z2VuY3k+CkRhdGU6IFR1ZSwgMyBNYXkgMjAyMiAwMToyMDowMyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMjQvMjZdIGxsdm0xNDogc3dpdGNoIHRvIHJ1bnRpbWVzIGJ1aWxkLgoKaHR0cHM6Ly9yZXZp ZXdzLmxsdm0ub3JnL3JHYWM3MDMxYjJiMmZhCmh0dHBzOi8vcmV2aWV3cy5sbHZtLm9yZy9EMTEw MzM4IzMwMjI5NTIKLS0tCiBzcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZSB8IDEwICsrKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpp bmRleCAzZTdlNmFiMmMwMGIuLmU3MzFhYTc2MTMwYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZt MTQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKQEAgLTUxLDcgKzUxLDgg QEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3Mr PSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAotX2VuYWJsZWRfcHJvamVj dHM9ImNsYW5nO2NsYW5nLXRvb2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7 bGlidW53aW5kO2xsZCIKK19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRy YTtsbGQiCitfZW5hYmxlZF9ydW50aW1lcz0iY29tcGlsZXItcnQ7bGliY3h4O2xpYmN4eGFiaTts aWJ1bndpbmQiCiAKIF9sbGRiX2VuYWJsZT15ZXMKIF9saWJvbXBfZW5hYmxlPW5vCkBAIC02Nyw5 ICs2OCw4IEBAIGVzYWMKIAogc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgogCi0jIG11 c3QgZ28gYmVmb3JlIGNsYW5nCiBpZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhl bgotCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKKwlfZW5hYmxlZF9ydW50aW1lcys9Ijtv cGVubXAiCiAJc3VicGFja2FnZXMrPSIgbGlib21wIGxpYm9tcC1kZXZlbCIKIAkjIGJlY2F1c2Ug b2YgY21ha2Ugbm9uc2Vuc2UgcmVmZXJlbmNpbmcgbGlib21wdGFyZ2V0LnNvLioKIAlkZXBlbmRz Kz0iIGxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTg4LDYgKzg4LDcgQEAgZmkK IHN1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCiAKIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExW TV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCitjb25maWd1cmVfYXJncys9 IiAtRExMVk1fRU5BQkxFX1JVTlRJTUVTPSR7X2VuYWJsZWRfcnVudGltZXN9IgogCiBwb3N0X3Bh dGNoKCkgewogCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhlbgpAQCAtMTU2LDcg KzE1Nyw4IEBAIHByZV9jb25maWd1cmUoKSB7CiAJCUNDPSIkQlVJTERfQ0MiIENYWD0iJEJVSUxE X0NYWCIgQ0ZMQUdTPSIkQlVJTERfQ0ZMQUdTIiBcCiAJCQlDWFhGTEFHUz0iJEJVSUxEX0NYWEZM QUdTIiBMREZMQUdTPSIkQlVJTERfTERGTEFHUyIgXAogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9C VUlMRF9UWVBFPVJlbGVhc2UgXAotCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVk X3Byb2plY3RzfQorCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3Rz fSBcCisJCQktRExMVk1fRU5BQkxFX1JVTlRJTUVTPSR7X2VuYWJsZWRfcnVudGltZXN9CiAJCW1h a2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4KIAkJbWFrZSAke21ha2Vqb2JzfSAtQyB0 b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0g JiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxzL1RhYmxlR2VuCgpGcm9tIDdl MmNmZTU2NGMxZjJlMDM2Y2Y2MmI2NTcyZTYxNGQxNjI4YTAzOTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRl OiBXZWQsIDQgTWF5IDIwMjIgMTQ6MDc6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDI1LzI2XSB6 aWc6IGZpeCBidWlsZC4KCi0tLQogc3JjcGtncy96aWcvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3ppZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvemlnL3RlbXBsYXRlCmluZGV4IDcyOGM1YTY0ZTlk Zi4uYzE3NWRlNjJjNWY3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3ppZy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3ppZy90ZW1wbGF0ZQpAQCAtNSw3ICs1LDcgQEAgcmV2aXNpb249MgogYXJjaHM9Ing4 Nl82NCogYWFyY2g2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogbWFrZV9jbWQ9bWFrZQotbWFrZWRl cGVuZHM9ImNsYW5nIGxsdm0xMiBsbGQtZGV2ZWwiCittYWtlZGVwZW5kcz0iY2xhbmcxMiBsbHZt MTIgbGxkMTItZGV2ZWwiCiBzaG9ydF9kZXNjPSJQcm9ncmFtbWluZyBsYW5ndWFnZSBkZXNpZ25l ZCBmb3Igcm9idXN0bmVzcywgb3B0aW1hbGl0eSwgYW5kIGNsYXJpdHkiCiBtYWludGFpbmVyPSJJ c2FhYyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPiIKIGxpY2Vuc2U9Ik1JVCIKCkZyb20g ZTBhZmZhNzhjY2JmMGM1YTBmMWIxNjQ2MzVjNWVkNjBjODNmNjkwYSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRh dGU6IFdlZCwgNCBNYXkgMjAyMiAwMzozOTo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMjZd IGxsdm0xNDogZml4IGJ1aWxkLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNSArLQogLi4uL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZpZy1sbHZt LWNvbmZpZy5oICAgIHwgIDkgKysrCiAuLi5sZS1tdXRsaWFyY2gtbGF5b3V0LW9uLW11c2wtaW4t Y2xhbmcucGF0Y2ggfCAzMSArKysrKysrKysKIC4uLmNoLWxvY2F0aW9ucy1mb3ItbGlidW53aW5k LWxpYmMtbGliYy5wYXRjaCB8IDY4ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbGx2bTE0 L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrLS0tCiA1IGZpbGVzIGNoYW5n ZWQsIDExNyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDUtZGlzYWJsZS1tdXRs aWFyY2gtbGF5b3V0LW9uLW11c2wtaW4tY2xhbmcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA3LWRpc2FibGUtbXVsdGlhcmNoLWxvY2F0aW9u cy1mb3ItbGlidW53aW5kLWxpYmMtbGliYy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDIxYWViY2YyZDY1OS4uMTVkYTExN2JmYjQ2IDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3Niw3ICs5NzYs NyBAQCBsaWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIuMV8xCiBsaWJjbGFuZy5zby4xMiBsaWJj bGFuZzEyLTEyLjAuMF8xCiBsaWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmcxMi1jcHAtMTIuMC4w XzEKIGxpYmxsZGIuc28uMTQgbGxkYi0xNC4wLjNfMQotbGliY2xhbmcuc28uMTQgbGliY2xhbmct MTQuMC4zXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNsYW5nLTE0LjAuM18xCiBsaWJjbGFuZy1jcHAu c28uMTQgbGliY2xhbmctY3BwLTE0LjAuM18xCiBsaWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4w LjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTItMTIuMC4wXzEKQEAgLTQxNzksNyArNDE3OSw4 IEBAIGxpYm9tcHRhcmdldC5ydGwuYW1kZ3B1LnNvIGxpYm9tcC0xNC4wLjNfMQogbGlib21wdGFy Z2V0LnJ0bC5jdWRhLnNvIGxpYm9tcC0xNC4wLjNfMQogbGlib21wdGFyZ2V0LnJ0bC54ODZfNjQu c28gbGlib21wLTE0LjAuM18xCiBsaWJhcmNoZXIuc28gbGlib21wLTE0LjAuM18xCi1saWJvbXB0 YXJnZXQuc28gbGlib21wLTE0LjAuM18xCitsaWJvbXBkLnNvIGxpYm9tcC1kZXZlbC0xNC4wLjNf MQorbGlib21wdGFyZ2V0LnNvIGxpYm9tcC1kZXZlbC0xNC4wLjNfMQogbGlibGxkYkludGVsRmVh dHVyZXMuc28uMTQgbGxkYi0xNC4wLjNfMQogbGliTFRPLnNvLjE0IGxsdm0xNC0xNC4wLjNfMQog bGliUmVtYXJrcy5zby4xNCBsbHZtMTQtMTQuMC4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTE0L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xNC9maWxl cy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMmZhMDhjOWJlNjk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaApAQCAtMCwwICsxLDkgQEAKKyNpbmNs dWRlIDxiaXRzL3dvcmRzaXplLmg+CisKKyNpZiBfX1dPUkRTSVpFID09IDMyCisjaW5jbHVkZSAi bGx2bS1jb25maWctMzIuaCIKKyNlbGlmIF9fV09SRFNJWkUgPT0gNjQKKyNpbmNsdWRlICJsbHZt LWNvbmZpZy02NC5oIgorI2Vsc2UKKyNlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCisjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA1LWRpc2FibGUtbXV0 bGlhcmNoLWxheW91dC1vbi1tdXNsLWluLWNsYW5nLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0 Y2hlcy9jbGFuZy0wMDUtZGlzYWJsZS1tdXRsaWFyY2gtbGF5b3V0LW9uLW11c2wtaW4tY2xhbmcu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNDhkOTliMTBk ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwNS1k aXNhYmxlLW11dGxpYXJjaC1sYXlvdXQtb24tbXVzbC1pbi1jbGFuZy5wYXRjaApAQCAtMCwwICsx LDMxIEBACitGcm9tIGNmZjkxN2M4NWI1MDk3ODllYzc1YjFlMjM0MzgzMWM1NzI5YTE5M2MgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KK0RhdGU6IFdlZCwgNiBBcHIgMjAyMiAwMDo1MjoyMyArMDIwMAorU3ViamVjdDog W1BBVENIIDA1LzIyXSBkaXNhYmxlIG11dGxpYXJjaCBsYXlvdXQgb24gbXVzbCBpbiBjbGFuZwor CitXZSBkb24ndCB1c2UgYSBtdWx0aWFyY2ggbGF5b3V0IGFuZCB3ZSBkb24ndCByZWFsbHkgY2Fy ZSBmb3IKK2RlYmlhbmlzbXMsIHNvIGVtdWxhdGUgd2hhdGV2ZXIgYSBub24tbXVsdGlhcmNoIGdj YyB0b29sY2hhaW4KK3dvdWxkIGRvIGFuZCB1c2UgYW4gZW1wdHkgdGhpbmcuCistLS0KKyBjbGFu Zy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGludXguY3BwIHwgNSArKysrKworIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9v bENoYWlucy9MaW51eC5jcHAgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGludXguY3Bw CitpbmRleCBmODVjMDRkZjQuLjEzY2JkYmRjNyAxMDA2NDQKKy0tLSBhL2NsYW5nL2xpYi9Ecml2 ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlu cy9MaW51eC5jcHAKK0BAIC00Niw2ICs0NiwxMSBAQCBzdGQ6OnN0cmluZyBMaW51eDo6Z2V0TXVs dGlhcmNoVHJpcGxlKGNvbnN0IERyaXZlciAmRCwKKyAgIGJvb2wgSXNNaXBzUjYgPSBUYXJnZXRU cmlwbGUuZ2V0U3ViQXJjaCgpID09IGxsdm06OlRyaXBsZTo6TWlwc1N1YkFyY2hfcjY7CisgICBi b29sIElzTWlwc04zMkFiaSA9IFRhcmdldFRyaXBsZS5nZXRFbnZpcm9ubWVudCgpID09IGxsdm06 OlRyaXBsZTo6R05VQUJJTjMyOworIAorKyAgLyogd2UgYXJlIG5vdCBtdWx0aWFyY2ggKi8KKysg IGlmIChUYXJnZXRUcmlwbGUuaXNNdXNsKCkpIHsKKysgICAgcmV0dXJuICIiOworKyAgfQorKwor ICAgLy8gRm9yIG1vc3QgYXJjaGl0ZWN0dXJlcywganVzdCB1c2Ugd2hhdGV2ZXIgd2UgaGF2ZSBy YXRoZXIgdGhhbiB0cnlpbmcgdG8gYmUKKyAgIC8vIGNsZXZlci4KKyAgIHN3aXRjaCAoVGFyZ2V0 VHJpcGxlLmdldEFyY2goKSkgeworLS0gCisyLjM1LjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9sbHZtLTAwNy1kaXNhYmxlLW11bHRpYXJjaC1sb2NhdGlvbnMtZm9yLWxp YnVud2luZC1saWJjLWxpYmMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA3 LWRpc2FibGUtbXVsdGlhcmNoLWxvY2F0aW9ucy1mb3ItbGlidW53aW5kLWxpYmMtbGliYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNlZjc0OTlkNjA4Mgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDctZGlzYWJs ZS1tdWx0aWFyY2gtbG9jYXRpb25zLWZvci1saWJ1bndpbmQtbGliYy1saWJjLnBhdGNoCkBAIC0w LDAgKzEsNjggQEAKK0Zyb20gOTJhM2I3M2RmZWM5Yzg1YTUzNmVkOTljNTU3MDIzMWMzMzNhZDFl OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCA2IEFwciAyMDIyIDAwOjU3OjU4ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0ggMDgvMjJdIGRpc2FibGUgbXVsdGlhcmNoIGxvY2F0aW9ucyBmb3IKKyBsaWJ1 bndpbmQvbGliYysrL2xpYmMrK2FiaQorCistLS0KKyBsaWJjeHgvQ01ha2VMaXN0cy50eHQgICAg ICAgICAgICB8IDIgKy0KKyBsaWJjeHgvYmVuY2htYXJrcy9DTWFrZUxpc3RzLnR4dCB8IDIgKy0K KyBsaWJjeHhhYmkvQ01ha2VMaXN0cy50eHQgICAgICAgICB8IDIgKy0KKyBsaWJ1bndpbmQvQ01h a2VMaXN0cy50eHQgICAgICAgICB8IDIgKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4 dCBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAoraW5kZXggMzVjMmNlNTE1Li4xOWY0MjNiZjAgMTAw NjQ0CistLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3Rz LnR4dAorQEAgLTQzMiw3ICs0MzIsNyBAQCBzZXQoTElCQ1hYX0lOU1RBTExfSU5DTFVERV9ESVIg IiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS9jKysvdjEiIENBQ0hFIFBBVEgKKyBzZXQoTElC Q1hYX0lOU1RBTExfUlVOVElNRV9ESVIgIiR7Q01BS0VfSU5TVEFMTF9CSU5ESVJ9IiBDQUNIRSBQ QVRICisgICAgICJQYXRoIHdoZXJlIGJ1aWx0IGxpYmMrKyBydW50aW1lIGxpYnJhcmllcyBzaG91 bGQgYmUgaW5zdGFsbGVkLiIpCisgCistaWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1F X0RJUiBBTkQgTk9UIEFQUExFKQorK2lmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRfUlVOVElNRV9E SVIgQU5EIE5PVCBBUFBMRSBBTkQgTk9UIENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkxpbnV4 IikKKyAgIHNldChMSUJDWFhfTElCUkFSWV9ESVIgJHtMTFZNX0xJQlJBUllfT1VUUFVUX0lOVERJ Un0vJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0pCisgICBzZXQoTElCQ1hYX0dFTkVSQVRF RF9JTkNMVURFX0RJUiAiJHtMTFZNX0JJTkFSWV9ESVJ9L2luY2x1ZGUvYysrL3YxIikKKyAgIHNl dChMSUJDWFhfR0VORVJBVEVEX0lOQ0xVREVfVEFSR0VUX0RJUiAiJHtMTFZNX0JJTkFSWV9ESVJ9 L2luY2x1ZGUvJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0vYysrL3YxIikKK2RpZmYgLS1n aXQgYS9saWJjeHgvYmVuY2htYXJrcy9DTWFrZUxpc3RzLnR4dCBiL2xpYmN4eC9iZW5jaG1hcmtz L0NNYWtlTGlzdHMudHh0CitpbmRleCA5NWUyODYxOGIuLjkwNmFiZGI0ZSAxMDA2NDQKKy0tLSBh L2xpYmN4eC9iZW5jaG1hcmtzL0NNYWtlTGlzdHMudHh0CisrKysgYi9saWJjeHgvYmVuY2htYXJr cy9DTWFrZUxpc3RzLnR4dAorQEAgLTI2LDcgKzI2LDcgQEAgc2V0KEJFTkNITUFSS19MSUJDWFhf Q09NUElMRV9GTEFHUworICAgICAtV2wsLXJwYXRoLCR7TElCQ1hYX0xJQlJBUllfRElSfQorICAg ICAke1NBTklUSVpFUl9GTEFHU30KKyAgICAgKQorLWlmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRf UlVOVElNRV9ESVIgQU5EIE5PVCBBUFBMRSkKKytpZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JV TlRJTUVfRElSIEFORCBOT1QgQVBQTEUgQU5EIE5PVCBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVT ICJMaW51eCIpCisgICBsaXN0KEFQUEVORCBCRU5DSE1BUktfTElCQ1hYX0NPTVBJTEVfRkxBR1MK KyAgICAgLWlzeXN0ZW0gIiR7TElCQ1hYX0dFTkVSQVRFRF9JTkNMVURFX1RBUkdFVF9ESVJ9IikK KyBlbmRpZigpCitkaWZmIC0tZ2l0IGEvbGliY3h4YWJpL0NNYWtlTGlzdHMudHh0IGIvbGliY3h4 YWJpL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZThjZGY4YWQuLjk0ZTYyNWY0NCAxMDA2NDQKKy0t LSBhL2xpYmN4eGFiaS9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4YWJpL0NNYWtlTGlzdHMu dHh0CitAQCAtMjI2LDcgKzIyNiw3IEBAIHNldChDTUFLRV9NT0RVTEVfUEFUSAorIHNldChMSUJD WFhBQklfSU5TVEFMTF9SVU5USU1FX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iIENBQ0hF IFBBVEgKKyAgICAgIlBhdGggd2hlcmUgYnVpbHQgbGliYysrYWJpIHJ1bnRpbWUgbGlicmFyaWVz IHNob3VsZCBiZSBpbnN0YWxsZWQuIikKKyAKKy1pZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JV TlRJTUVfRElSIEFORCBOT1QgQVBQTEUpCisraWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5U SU1FX0RJUiBBTkQgTk9UIEFQUExFIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAi TGludXgiKQorICAgc2V0KExJQkNYWEFCSV9IRUFERVJfRElSICR7TExWTV9CSU5BUllfRElSfSkK KyAgIHNldChMSUJDWFhBQklfTElCUkFSWV9ESVIgJHtMTFZNX0xJQlJBUllfT1VUUFVUX0lOVERJ Un0vJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0pCisgICBzZXQoTElCQ1hYQUJJX0lOU1RB TExfTElCUkFSWV9ESVIgbGliJHtMTFZNX0xJQkRJUl9TVUZGSVh9LyR7TExWTV9ERUZBVUxUX1RB UkdFVF9UUklQTEV9IENBQ0hFIFBBVEgKK2RpZmYgLS1naXQgYS9saWJ1bndpbmQvQ01ha2VMaXN0 cy50eHQgYi9saWJ1bndpbmQvQ01ha2VMaXN0cy50eHQKK2luZGV4IDY1MjNmYjBkMy4uYTYzYjg4 ZjMxIDEwMDY0NAorLS0tIGEvbGlidW53aW5kL0NNYWtlTGlzdHMudHh0CisrKysgYi9saWJ1bndp bmQvQ01ha2VMaXN0cy50eHQKK0BAIC0xNTgsNyArMTU4LDcgQEAgc2V0KExJQlVOV0lORF9JTlNU QUxMX0lOQ0xVREVfRElSICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0iIENBQ0hFIFBBVEgK KyBzZXQoTElCVU5XSU5EX0lOU1RBTExfUlVOVElNRV9ESVIgIiR7Q01BS0VfSU5TVEFMTF9CSU5E SVJ9IiBDQUNIRSBQQVRICisgICAgICJQYXRoIHdoZXJlIGJ1aWx0IGxpYnVud2luZCBydW50aW1l IGxpYnJhcmllcyBzaG91bGQgYmUgaW5zdGFsbGVkLiIpCisgCistaWYoTExWTV9FTkFCTEVfUEVS X1RBUkdFVF9SVU5USU1FX0RJUiBBTkQgTk9UIEFQUExFKQorK2lmKExMVk1fRU5BQkxFX1BFUl9U QVJHRVRfUlVOVElNRV9ESVIgQU5EIE5PVCBBUFBMRSBBTkQgTk9UIENNQUtFX1NZU1RFTV9OQU1F IE1BVENIRVMgIkxpbnV4IikKKyAgIHNldChMSUJVTldJTkRfTElCUkFSWV9ESVIgJHtMTFZNX0xJ QlJBUllfT1VUUFVUX0lOVERJUn0vJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0pCisgICBz ZXQoTElCVU5XSU5EX0lOU1RBTExfTElCUkFSWV9ESVIgbGliJHtMTFZNX0xJQkRJUl9TVUZGSVh9 LyR7TExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEV9IENBQ0hFIFBBVEgKKyAgICAgICAiUGF0aCB3 aGVyZSBidWlsdCBsaWJ1bndpbmQgbGlicmFyaWVzIHNob3VsZCBiZSBpbnN0YWxsZWQuIikKKy0t IAorMi4zNS4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlIGIvc3JjcGtn cy9sbHZtMTQvdGVtcGxhdGUKaW5kZXggZTczMWFhNzYxMzBhLi44MTA3YzFkMzM5ZTIgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBs YXRlCkBAIC0xNSw2ICsxNSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIKICAtRExJQkNYWEFCSV9FTkFC TEVfU1RBVElDX1VOV0lOREVSPVlFUwogIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCiAgLURM SUJPTVBfSU5TVEFMTF9BTElBU0VTPU5PCisgLURDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9P TkxZPVlFUwogIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCiAgLURMTFZNX0JVSUxEX0RPQ1M9WUVT CiAgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCkBAIC0zOCw2ICszOSw3IEBAIGRpc3RmaWxlcz0i aHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xs dm1vcmctJHt2ZXJzCiBjaGVja3N1bT00NGQzZTdhNzg0ZDVjZjgwNWU3Mjg1M2JiMDNmMjE4YmQx MDU4ZDQ0OGMwM2NhODgzZGFiYmViYzk5MjA0ZTBjCiBsaWIzMmRpc2FibGVkPXllcwogcHl0aG9u X3ZlcnNpb249Mworbm9waWVfZmlsZXM9Ii91c3IvYmluL2xsdm0tb21wLWRldmljZS1pbmZvIgog CiBpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCWNvbmZpZ3VyZV9h cmdzKz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9WUVTIgpAQCAtMTM2LDggKzEzOCw3IEBAIHBv c3RfcGF0Y2goKSB7CiB9CiAKIHByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwgdHJpcGxldAotCisJ bG9jYWwgdHJpcGxldD0ke1hCUFNfQ1JPU1NfVFJJUExFVDotJFhCUFNfVFJJUExFVH0KIAkjIFZh c3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9sczoKIAlDRkxBR1M9JHtDRkxBR1Mv IC1nLyAtZzF9CiAJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KQEAgLTE4MCw4ICsxODEs NiBAQCBwcmVfY29uZmlndXJlKCkgewogCQlyaXNjdjY0KikgX2FyY2g9IlJJU0NWNjQiOzsKIAll c2FjCiAKLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfQotCiAJ Y29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9IgogCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBsZXR9IgogCWNvbmZpZ3VyZV9hcmdz Kz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0cmlwbGV0fSIKQEAgLTI1MSw3ICsy NTAsNyBAQCBjbGFuZy10b29scy1leHRyYV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9s aWJjbGFuZ1F1ZXJ5KiIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKIAkJdm1vdmUg InVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9v bHMKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nLXRvb2xzCiAJCXZtb3ZlIHVzci9z aGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQogCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21h bjEvZGlhZ3Rvb2wuMQogCX0KQEAgLTI3Myw3ICsyNzIsNyBAQCBjbGFuZ19wYWNrYWdlKCkgewog CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmcq LnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFu ZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL0xMVk0vY2xhbmcKIAkJdm1vdmUgdXNyL3NoYXJlL21h bi9tYW4xL2NsYW5nLjEKIAl9CiB9CkBAIC0zMDEsNyArMzAwLDcgQEAgbGxkX3BhY2thZ2UoKSB7 CiAJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAogCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKIAkJdm1v dmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwkJdm1vdmUg dXNyL3NoYXJlL2RvYy9MTFZNL2xsZAogCX0KIH0KIApAQCAtMzU1LDcgKzM1NCw2IEBAIGxsdm0t bGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLmEK IAkJdm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgogCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNo LW8KLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKIAl9CiB9CiAKQEAgLTM5MSw3ICsz ODksNiBAQCBsaWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9saWJjKysu YQogCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCiAJCXZtb3ZlIHVzci9pbmNs dWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAogCX0KIH0KIApAQCAtNDAxLDcg KzM5OCw2IEBAIGxpYm9tcF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbwog CQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVzci9saWIv bGliYXJjaGVyLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28uKiIKIAl9CiB9CiAKQEAg LTQxMyw4ICs0MDksNiBAQCBsaWJvbXAtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9s aWIvbGliYXJjaGVyKiIKIAkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKIAkJdm1vdmUgInVz ci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNyL3NoYXJl L21hbi9tYW4xL2xsdm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5tcAogCX0K IH0KIAo= --===============7042650374300135509==--