From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 15713 invoked from network); 30 Mar 2022 20:50:12 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 30 Mar 2022 20:50:12 -0000 Content-Type: multipart/mixed; boundary="===============9123032447929664997==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm13?= To: ml@inbox.vuxu.org From: motorto Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 30 Mar 2022 22:50:12 +0200 List-Id: Message-ID: <20220330205012.rWe4QMdHCQBa6LZE_uA0HdfTR0SQR7OAehmcQGd6uqM@z> GitHub notification mails are now in MIME to allow UTF8. --===============9123032447929664997== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW90b3J0byBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vbW90 b3J0by92b2lkLXBhY2thZ2VzIGxsdm0xMwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkKCkxsdm0xMwpUaGlzIGFkZHMgTExWTSAxMyBhbmQgdXBk YXRlcyBmcm9tIExMVk0gMTIuDQoNCldvcmstaW4tcHJvZ3Jlc3MNCg0KVGhlIGZvbGxvd2luZyBw YWNrYWdlcyB3ZXJlIHJlbW92ZWQ6DQogKiBiZWlnbmV0IC0tIHVwc3RyZWFtIGlzIGRlYWQNCiAq IHJ1bmRpcmQgLS0gIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdXBzdHJlYW0gd2hpY2ggcmVjb21t ZW5kcyB1c2luZyBkdW1iX3J1bnRpbWVfZGlyDQoNClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2Vy ZSB1cGRhdGVkIG9yIHBhdGNoZWQ6DQogKiBpc3BjDQogKiBxdGNyZWF0b3INCiAqIHJpdmVyDQog KiB6aWcNCg0KUmVidWlsdCBwYWNrYWdlczoNCg0KKHJlYnVpbHQgYmFzZWQgb24gb3V0cHV0IG9m OiAgYHhyZXZzaGxpYiBsaWJsbHZtezEyLDEzfWAgKQ0KDQoNCiogU1BJUlYtTExWTS1UcmFuc2xh dG9yDQoqIGJjYw0KKiBicGZ0cmFjZSANCiogY2NscyANCiogY2xhenkgDQoqIGNvZGVsaXRlIA0K KiBnaGRsDQoqIGdub21lLWJ1aWxkZXINCiogaW5jbHVkZS13aGF0LXlvdS11c2UgDQoqIGp1Q2kr KyANCioga2RldmVsb3AgDQoqIGxkYw0KKiBtZXNhIA0KKiBxdDUgDQoqIHJ0YWdzIA0KKiBydXN0 DQoqIHNoaWJva2VuMiANCiogdGlsaXgNCg0KVXBkYXRlZCBUZW1wbGF0ZXM6DQoNCiogQ2hyb21p dW0NCg0KKEkgYW0gcHJvYmFibHkgbWlzc2luZyBzb21lIHBhY2thZ2VzKQ0KDQoNClRoYW5rcyBA REJMb3VpcyBmb3IgeW91ciBoYXJkIHdvcmshIA0KDQogW2NpIHNraXBdDQogDQogSSBudWtlZCB0 aGUgIzM1ODk1CgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============9123032447929664997== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm13-36229.patch" RnJvbSBjMzA5ZDJjNzJlOTBiNTZkNjBiYWRhMjc5NjYyOTNhNDg1NDhmOTNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9u aT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAy MDIxIDE2OjIxOjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8zMF0gTmV3IHBhY2thZ2U6IGxs dm0xMy0xMy4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6ZXIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1leHRyYSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL2xpYmxsdm0xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4u Li9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSArCiAuLi5j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgKysKIC4uLi9w YXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKwogLi4u L2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKwogLi4uL2Nv bXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggICAgICAgIHwgIDExICsKIC4uLi9jb21w aWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCAgICB8ICAzNSArKwogLi4uL3BhdGNo ZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyICsrKwogc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCAgICAgIHwgIDI2ICsrCiBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggICAgICAgfCAgMjIgKwogLi4uL2xsdm0xMy9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIHwgIDExICsKIHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoICAgICB8ICAyNSArKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggIHwgIDYzICsrKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxICsrCiBzcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAgNTcgKysrCiAuLi4vcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoICAgfCAgMzAgKysKIC4uLi9wYXRjaGVzL2xsdm0t MDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAxMSArCiAuLi4vcGF0Y2hlcy9sbHZtLTAw NC1vdmVycmlkZS1vcHQucGF0Y2ggICAgICAgfCAgMTggKwogLi4uL2xsdm0xMy9wYXRjaGVzL2xs dm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggIHwgIDM2ICsrCiAuLi4vcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggICAgfCAgMjUgKysKIC4uLi9sbHZtMTMvcGF0Y2hlcy9wcGMz Mi1jb21waWxlci1ydC5wYXRjaCAgICB8ICAyMSArCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCA0MjMgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xMy91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogNDIgZmlsZXMgY2hh bmdlZCwgMTE2NSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL2xpYmxsdm0xMwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x My9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVz bC1lbGZ2Mi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv Y29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAw Mi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IGNjYzU1YTFiMzc3Mi4uNzU2MTU4NWVjNTZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3MywxMSArOTczLDEyIEBAIGxpYnVjaGFyZGV0LnNvLjAg dWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZp ZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIg Y29uZnVzZS0zLjIuMV8xCi1saWJsbGRiLnNvLjEyIGxsZGItMTIuMC4wXzEKLWxpYmNsYW5nLnNv LjEyIGxpYmNsYW5nLTEyLjAuMF8xCi1saWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmctY3BwLTEy LjAuMF8xCitsaWJsbGRiLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNs YW5nLTEzLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTMgbGliY2xhbmctY3BwLTEzLjAuMF8xCiBs aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTIt MTIuMC4wXzEKK2xpYkxMVk0tMTMuc28gbGlibGx2bTEzLTEzLjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpAQCAtNDE0NSwzICs0MTQ2LDEyIEBAIGxpYnJ6X2xh bmcuc28uMC4zLjQgcml6aW4tMC4zLjRfMQogbGlicnpfc2VhcmNoLnNvLjAuMy40IHJpemluLTAu My40XzEKIGxpYnJ6X2Jpbi5zby4wLjMuNCByaXppbi0wLjMuNF8xCiBsaWJhcmF2aXMtMC44LnNv LjAgbGliYXJhdmlzLTAuOC4yMV8xCitsaWJvbXAuc28gbGlib21wLTEzLjAuMF8xCitsaWJvbXB0 YXJnZXQucnRsLmFtZGdwdS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwuY3Vk YS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwueDg2XzY0LnNvIGxpYm9tcC0x My4wLjBfMQorbGliYXJjaGVyLnNvIGxpYm9tcC0xMy4wLjBfMQorbGlib21wdGFyZ2V0LnNvIGxp Ym9tcC0xMy4wLjBfMQorbGlibGxkYkludGVsRmVhdHVyZXMuc28uMTMgbGxkYi0xMy4wLjBfMQor bGliTFRPLnNvLjEzIGxsdm0xMy0xMy4wLjBfMQorbGliUmVtYXJrcy5zby4xMyBsbHZtMTMtMTMu MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5nCmluZGV4IGNk NjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nCisrKyBi L3NyY3BrZ3MvY2xhbmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2xhbmctYW5hbHl6ZXIgYi9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCmluZGV4IGNkNjBm ZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVy CisrKyBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEgYi9zcmNwa2dzL2NsYW5nLXRv b2xzLWV4dHJhCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9z cmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmcg Yi9zcmNwa2dzL2xpYmNsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAw MAotLS0gYS9zcmNwa2dzL2xpYmNsYW5nCisrKyBiL3NyY3BrZ3MvbGliY2xhbmcKQEAgLTEgKzEg QEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmctY3BwIGIvc3Jj cGtncy9saWJjbGFuZy1jcHAKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAw Ci0tLSBhL3NyY3BrZ3MvbGliY2xhbmctY3BwCisrKyBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCkBA IC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eCBiL3Ny Y3BrZ3MvbGliY3h4CmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0g YS9zcmNwa2dzL2xpYmN4eAorKysgYi9zcmNwa2dzL2xpYmN4eApAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHgtZGV2ZWwgYi9zcmNwa2dzL2xpYmN4 eC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3Jj cGtncy9saWJjeHgtZGV2ZWwKKysrIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpIGIvc3JjcGtncy9s aWJjeHhhYmkKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGliY3h4YWJpCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbCBiL3NyY3BrZ3Mv bGliY3h4YWJpLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZl bApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEz ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZt MTMgYi9zcmNwa2dzL2xpYmxsdm0xMwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAw MDAwMDAuLmQ2MzY2ZDdkM2I5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTEz CkBAIC0wLDAgKzEgQEAKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGlib21wIGIvc3JjcGtncy9saWJvbXAKaW5kZXggY2Q2MGZkN2E5ODFi Li5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wCisrKyBiL3NyY3BrZ3Mv bGlib21wCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCits bHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp Ym9tcC1kZXZlbCBiL3NyY3BrZ3MvbGlib21wLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYz NjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYm9tcC1kZXZlbAorKysgYi9zcmNwa2dz L2xpYm9tcC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbGQgYi9zcmNwa2dzL2xsZAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGQKKysrIGIvc3JjcGtncy9sbGQKQEAgLTEgKzEgQEAKLWxs dm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkLWRldmVsIGIvc3JjcGtncy9sbGQt ZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3Br Z3MvbGxkLWRldmVsCisrKyBiL3NyY3BrZ3MvbGxkLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZGIgYi9zcmNwa2dzL2xsZGIKaW5kZXggY2Q2 MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9z cmNwa2dzL2xsZGIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkYi1kZXZlbCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2 MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiLWRldmVsCisrKyBiL3NyY3BrZ3Mv bGxkYi1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtLWxpYnVud2luZCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKaW5kZXggY2Q2MGZkN2E5 ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKKysr IGIvc3JjcGtncy9sbHZtLWxpYnVud2luZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbCBiL3NyY3BrZ3MvbGx2bS1saWJ1 bndpbmQtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBh L3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbHZtLWxpYnVud2lu ZC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor bGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTEzL2Zp bGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yZmEwOGM5YmU2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xs dm0xMy9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCkBAIC0wLDAgKzEsOSBAQAorI2lu Y2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KKworI2lmIF9fV09SRFNJWkUgPT0gMzIKKyNpbmNsdWRl ICJsbHZtLWNvbmZpZy0zMi5oIgorI2VsaWYgX19XT1JEU0laRSA9PSA2NAorI2luY2x1ZGUgImxs dm0tY29uZmlnLTY0LmgiCisjZWxzZQorI2Vycm9yICJVbmtub3duIHdvcmQgc2l6ZSIKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2lu ZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAw MS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVl M2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2Fs ZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyAr MDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKwor LS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVh ZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUx MGNjIDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5n L2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEg RGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLwor IAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAor LQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQu aD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRo YXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMg ZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAj IGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9f Q0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3Bs dXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJl bEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlm IC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFO R19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBA IC0wLDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNw cAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcg KzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRk RGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJp cGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3Vz ZS1saW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmki LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wt bGludXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJE aXJzW10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBs ZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1 Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6 OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAi cG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5r bm93bi1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAK KyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0Iiwg Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsK K0BAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9u RGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAor KyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAg ICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAg ICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsi YXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZf NjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Cisr ICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAg ICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1p cHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4 LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBj NjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2go KSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFw cGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJj aDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJj aDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysg ICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsK KysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxl OjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1I Rk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQo QVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAg ICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxl cyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBl bmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11 c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQo WDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlw bGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQo TUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVz bFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hM aWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Cisr ICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyks IGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMp LCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBs ZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxp YkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Cisr ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xF TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xF TXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAg ICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVz aF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkg IT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9i YWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFu ZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVz LgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRh ZDY0MTJkMWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xh bmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAor LS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3Rk OjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29u c3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQor LSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2 NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1 ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwNC1w cGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9C YXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAor QEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0g Jmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdl dEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9 ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVs c2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAg QUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAo VHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlz TXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7 CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGli L0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRh cmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsK KyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywg LypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYo KSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZS NF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVs ZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAg IFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpF TEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAg ICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0 RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJu IFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAK KysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0 ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZB cmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxl KCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29s Q2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7Cist ICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEz KSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAg IEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxm djEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJl bGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44OTNjMDU5ZDdiOGQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gK QEAgLTAsMCArMSwxMSBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24v c2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCitAQCAtMTc5OSw3ICsxNzk5LDcgQEAKKyAKKyBz dGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikg eworICAgc3RhdGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOworLSAgdTggKmF1 eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOworKyAgdTggKmF1eCA9IHJlaW50 ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOworICAg d2hpbGUgKHRydWUpIHsKKyAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICop YXV4OworICAgICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNWYxNmQyNGYz NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKKy0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKKysrKyBiL2Nv bXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKK0BAIC03 NCw2ICs3NCwxMCBAQAorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorICNlbmRpZgorIAorKyNp ZiBTQU5JVElaRVJfTElOVVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKyNlbmRpZgorKworICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpF Ul9BTkRST0lECisgI2luY2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgorICNlbmRpZgorLS0tIGEv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0 c19wb3NpeC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0 aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCitAQCAtOTIsNyArOTIsNyBAQAorICMgaW5j bHVkZSA8dXRpbWUuaD4KKyAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyAjaWYgZGVmaW5lZChf X21pcHM2NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc CistICAgIFNBTklUSVpFUl9SSVNDVjY0CisrICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNB TklUSVpFUl9SSVNDVjY0CisgIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorICMgIGlmZGVmIF9f YXJtX18KKyB0eXBlZGVmIHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKKy0tLSBh L2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRf bGludXhfbGliY2RlcC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9u L3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKK0BAIC0zMSw3ICszMSw3 IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKKyAjaW5jbHVkZSA8c3lz L3Vpby5oPiAvLyBmb3IgaW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRV UworLSNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFT QU5JVElaRVJfQU5EUk9JRAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAor IC8vIEdMSUJDIDIuMjArIHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCisg IyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBjODk3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11 c2wucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3hyYXkveHJh eV9wb3dlcnBjNjQuaW5jCisrKysgYi9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2 NC5pbmMKK0BAIC0xMiw3ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNs dWRlIDxtdXRleD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9w cGMuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1ZGUgPGNzdHJpbmc+Cisr I2luY2x1ZGUgPGNzdGRsaWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgInhyYXlfZGVmcy5oIgor IAorQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsKKyAKKyBBTFdBWVNfSU5M SU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQg eworICAgQ1BVID0gMDsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1cm4gX19wcGNfZ2V0X3Rp bWViYXNlKCk7CisrI2Vsc2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBjX2dldF90aW1lYmFzZSgp OworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFNDRnJlcXVlbmN5KCkgWFJB WV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4IE07CisgICBzdGQ6Omxv Y2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0 dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysgIC8qIEZJWE1FOiBhIGxl c3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCisrICBzdGF0aWMgdWludDY0X3QgYmFzZTsKKysg IGlmICghYmFzZSkgeworKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAicmIi KTsKKysgICAgaWYgKGYpIHsKKysgICAgICBzc2l6ZV90IG5yOworKyAgICAgIC8qIHZpcnR1YWxs eSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCisrICAgICAgY2hhciBidWZb NTEyXTsKKysgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpIHsKKysgICAg ICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOworKyAgICAgICAgaWYgKCFy ZXQpIHsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICByZXQgKz0g c2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0cmNocihyZXQsICc6Jyk7 CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0K KysgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIsIDEwKTsKKysgICAgICAg IGJyZWFrOworKyAgICAgIH0KKysgICAgICBmY2xvc2UoZik7CisrICAgIH0KKysgIH0KKysgIHJl dHVybiBiYXNlOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBwcm9iZVJlcXVpcmVkQ1BV RmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv bGliY3h4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5iYmQzMWZmYzJjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xpYmN4eC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBhL2xpYmN4eC9pbmNsdWRl L2xvY2FsZQorKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAtNzQyLDcgKzc0MiwxMSBA QCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciog X19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJy bm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAgIGVycm5vID0gMDsKKyAg ICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChf X0dMSUJDX18pCisrICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwg X19iYXNlKTsKKysjZWxzZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19h LCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAgICAg ICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJy ZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCisg ICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgyLDcgKzc4NiwxMSBAQCBf X251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBf X2FfZW5kLAorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJu byk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAg ICAgICAgY2hhciAqX19wMjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9f R0xJQkNfXykKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19h LCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9f bGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUp OworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShl cnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9fY3Vy cmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMg ZW5zdXJlcyBgaXNfaWVjNTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBk b3VibGUgQUJJcywKK2luY2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBB bHNvLCBgX19wcGNfX2Agb3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZpbmVkIG9uIGdjYy4KKwor LS0tIGEvbGliY3h4L2luY2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMK K0BAIC00MjYsOCArNDI2LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJQkNQUF9JTkxJTkVfVklT SUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05P RVhDRVBUIHtyZXR1cm4gX19idWlsdGluX25hbnNsKCIiKTt9CisgICAgIF9MSUJDUFBfSU5MSU5F X1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9O T0VYQ0VQVCB7cmV0dXJuIF9fTERCTF9ERU5PUk1fTUlOX187fQorIAorLSNpZiAoZGVmaW5lZChf X3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmluZWQoX19wb3dlcnBjX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RC TF9NQVhfRVhQX18pIHx8IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQor KyAgICAvKiBJRUVFIDc1NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLworKyAgICBz dGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworKyNl bHNlCisrICAgIC8qIDEyOC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8KKyAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7CisrI2VuZGlmCisg I2Vsc2UKKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5 ID0gdHJ1ZTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGli Y3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1z c3Atbm9uc2hhcmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNzAyOTJiZWIyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9saWJj eHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorQEAgLTc2OSw2 ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFyaWVzIHRhcmdldCkKKyAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGF0b21pYykKKyAgIGVu ZGlmKCkKKyAKKysjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg c3NwX25vbnNoYXJlZCkKKysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30iKQorICAgZW5kaWYoKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCkBAIC0wLDAgKzEsMjUg QEAKK0Fsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCisK Ky0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eGFiaS9zcmMv Q01ha2VMaXN0cy50eHQKK0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRpZigpCisgCisgICBhZGRf bGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisrICBhZGRfbGlicmFyeV9m bGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkKKyAKKyBpZiAoTElCQ1hY QUJJX1VTRV9MTFZNX1VOV0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysg Yi9saWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEwIEBACisgICAgIHRhcmdl dF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQorICAgZW5kaWYoKQorIAorKyAg aWYgKExJQkNYWF9IQVNfQ19MSUIpCisrICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rhcmdl dH0gUFJJVkFURSBkbCkKKysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikK KyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQorICAgZW5k aWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc0YWE3NTc2ZWNmOQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNo CkBAIC0wLDAgKzEsNjMgQEAKK1RoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdo aWNoIGRvZXMgbm90IGRlZmluZSBgX19wcGNfX2AuCisKKy0tLSBhL2xpYnVud2luZC9pbmNsdWRl L19fbGlidW53aW5kX2NvbmZpZy5oCisrKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2lu ZF9jb25maWcuaAorQEAgLTQ5LDcgKzQ5LDcgQEAKKyAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05U RVhUX1NJWkUgMTY3CisgIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5CisgIyAg ZGVmaW5lIF9MSUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hF U1RfRFdBUkZfUkVHSVNURVJfUFBDNjQKKy0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQorKyMgZWxp ZiBkZWZpbmVkKF9fcG93ZXJwY19fKQorICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMg MQorICMgIGRlZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKKyAjICBkZWZpbmUgX0xJ QlVOV0lORF9DVVJTT1JfU0laRSAxMjQKKy0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0 ZXJzUmVzdG9yZS5TCisrKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUu UworQEAgLTM5Miw3ICszOTIsNyBAQCBMbm92ZWM6CisgICBQUEM2NF9MUigzKQorICAgYmN0cgor IAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQor IAorIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3Bw YzZqdW1wdG9FdikKKyAvLworLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZl LlMKKysrKyBiL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCitAQCAtNTU0LDcg KzU1NCw3IEBAIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKKyAg IGJscgorIAorIAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwY19fKQorIAorIC8vCisgLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4 dF90KiB0aHJlYWRfc3RhdGUpCistLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCisrKysgYi9s aWJ1bndpbmQvc3JjL2NvbmZpZy5oCitAQCAtOTUsMTIgKzk1LDEyIEBACisgI2RlZmluZSBfTElC VU5XSU5EX0JVSUxEX1NKTEpfQVBJUworICNlbmRpZgorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChf X3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJ UworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGRlZmluZWQoX19w cGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg ICAgICAgIFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoIWRlZmluZWQoX19BUFBM RV9fKSAmJiBkZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgIChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgZGVmaW5lZChfX21pcHNfXykKKy0t LSBhL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAorKysrIGIvbGlidW53aW5kL3NyYy9saWJ1 bndpbmQuY3BwCitAQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndf aW5pdF9sb2NhbCh1bndfY3Vyc29yX3QgKmN1cnNvciwKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5E IFJlZ2lzdGVyc194ODZfNjQKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgIyBkZWZp bmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18p CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJl Z2lzdGVyc19wcGMKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICMgZGVmaW5lIFJFR0lT VEVSX0tJTkQgUmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2xsZGItbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjAxYzBkMTM4NTIz Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xp bnV4L1Byb2Nmcy5oCisrKysgYi9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJv Y2ZzLmgKK0BAIC0xMCwyMSArMTAsMTIgQEAKKyAvLyBzeXMvcHJvY2ZzLmggb24gQW5kcm9pZC9M aW51eCBmb3IgYWxsIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgorIAorICNpbmNsdWRlIDxzeXMv cHRyYWNlLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKy0jaWZkZWYgX19BTkRST0lE X18KKy0jaWYgZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCistdHlw ZWRlZiB1bnNpZ25lZCBsb25nIGVsZl9ncmVnX3Q7CistdHlwZWRlZiBlbGZfZ3JlZ190CistICAg IGVsZl9ncmVnc2V0X3RbKHNpemVvZihzdHJ1Y3QgdXNlcl9wdF9yZWdzKSAvIHNpemVvZihlbGZf Z3JlZ190KSldOworLXR5cGVkZWYgc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlIGVsZl9mcHJlZ3Nl dF90OworLSNpZm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBS RUcKKy0jZW5kaWYgLy8gTlRfRlBSRUdTRVQKKy0jZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSNp Zm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBSRUcKKy0jZW5k aWYgLy8gTlRfRlBSRUdTRVQKKy0jZW5kaWYKKy0jZWxzZSAvLyBfX0FORFJPSURfXworKyNpZiAh ZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19wb3dlcnBjX18pCisrI2RlZmluZSBwdF9y ZWdzIG11c2xfcHRfcmVncworKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisrI3VuZGVmIHB0X3Jl Z3MKKysjZWxzZQorICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CistI2VuZGlmIC8vIF9fQU5EUk9J RF9fCisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAx LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMmEzZjhkNjI4MTMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0 Y2gKQEAgLTAsMCArMSw1NyBAQAorRnJvbSBmYWNhM2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEz OGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEJyYW5jYWxl b25pIDxtaXdheGVAZ21haWwuY29tPgorRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNsCisKKy0tLQorIGluY2x1ZGUvbGx2bS9BbmFs eXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSArKysrKysrKysKKyBsaWIvU3VwcG9ydC9EeW5h bWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIgKy0KKyBsaWIvU3VwcG9ydC9Vbml4L1NpZ25h bHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0tCisgdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVz dC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKKyA1IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCitpbmRleCAzNGE4YTFlMy4uMTIxNGVjZTUgMTAwNjQ0CistLS0gYS9sbHZtL2luY2x1 ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCisrKysgYi9sbHZtL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCitAQCAtMTgsNiArMTgsMTUgQEAKKyAj aW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5oIgorICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIK KyAKKysjdW5kZWYgZm9wZW42NAorKyN1bmRlZiBmc2Vla282NAorKyN1bmRlZiBmc3RhdDY0Cisr I3VuZGVmIGZzdGF0dmZzNjQKKysjdW5kZWYgZnRlbGxvNjQKKysjdW5kZWYgbHN0YXQ2NAorKyN1 bmRlZiBzdGF0NjQKKysjdW5kZWYgdG1wZmlsZTY0CisrCisgbmFtZXNwYWNlIGxsdm0geworIHRl bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheVJlZjsKKyBjbGFzcyBUcmlwbGU7CitkaWZm IC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9y dC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworaW5kZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0 NAorLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworKysrIGIv bGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworQEAgLTEwMiw3ICsxMDIs NyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29uc3QgY2hhciogU3ltYm9sTmFtZSkgeworIAor IC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRkcmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxp Y2l0IHN5bWJvbAorICNkZWZpbmUgRVhQTElDSVRfU1lNQk9MKFNZTSkgXAorLSAgIGlmICghc3Ry Y21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gJlNZTQorKyAgIGlmICghc3RyY21wKFN5bWJv bE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikmU1lNCisgCisgLy8gVW5kZXIgZ2xpYmMgd2Ug aGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90 aAorIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyBy ZXF1aXJlbWVudHMuIFNvLCB3ZQorZGlmZiAtLWdpdCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MK K2luZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2NDQKKy0tLSBhL2xsdm0vdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKKysrKyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29v Z2xldGVzdC9zcmMvZ3Rlc3QuY2MKK0BAIC0xMjgsNiArMTI4LDcgQEAKKyAKKyAjaWYgR1RFU1Rf Q0FOX1NUUkVBTV9SRVNVTFRTXworICMgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQK KysjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8bmV0ZGIu aD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElOVApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDA3MWQ5NjRiZDM3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNo CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgcGF0Y2hlcyBMTFZNIHRvIHVzZSBFTEZ2MiBvbiBwcGM2 NCB1bmNvbmRpdGlvbmFsbHkgdW5sZXNzIG92ZXJyaWRkZW4uIFdlCituZWVkIHRoaXMgYmVjYXVz ZSB1bmxpa2UgbW9zdCBkaXN0cm9zIHdlIHVzZSBFTEZ2MiBmb3IgYm90aCBnbGliYyBhbmQgbXVz bAorb24gYmlnIGVuZGlhbiBwcGM2NC4KKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENUYXJnZXRNYWNoaW5lLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNo aW5lLmNwcAoraW5kZXggMDYzNDgzM2UuLmI3Y2JjMmU3IDEwMDY0NAorLS0tIGEvbGx2bS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKKysrKyBiL2xsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCitAQCAtMjIyLDkgKzIyMiw4IEBAIHN0YXRp YyBQUENUYXJnZXRNYWNoaW5lOjpQUENBQkkgY29tcHV0ZVRhcmdldEFCSShjb25zdCBUcmlwbGUg JlRULAorIAorICAgc3dpdGNoIChUVC5nZXRBcmNoKCkpIHsKKyAgIGNhc2UgVHJpcGxlOjpwcGM2 NGxlOgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGNh c2UgVHJpcGxlOjpwcGM2NDoKKy0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklf RUxGdjE7CisrICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAg ZGVmYXVsdDoKKyAgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfVU5LTk9XTjsK KyAgIH0KK2RpZmYgLS1naXQgYS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxs IGIvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAoraW5kZXggOGIxY2Y2YjUu LjI5NmEyYWZhIDEwMDY0NAorLS0tIGEvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1l bGYtYWJpLmxsCisrKysgYi9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmku bGwKK0BAIC0xLDQgKzEsNSBAQAorLTsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisrOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtbXVzbCA8ICVzIHwgRmlsZUNo ZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFj aGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1h YmkgZWxmdjEgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisg OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYyIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMg LWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYjVkMTU5NzQzNzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCkBAIC0wLDAgKzEsMTEg QEAKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKKysrKyBi L2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKK0BAIC0xNjUsNyArMTY1 LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYg Q1BVLCBTdHJpbmdSZWYgRlMpIHsKKyAKKyAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNE KCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8CisgICAgICAg VGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8 fAorLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2woKSkKKysgICAgICBpc1RhcmdldExpbnV4KCkp CisgICAgIFNlY3VyZVBsdCA9IHRydWU7CisgCisgICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTFkMGU0YjMxYjMyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlk ZS1vcHQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhpcyBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUg dGhlIG9wdGltaXphdGlvbiBsZXZlbCBhcyBub3QgYWxsIHBsYXRmb3JtcyBjYW4KK2RlYWwgd2l0 aCAtTzMuCisKKy0tLSBhL2xsdm0vQ01ha2VMaXN0cy50eHQKKysrKyBiL2xsdm0vQ01ha2VMaXN0 cy50eHQKK0BAIC05MTgsNiArOTE4LDEyIEBAIGlmKCBNSU5HVyBBTkQgTk9UICIke0NNQUtFX0NY WF9DT01QSUxFUl9JRH0iIE1BVENIRVMgIkNsYW5nIiApCisgICBsbHZtX3JlcGxhY2VfY29tcGls ZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICItTzIiKQorIGVuZGlmKCkK KyAKKytzZXQoVk9JRF9DWFhfT1BUX0ZMQUdTICIiIENBQ0hFIFNUUklORyAiT3B0aW1pemF0aW9u IGxldmVsIHRvIHVzZSIpCisrCisraWYgKE5PVCBWT0lEX0NYWF9PUFRfRkxBR1MgU1RSRVFVQUwg IiIpCisrICAgIGxsdm1fcmVwbGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JF TEVBU0UgIi1PMyIgIiR7Vk9JRF9DWFhfT1BUX0ZMQUdTfSIpCisrZW5kaWYoKQorKworICMgUHV0 IHRoaXMgYmVmb3JlIHRibGdlbi4gRWxzZSB3ZSBoYXZlIGEgY2lyY3VsYXIgZGVwZW5kZW5jZS4K KyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9EZW1hbmdsZSkKKyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9T dXBwb3J0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMt YmlncGljLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGlj LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMzMjY4N2I5 ZDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1w cGMtYmlncGljLnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK0Zyb20gZjNkYmRkNDljMDZiZmFmYzFk NjEzODA5NGNmNDI4ODljMTRkMzhiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNh bXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgorRGF0ZTogU3VuLCAzIE5vdiAyMDE5 IDEwOjU3OjI3IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtMTFZNXVtQb3dlclBDXSBBc3N1bWUg QmlnUElDIGlmIG5vIFBJQyBsZXZlbCBpcyBzcGVjaWZpZWQKKworLS0tCisgbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgIHwgMiArLQorIGxsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENBc21QcmludGVyLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVy LmNwcAoraW5kZXggY2NlMjFmMzIuLjg3Y2E1ZjliIDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dl clBDL1BQQ0FzbVByaW50ZXIuY3BwCitAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgUFBDQXNtUHJp bnRlcjo6RW1pdFRsc0NhbGwoY29uc3QgTWFjaGluZUluc3RyICpNSSwKKyAKKyAgIC8vIEFkZCAz Mjc2OCBvZmZzZXQgdG8gdGhlIHN5bWJvbCBzbyB3ZSBmb2xsb3cgdXAgdGhlIGxhdGVzdCBHT1Qv UExUIEFCSS4KKyAgIGlmIChLaW5kID09IE1DU3ltYm9sUmVmRXhwcjo6VktfUExUICYmIFN1YnRh cmdldC0+aXNTZWN1cmVQbHQoKSAmJgorLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2 ZWw6OkJpZ1BJQykKKysgICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJ QykKKyAgICAgVGxzUmVmID0gTUNCaW5hcnlFeHByOjpjcmVhdGVBZGQoCisgICAgICAgICBUbHNS ZWYsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIE91dENvbnRleHQpLCBPdXRDb250ZXh0 KTsKKyAgIGNvbnN0IE1hY2hpbmVPcGVyYW5kICZNTyA9IE1JLT5nZXRPcGVyYW5kKDIpOworZGlm ZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAgYi9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitpbmRleCA1Y2MxODBkNy4uYTViMDI1NjUg MTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAK KysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorQEAgLTEx Nyw3ICsxMTcsNyBAQCBzdGF0aWMgTUNPcGVyYW5kIEdldFN5bWJvbFJlZihjb25zdCBNYWNoaW5l T3BlcmFuZCAmTU8sIGNvbnN0IE1DU3ltYm9sICpTeW1ib2wsCisgICBjb25zdCBNQ0V4cHIgKkV4 cHIgPSBNQ1N5bWJvbFJlZkV4cHI6OmNyZWF0ZShTeW1ib2wsIFJlZktpbmQsIEN0eCk7CisgICAv LyBJZiAtbXNlY3VyZS1wbHQgLWZQSUMsIGFkZCAzMjc2OCB0byBzeW1ib2wuCisgICBpZiAoU3Vi dGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmIFRNLmlzUG9zaXRpb25JbmRlcGVuZGVudCgpICYmCist ICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNMZXZlbDo6QmlnUElDICYmCisrICAgICAgTS0+ Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMgJiYKKyAgICAgICBNTy5nZXRUYXJn ZXRGbGFncygpID09IFBQQ0lJOjpNT19QTFQpCisgICAgIEV4cHIgPQorICAgICAgICAgTUNCaW5h cnlFeHByOjpjcmVhdGVBZGQoRXhwciwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgQ3R4 KSwgQ3R4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDYtYWFy Y2g2NC1tZl9leGVjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNi1hYXJj aDY0LW1mX2V4ZWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hMDBhYmQyMTY2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGaXggZmFp bHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBvbiBhYXJjaDY0Ogor CisgICAgRmFpbGluZyBUZXN0cyAoOCk6CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkFsbG9jQW5kUmVs ZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9j YXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMworICAgICAgICBMTFZN LVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVt b3J5VGVzdC5FbmFibGVkV3JpdGUvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1 cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5NdWx0aXBsZUFsbG9j QW5kUmVsZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3Rz L0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVOZWFyLzMKKyAgICAg ICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01h cHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBw b3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9O ZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKKworVXBzdHJlYW0tSXNz dWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzgjYzEwCisKKy0t LSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCisrKysgYi9sbHZtL2xpYi9TdXBw b3J0L1VuaXgvTWVtb3J5LmluYworQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCBnZXRQb3Np eFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgeworICAgICByZXR1cm4gUFJPVF9SRUFE IHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKKyAgIGNhc2UgbGx2bTo6c3lzOjpNZW1vcnk6Ok1G X0VYRUM6CisgI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fUE9XRVJQQ19f KSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCistICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVm aW5lZChfQVJDSF9QUEMpKQorKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hf UFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJjaDY0X18pKSkKKyAg ICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0aGF0IGhhcyBubyBy ZWFkIHBlcm1pc3Npb24KKyAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMu ICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQorICAgICAvLyBDYWNoZSB1c2Vz IGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFyZSB0cmVhdGVkIGJ5 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlMGE5YTc3OWQxYgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKQEAgLTAsMCArMSwyMSBAQAorY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQzODRj MjQzMTM3YjUzZmMKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CitEYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAorCisgICAgZW5hYmxlIGNv bXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCisKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9j bWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmln LWl4LmNtYWtlCitpbmRleCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAorLS0tIGEvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKKysrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jh c2UtY29uZmlnLWl4LmNtYWtlCitAQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFyZ2V0 cykKKyAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRD SEVTICJwb3dlcnBjNjRsZSIpCisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRsZSAi IiAiLW02NCIpCisgICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNI fSIgTUFUQ0hFUyAicG93ZXJwYyIpCistICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hF UyAiQUlYIikKKy0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCist ICAgICAgZW5kaWYoKQorKyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIp CisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQorICAgICBlbHNl aWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4IikK KyAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA4ZDg0NzQ3MjUyNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCkBAIC0wLDAgKzEsNDIzIEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdsbHZtMTMnCitwa2duYW1lPWxsdm0xMwordmVyc2lvbj0xMy4wLjAKK3Jldmlz aW9uPTEKK3dya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgorYnVpbGRfd3Jrc3Jj PWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURDTUFLRV9CVUlM RF9UWVBFPVJlbGVhc2UgLVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJfQlVJTERfSUQ9WUVTCisg LURMTERCX1VTRV9TWVNURU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9BQkk9bGliY3h4YWJpCisg LURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAtRExJQkNYWEFCSV9VU0Vf TExWTV9VTldJTkRFUj1ZRVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlF UworIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBfSU5TVEFMTF9BTElBU0VT PU5PCisgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJTERfRE9DUz1ZRVMKKyAt RExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5HU19BU19FUlJPUlM9Tk8K KyAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERfTExWTV9EWUxJQj1ZRVMK KyAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFCTEVfUlRUST1ZRVMKKyAt RExMVk1fRU5BQkxFX0ZGST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5DRElSPS91c3IvaW5jbHVk ZSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2ZWwgbGliZmZpLWRldmVs IHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFyayBweXRob24zLXNwaGlu eC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgemxpYi1kZXZlbCBlbGZ1 dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgYmlu dXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGlibGx2bTEzPj0ke3ZlcnNp b259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGluZSIK K21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iQXBhY2hl LTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmct JHt2ZXJzaW9ufS9sbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgorY2hlY2tzdW09 NjA3NWFkMzBmMWFjMGUxNWYwN2MxYmYwNjJjMWUxMjY4YzI0MWQ2NzRmMTFiZDMyY2RmMGUwNDBj NzFmMmJmMworbGliMzJkaXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9uPTMKKworaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtRExJ QkNYWF9IQVNfTVVTTF9MSUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZl bCIKKwlkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKworIyAib3BlcmFuZCBvdXQg b2YgcmFuZ2UiIGFzc2VtYmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJcHBjNjQqKSA7OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxF X0NMQU5HRD1PRkYiIDs7Citlc2FjCisKK19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10 b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCisK K19sbGRiX2VuYWJsZT15ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCXBwYzY0bGUqKSA7OworCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1u byA7OworZXNhYworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwl4ODZfNjQqfGFh cmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMKKworc3VicGFja2FnZXM9 ImNsYW5nLXRvb2xzLWV4dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNsYW5nCitpZiBbICIkX2xp Ym9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5t cCIKKwlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgorCSMgYmVjYXVzZSBvZiBj bWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgorCWRlcGVuZHMrPSIg bGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorZmkKKworc3VicGFja2FnZXMrPSIgY2xh bmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisgbGx2bS1saWJ1bndpbmQg bGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAorIGxpYmN4eGFiaSBsaWJj eHhhYmktZGV2ZWwgbGlibGx2bTEzIgorCitpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07 IHRoZW4KKwkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KKwlfZW5h YmxlZF9wcm9qZWN0cys9IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIK K2ZpCisKK3N1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2NvbmZpZ3VyZV9hcmdzKz0i IC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCisKK3Bvc3RfcGF0 Y2goKSB7CisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJCWlmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2VkIC1pICdzfF9fcHRyYWNl X3JlcXVlc3R8aW50fGcnIFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9j ZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJIyBkaXNhYmxlIGRvY3Mg Zm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQgLWkgJy9hZGRfc3ViZGly ZWN0b3J5KGRvY3MpL2QnIFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0CisJZmkK KworCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgor CWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmln Lmd1ZXNzIFwKKwkJJHt3cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4IGxpbmtlciBmYWlsdXJl cyBvbiBzb21lIGFyY2hzCisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAu KixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkke3dya3NyY30vbGliY3h4 YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlz dHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAorCQkke3dya3NyY30v bGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVkIGxpYnNzcF9ub25zaGFy ZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQorCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7CisJCXBwYyotbXVzbHxp Njg2LW11c2x8bWlwcyotbXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRf bGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dya3NyY30vbGlidW53aW5k L3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkv c3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4 eC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkg b24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAtaSAncywjIFNldCBjb21t b24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhl Y2luZm8pLCcgXAorCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAorCQkJ OzsKKwkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2lu Y2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAtaSAncy9zZXQoQ09NUElM RVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5J VElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2Uv Y29uZmlnLWl4LmNtYWtlCisJCQk7OworCWVzYWMKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwls b2NhbCB0cmlwbGV0CisKKwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9s czoKKwlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcv IC1nMX0KKworCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRvIGJsb3cgdXAgZm9yIHBw YzMyIGFwcGFyZW50bHkgYmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcgdG9vIGxhcmdlIGZvciBh IDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBvcHRpbWl6ZSBmb3Igc2l6 ZSBpbnN0ZWFkCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikgOzsK KwkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZPSURfQ1hYX09QVF9GTEFH Uz0tT3MiIDs7CisJZXNhYworCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1wIGJ1aWxkL0hPU1QKKwkJ Y2QgYnVpbGQvSE9TVAorCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0i JEJVSUxEX0NGTEFHUyIgXAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0i JEJVSUxEX0xERkxBR1MiIFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxl YXNlIFwKKwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KKwkJ bWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtlICR7bWFrZWpvYnN9IC1D IHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIg XSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KKwkJY29u ZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1Qv YmluL2xsdm0tdGJsZ2VuIgorCQljb25maWd1cmVfYXJncys9IiAtRENMQU5HX1RBQkxFR0VOPSR7 d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIKKwkJWyAiJF9sbGRiX2Vu YWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJY2QgLi4vLi4KKwlmaQor CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7 CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7Owor CQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlhcm12NyopIF9hcmNoPSJBcm12NyI7OworCQlh YXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNoPSJNaXBzIjs7CisJCXBw YyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OworCWVz YWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CisKKwlj b25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJjaH0iCisJY29uZmlndXJl X2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJY29uZmlndXJlX2FyZ3Mr PSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9IgorfQorCitkb19pbnN0 YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RE SVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVpcmVkIGZvciBtdWx0aWxp Yi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCWZv ciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVk ZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0YWxsICR7RklMRVNESVJ9 L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29u ZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkKKworCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhv c3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlybSAt ZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZpCisKKwkjIEluc3RhbGwg bGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUv X19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xp YmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQorCisJIyBJbnN0YWxsIGxp YnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19f bGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9s aWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAk e3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCisJdmlu c3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9l bmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQorCitjbGFuZy1hbmFseXpl cl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgorCWRl cGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgorCXNob3J0 X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKKwlob21lcGFnZT0i aHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1vdmUgIi91c3IvYmluL3Nj YW4tKiIKKwkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9saWJleGVj LyphbmFseXplciIKKwl9Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7CisJbGli MzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5 dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgorCWhvbWVwYWdlPSJo dHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxh Y2VtZW50cworCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZtb3ZlIHVzci9iaW4vY2xh bmctcmVuYW1lCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2Rp YWd0b29sCisJCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scworCQl2bW92ZSB1c3IvYmlu L2htYXB0b29sCisJCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2bW92ZSB1c3IvYmluL3Bw LXRyYWNlCisJCXZtb3ZlIHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5n QXBwbHlSZXBsYWNlbWVudHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKKwkJ dm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8q dGlkeSoiCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3No YXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9kaWFndG9vbC4xCisJfQorfQorCitjbGFuZ19wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9 eWVzCisJZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtY QlBTX1RBUkdFVF9MSUJDfS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKKwlob21lcGFn ZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlL2NsYW5nCisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKKwkJdm1vdmUgInVz ci9iaW4vKmNsYW5nKiIKKwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKKwkJdm1vdmUgdXNy L2xpYi9jbGFuZworCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJCXZtb3ZlICJ1c3IvbGli L2xpYmNsYW5nKi5hIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCisJCXZtb3ZlIHVz ci9zaGFyZS9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCisJCXZtb3ZlIHVzci9z aGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nLWNw cF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFy eSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxl ZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9sbGQqCisJCXZtb3Zl IHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKKwkJdm1vdmUgdXNyL2Jp bi9sZDY0LmxsZCoKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9Cit9CisKK2xsZC1kZXZl bF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtl ciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIK KwlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAorCQl2 bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFja2FnZSgpIHsKKwlsaWIz MmRpc2FibGVkPXllcworCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJc2hvcnRfZGVzYys9IiAt IExMREIgZGVidWdnZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZtb3ZlIHVzci9saWIvbGli bGxkYipzby4qCisJCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9CisKK2xsZGItZGV2ZWxf cGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgor CQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kX3Bh Y2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJfQorfQorCitsbHZtLWxpYnVud2lu ZC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKKwljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQu YQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3ZlIHVzci9pbmNsdWRlL21h Y2gtbworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0KK30KKworbGliY3h4YWJp X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJj KysiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgor CX0KK30KKworbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxv dyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRz PSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEK KwkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgorCX0KK30KKworbGliY3h4X3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9CisKK2xpYmN4eC1kZXZl bF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRl dmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KKwkJdm1vdmUg dXNyL2xpYi9saWJjKysuYQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCisJ CXZtb3ZlIHVzci9pbmNsdWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAorCX0K K30KKworbGlib21wX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBz dXBwb3J0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlib21w LnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKKwkJdm1vdmUgdXNy L2xpYi9saWJhcmNoZXIuc28KKwl9Cit9CisKK2xpYm9tcC1kZXZlbF9wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQg ZmlsZXMiCisJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgorCQl2bW92ZSAidXNyL2xp Yi9saWJhcmNoZXIqIgorCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSAidXNy L2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSB1c3Ivc2hhcmUv bWFuL21hbjEvbGx2bW9wZW5tcC4xCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCisJfQor fQorCitsaWJsbHZtMTNfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJy YXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgor CX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTEz L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5NWNmMjZi MzU4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZQpAQCAtMCwwICsx LDMgQEAKK3NpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNl cyIKK3BhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCitpZ25vcmU9Iiot cmMqIgoKRnJvbSBhNjQ2NTg1NWY1YmEyZDM5MTNhNDg5MTAyYWE1MDVlZmE5NjIwZjEyIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIw QmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMx IERlYyAyMDIxIDE2OjIzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMi8zMF0gbGx2bTogdXBk YXRlIHRvIDEzLjAuMAoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTky ZGI2Zjk0ZjlmLi5iY2ZlZTgyMDk4ZmYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9u PTEzLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgot cmVwbGFjZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAg bGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTEzIgorcmVwbGFjZXM9Imxsdm0x Mj49MCBsbHZtMTE+PTAgbGx2bTEwPj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02 LjA+PTAgbGx2bTMuOT49MCIKIHNob3J0X2Rlc2M9IkxMVk0gbWV0YSBwYWNrYWdlIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IlB1Ymxp YyBEb21haW4iCgpGcm9tIDk1MDkwOTlmMWNhMjcyNWFmNDQ4YzhkYzM4Yzk2YmNkNjUxNTQzNTEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9 QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IEZy aSwgMzEgRGVjIDIwMjEgMTY6NDM6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzMwXSBsbHZt MTI6IHJlbW92ZSBjbGFuZyBwYXJ0cwoKLS0tCiAuLi5jbGFuZy0wMDEtZml4LXVud2luZC1jaGFp bi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgLS0tCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11 c2wtdHJpcGxlcy5wYXRjaCAgfCAxMTAgLS0tLS0tLQogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzIC0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2 NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCAtLS0KIC4uLi9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoICAgICAgICB8ICAxMSAtCiAuLi4vY29tcGlsZXItcnQtc2FuaXRpemVyLXBw YzY0LW11c2wucGF0Y2ggICAgfCAgMzUgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zaXplX3QucGF0Y2ggICB8ICAxMCAtCiAuLi4vcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBw YzY0LW11c2wucGF0Y2ggfCAgNjIgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgt bXVzbC5wYXRjaCAgICAgIHwgIDI2IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2ggICAgICAgfCAgMjIgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5v bnNoYXJlZC5wYXRjaCB8ICAxMSAtCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaCAgICAgfCAgMjUgLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBw YzMyLnBhdGNoICB8ICA2MyAtLS0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaCAgICAgICAgfCAgMzEgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1y dC5wYXRjaCAgICB8ICAyMSAtLQogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgIHwgMzAxICstLS0tLS0tLS0tLS0tLS0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDgzMiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFk ZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNp emVfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMy LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11 c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMy LWNvbXBpbGVyLXJ0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlYWE3NzgzZTdhLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1Gcm9tIDM1Mjk3NDE2 OWYwZDJiNWRhM2Q1MzIxZjU4OGY1ZTNiNTk0MTMzMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUs IDggU2VwIDIwMTUgMjI6MTQ6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzddIGZpeCB1bndp bmQgY2hhaW4gaW5jbHVzaW9uCi0KLS0tLQotIGxpYi9IZWFkZXJzL3Vud2luZC5oIHwgOSArKysr Ky0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvbGliL0hlYWRlcnMvdW53aW5kLmggYi9saWIvSGVhZGVycy91bndpbmQu aAotaW5kZXggMzAzZDc5Mi4uNDRlMTBjYyAxMDA2NDQKLS0tLSBhL2NsYW5nL2xpYi9IZWFkZXJz L3Vud2luZC5oCi0rKysgYi9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAotQEAgLTksOSArOSw2 IEBACi0gCi0gLyogU2VlICJEYXRhIERlZmluaXRpb25zIGZvciBsaWJnY2NfcyIgaW4gdGhlIExp bnV4IFN0YW5kYXJkIEJhc2UuKi8KLSAKLS0jaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKLS0jZGVm aW5lIF9fQ0xBTkdfVU5XSU5EX0gKLS0KLSAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9faGFz X2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+KQotIC8qIERhcndpbiAoZnJvbSAxMS54IG9uKSBwcm92 aWRlIGFuIHVud2luZC5oLiBJZiB0aGF0J3MgYXZhaWxhYmxlLAotICAqIHVzZSBpdC4gbGlidW53 aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRlZmluaXRpb25zIGluICNpZmRlZiBfR05VX1NPVVJDRSwK LUBAIC0zOSw2ICszNiw5IEBACi0gIyBlbmRpZgotICNlbHNlCi0gCi0rI2lmbmRlZiBfX0NMQU5H X1VOV0lORF9ICi0rI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0rCi0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotICNpZmRlZiBfX2NwbHVzcGx1cwotQEAgLTMyMiw2ICszMjIsNyBAQCBfVW53aW5k X1B0ciBfVW53aW5kX0dldFRleHRSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7Ci0g fQotICNlbmRpZgotIAotKyNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0rCi0gI2VuZGlm Ci0gCi0tI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KLS0tIAotMi41LjEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTY4OGQ0MGRiYzIuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlw bGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLS0tLSBhL2NsYW5nL2xp Yi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xD aGFpbnMvR251LmNwcAotQEAgLTIwODYsNyArMjA4Niw4IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdD Q0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCi0gICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7ImFybS1saW51eC1nbnVlYWJpaGYi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hs LXJlZGhhdC1saW51eC1nbnVlYWJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251 ZWFiaSJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVlYWJpaGYifTsKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsiL2xpYiJ9OwotICAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJhcm1lYi1saW51eC1nbnVlYWJpIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtZWItbGlu dXgtYW5kcm9pZGVhYmkifTsKLUBAIC0yMTUzLDggKzIxNTQsNyBAQCB2b2lkIEdlbmVyaWNfR0ND OjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgICAg ICJwb3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhzcGUifTsK LSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwg Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNbXSA9IHsi cG93ZXJwY2xlLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1tdXNsIn07 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNs ZS11bmtub3duLWxpbnV4LWdudSJ9OwotIAotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQ QzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IFBQQzY0VHJpcGxlc1tdID0gewotQEAgLTIyMzUsNiArMjIzNSw4NyBAQCB2b2lkIEdl bmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVz KAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0rICBpZiAoVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKSB7 Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0TXVzbFRyaXBsZXNbXSA9IHsi YWFyY2g2NC1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1I Rk11c2xUcmlwbGVzW10gPSB7Ci0rICAgICAgICAiYXJtLWxpbnV4LW11c2xlYWJpaGYiLCAiYXJt djdsLWxpbnV4LW11c2xlYWJpaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBBUk1NdXNsVHJpcGxlc1tdID0geyJhcm0tbGludXgtbXVzbGVhYmkifTsKLSsgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nl82NE11c2xUcmlwbGVzW10gPSB7Ing4Nl82NC1saW51 eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZNdXNsVHJpcGxlc1td ID0geyJpNjg2LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IE1J UFNNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgIm1pcHMtbGludXgtbXVzbCIsICJtaXBzZWwt bGludXgtbXVzbCIsCi0rICAgICAgICAibWlwc2VsLWxpbnV4LW11c2xoZiIsICJtaXBzLWxpbnV4 LW11c2xoZiIKLSsgICAgfTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ011c2xU cmlwbGVzW10gPSB7InBvd2VycGMtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgUFBDTEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtbXVzbCJ9Owot KyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRNdXNsVHJpcGxlc1tdID0geyJwb3dl cnBjNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRM RU11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NGxlLWxpbnV4LW11c2wifTsKLSsKLSsgICAgc3dp dGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjph YXJjaDY0OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5k KEFBcmNoNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFy Y2g2NE11c2xUcmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJj aExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2NE11c2xU cmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6YXJtOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFSTUxp YkRpcnMpLCBlbmQoQVJNTGliRGlycykpOwotKyAgICAgIGlmIChUYXJnZXRUcmlwbGUuZ2V0RW52 aXJvbm1lbnQoKSA9PSBsbHZtOjpUcmlwbGU6Ok11c2xFQUJJSEYpIHsKLSsgICAgICAgIFRyaXBs ZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTUhGTXVzbFRyaXBsZXMpLCBlbmQoQVJNSEZNdXNsVHJp cGxlcykpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihBUk1NdXNsVHJpcGxlcyksIGVuZChBUk1NdXNsVHJpcGxlcykpOwotKyAgICAgIH0KLSsg ICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4Nl82NDoKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRpcnMpKTsKLSsg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChY ODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4 NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODY6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMp KTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5k KFg4Nl82NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdp bihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJy ZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6bWlwczoKLSsgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihNSVBTTGliRGlycyksIGVuZChNSVBTTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKE1JUFNNdXNsVHJpcGxlcyksIGVuZChNSVBTTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzoKLSsgICAgICBM aWJEaXJzLmFwcGVuZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNs VHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGly cyksIGVuZChQUEM2NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAg ICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwY2xlOgotKyAgICAgIExpYkRpcnMu YXBwZW5kKGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKLSsgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVz bFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGli RGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVuZChQUEM2NExFTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGlycyksIGVuZChQUEM2NExpYkRpcnMpKTsK LSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5k KFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykpOwotKyAg ICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwot KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVu ZChQUEM2NExFTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdp bihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlw bGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgYnJlYWs7Ci0rICAg IH0KLSsgICAgVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soVGFyZ2V0VHJpcGxlLnN0cigpKTsKLSsg ICAgaWYgKFRhcmdldFRyaXBsZS5zdHIoKSAhPSBCaWFyY2hUcmlwbGUuc3RyKCkpCi0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soQmlhcmNoVHJpcGxlLnN0cigpKTsKLSsgICAg cmV0dXJuOwotKyAgfQotKwotICAgLy8gQW5kcm9pZCB0YXJnZXRzIHNob3VsZCBub3QgdXNlIEdO VS9MaW51eCB0b29scyBvciBsaWJyYXJpZXMuCi0gICBpZiAoVGFyZ2V0VHJpcGxlLmlzQW5kcm9p ZCgpKSB7Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0QW5kcm9pZFRyaXBs ZXNbXSA9IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBw YzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0YWQ2NDEyZDFlNmMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29s Q2hhaW5zL0xpbnV4LmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAotQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNM aW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgewotICAgICBMb2FkZXIgPSAibGQuc28u MSI7Ci0gICAgIGJyZWFrOwotICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotLSAgICBMaWJE aXIgPSAibGliNjQiOwotLSAgICBMb2FkZXIgPQotLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQ Q0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOwotLSAg ICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgotICAgICBMaWJEaXIgPSAi bGliNjQiOwotICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDIxZmM4MDAzYzVmMS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0OCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAotKysr IGIvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLUBAIC00MTUsMTEgKzQxNSwxMCBAQCBw dWJsaWM6Ci0gICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91 YmxlKCk7Ci0gICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxl OjpwcGM2NGxlKSkgewotICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7 Ci0tICAgICAgQUJJID0gImVsZnYyIjsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBEYXRhTGF5b3V0 ID0gIkUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MSI7Ci0gICAgIH0K LSsgICAgQUJJID0gImVsZnYyIjsKLSAKLSAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8 IFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgewotICAgICAgIExvbmdE b3VibGVXaWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OwotLS0tIGEvY2xhbmcvbGliL0NvZGVH ZW4vVGFyZ2V0SW5mby5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3Bw Ci1AQCAtMTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdl bk1vZHVsZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7Ci0gICAgICAgcmV0dXJuIFNldENHSW5m byhuZXcgQUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKLSAK LSAgICAgaWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKLS0gICAgICBQUEM2NF9TVlI0 X0FCSUluZm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0tICAg ICAgaWYgKGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCi0tICAgICAgICBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKLSsgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFC SUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgaWYgKGdldFRh cmdldCgpLmdldEFCSSgpID09ICJlbGZ2MSIpCi0rICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9B QklJbmZvOjpFTEZ2MTsKLSAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxv YXRBQkkgPT0gInNvZnQiOwotIAotICAgICAgIHJldHVybiBTZXRDR0luZm8oCi0tLS0gYS9jbGFu Zy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi1AQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6 OkFkZFBQQ1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKLSAgIGNvbnN0IGxsdm06OlRy aXBsZSAmVCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOwotICAgaWYgKFQuaXNPU0JpbkZv cm1hdEVMRigpKSB7Ci0gICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7Ci0t ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogewotLSAgICAgIGlmICgoVC5pc09TRnJlZUJT RCgpICYmIFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKLS0gICAgICAgICAgVC5pc09T T3BlbkJTRCgpIHx8IFQuaXNNdXNsKCkpCi0tICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLS0g ICAgICBlbHNlCi0tICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKLS0gICAgICBicmVhazsKLS0g ICAgfQotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6Ci0gICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NGxlOgotICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwotICAgICAgIGJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0 LXVjb250ZXh0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTNjMDU5ZDdi OGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0t LS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3Bw Lm9yaWcKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9s aW51eC5jcHAKLUBAIC0xNzk5LDcgKzE3OTksNyBAQAotIAotIHN0YXRpYyBib29sIEFhcmNoNjRH ZXRFU1IodWNvbnRleHRfdCAqdWNvbnRleHQsIHU2NCAqZXNyKSB7Ci0gICBzdGF0aWMgY29uc3Qg dTMyIGtFc3JNYWdpYyA9IDB4NDU1MzUyMDE7Ci0tICB1OCAqYXV4ID0gdWNvbnRleHQtPnVjX21j b250ZXh0Ll9fcmVzZXJ2ZWQ7Ci0rICB1OCAqYXV4ID0gcmVpbnRlcnByZXRfY2FzdDx1OCAqPih1 Y29udGV4dC0+dWNfbWNvbnRleHQuX19yZXNlcnZlZCk7Ci0gICB3aGlsZSAodHJ1ZSkgewotICAg ICBfYWFyY2g2NF9jdHggKmN0eCA9IChfYWFyY2g2NF9jdHggKilhdXg7Ci0gICAgIGlmIChjdHgt PnNpemUgPT0gMCkgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMzVmMTZkMjRmMzQwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5p dGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9z YW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLUBAIC03NCw2ICs3NCwxMCBAQAot ICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotICNlbmRpZgotIAotKyNpZiBTQU5JVElaRVJfTElO VVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKyNl bmRpZgotKwotICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpFUl9BTkRST0lECi0gI2lu Y2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgotICNlbmRpZgotLS0tIGEvY29tcGlsZXItcnQvbGli L3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKLSsr KyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCi1AQCAtOTIsNyArOTIsNyBAQAotICMgaW5jbHVkZSA8dXRpbWUuaD4K LSAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSAjaWYgZGVmaW5lZChfX21pcHM2NCkgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIFNBTklUSVpF Ul9SSVNDVjY0Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0 Ci0gIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICMgIGlmZGVmIF9fYXJtX18KLSB0eXBlZGVm IHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKLS0tLSBhL2NvbXBpbGVyLXJ0L2xp Yi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5j cHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9w dGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKLUBAIC0zMSw3ICszMSw3IEBACi0gI2luY2x1ZGUg PHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKLSAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3Ig aW92ZWMKLSAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRVUwotLSNpZiAoZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9J RAotKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg U0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAotIC8vIEdMSUJDIDIuMjAr IHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCi0gIyBpbmNsdWRlIDxhc20v cHRyYWNlLmg+Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtc2l6ZV90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzYzMDYzYTVl OWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNpemVfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9mdXp6ZXIvRnV6emVySW50ZXJjZXB0b3JzLmNwcC5vcmlnCi0rKysgYi9jb21w aWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAKLUBAIC0yNSw2ICsyNSw3 IEBACi0gICB9Ci0gCi0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0g I2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGRsZmNuLmg+IC8vIGZvciBkbHN5bSgpCi0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBj NjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1w cGM2NC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGI2MWM4MGM4 OTcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS0t LSBhL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotKysrIGIvY29tcGls ZXItcnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCi1AQCAtMTIsNyArMTIsMTMgQEAKLSAK LSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8bXV0ZXg+Ci0rI2lmZGVmIF9fR0xJQkNf XwotICNpbmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8Y2N0 eXBlPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotKyNpbmNsdWRlIDxjc3RkbGliPgotKyNlbmRpZgot IAotICNpbmNsdWRlICJ4cmF5X2RlZnMuaCIKLSAKLUBAIC0yMCwxMyArMjYsNDUgQEAgbmFtZXNw YWNlIF9feHJheSB7Ci0gCi0gQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4X3Qg JkNQVSkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKLSAgIENQVSA9IDA7Ci0rI2lmZGVmIF9fR0xJ QkNfXwotICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOwotKyNlbHNlCi0rICByZXR1cm4g X19idWlsdGluX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZW5kaWYKLSB9Ci0gCi0gaW5saW5lIHVp bnQ2NF90IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBzdGF0 aWMgc3RkOjptdXRleCBNOwotICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJkKE0p OwotKyNpZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJlcSgp OwotKyNlbHNlCi0rICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAqLwot KyAgc3RhdGljIHVpbnQ2NF90IGJhc2U7Ci0rICBpZiAoIWJhc2UpIHsKLSsgICAgRklMRSAqZiA9 IGZvcGVuKCIvcHJvYy9jcHVpbmZvIiwgInJiIik7Ci0rICAgIGlmIChmKSB7Ci0rICAgICAgc3Np emVfdCBucjsKLSsgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0 aGUgbGluZSAqLwotKyAgICAgIGNoYXIgYnVmWzUxMl07Ci0rICAgICAgd2hpbGUgKGZnZXRzKGJ1 Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7Ci0rICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVmLCAi dGltZWJhc2UiKTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7Ci0rICAg ICAgICByZXQgPSBzdHJjaHIocmV0LCAnOicpOwotKyAgICAgICAgaWYgKCFyZXQpIHsKLSsgICAg ICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBiYXNlID0gc3RydG91bChyZXQg KyAxLCBudWxscHRyLCAxMCk7Ci0rICAgICAgICBicmVhazsKLSsgICAgICB9Ci0rICAgICAgZmNs b3NlKGYpOwotKyAgICB9Ci0rICB9Ci0rICByZXR1cm4gYmFzZTsKLSsjZW5kaWYKLSB9Ci0gCi0g aW5saW5lIGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNUUlVN RU5UIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBiYmQzMWZmYzJjYjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjYgKzAsMCBAQAotLS0tIGEvbGliY3h4L2luY2x1ZGUvbG9jYWxlCi0rKysgYi9saWJjeHgvaW5j bHVkZS9sb2NhbGUKLUBAIC03NDIsNyArNzQyLDExIEBAIF9fbnVtX2dldF9zaWduZWRfaW50ZWdy YWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5h bWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9 IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYg ZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAgICAgIGxvbmcg bG9uZyBfX2xsID0gc3RydG9sbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNlCi0gICAgICAg ICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGxfbChfX2EsICZfX3AyLCBfX2Jhc2UsIF9MSUJDUFBf R0VUX0NfTE9DQUxFKTsKLSsjZW5kaWYKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJubzsKLSAgICAg ICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKLSAgICAgICAgICAgICBlcnJubyA9IF9fc2F2 ZV9lcnJubzsKLUBAIC03ODIsNyArNzg2LDExIEBAIF9fbnVtX2dldF91bnNpZ25lZF9pbnRlZ3Jh bChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCi0gICAgICAgICB0eXBlbmFt ZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0g ZXJybm87Ci0gICAgICAgICBlcnJubyA9IDA7Ci0gICAgICAgICBjaGFyICpfX3AyOwotKyNpZiBk ZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQotKyAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNl Ci0gICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsX2woX19hLCAmX19w MiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBl bmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vy cm5vID0gZXJybm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAg ICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhOTJmODAwNGUxYy4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgZW5zdXJlcyBgaXNfaWVjNTU5YCBp cyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKLWluY2x1ZGlu ZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Agb3IgYF9f cHBjNjRfX2AKLWlzIG5vdCBkZWZpbmVkIG9uIGdjYy4KLQotLS0tIGEvbGliY3h4L2luY2x1ZGUv bGltaXRzCi0rKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMKLUBAIC00MjYsOCArNDI2LDE0IEBA IHByb3RlY3RlZDoKLSAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQ UF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4gX19idWls dGluX25hbnNsKCIiKTt9Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fTERC TF9ERU5PUk1fTUlOX187fQotIAotLSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9f cHBjNjRfXykpCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8IChfX0xE QkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQotKyAgICAvKiBJRUVFIDc1NCBxdWFk cnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLwotKyAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVY UFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOwotKyNlbHNlCi0rICAgIC8qIDEyOC1iaXQg SUJNIGRvdWJsZS1kb3VibGUgKi8KLSAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDI5MmJlYjJmY2QuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0 Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NjksNiArNzY5LDggQEAgZnVuY3Rp b24oY3h4X2xpbmtfc3lzdGVtX2xpYnJhcmllcyB0YXJnZXQpCi0gICAgIHRhcmdldF9saW5rX2xp YnJhcmllcygke3RhcmdldH0gUFJJVkFURSBhdG9taWMpCi0gICBlbmRpZigpCi0gCi0rI3NzcCAg dGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCi0r Ci0gICBpZiAoTUlOR1cpCi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJ VkFURSAiJHtNSU5HV19MSUJSQVJJRVN9IikKLSAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNh MTVmOWRiOGM5OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotQWxzbyBsaW5r IHRvIC1sZGwgdG8gcHJldmVudCB1bmRlZmluZWQgcmVmZXJlbmNlcy4KLQotLS0tIGEvbGliY3h4 YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4 dAotQEAgLTczLDYgKzczLDcgQEAKLSAgIGVuZGlmKCkKLSAKLSAgIGFkZF9saWJyYXJ5X2ZsYWdz X2lmKExJQkNYWEFCSV9IQVNfQ19MSUIgYykKLSsgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNY WEFCSV9IQVNfQ19MSUIgZGwpCi0gZW5kaWYoKQotIAotIGlmIChMSUJDWFhBQklfVVNFX0xMVk1f VU5XSU5ERVIpCi0tLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eC9DTWFr ZUxpc3RzLnR4dAotQEAgLTc0NSw2ICs3NDUsMTAgQEAKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFIG0pCi0gICBlbmRpZigpCi0gCi0rICBpZiAoTElCQ1hYX0hB U19DX0xJQikKLSsgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGRs KQotKyAgZW5kaWYoKQotKwotICAgaWYgKExJQkNYWF9IQVNfUlRfTElCKQotICAgICB0YXJnZXRf bGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgcnQpCi0gICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCBiL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NGFhNzU3NmVjZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYz ICswLDAgQEAKLVRoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdoaWNoIGRvZXMg bm90IGRlZmluZSBgX19wcGNfX2AuCi0KLS0tLSBhL2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53 aW5kX2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcu aAotQEAgLTQ5LDcgKzQ5LDcgQEAKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUg MTY3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5Ci0gIyAgZGVmaW5lIF9M SUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZf UkVHSVNURVJfUFBDNjQKLS0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQotKyMgZWxpZiBkZWZpbmVk KF9fcG93ZXJwY19fKQotICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMgMQotICMgIGRl ZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9D VVJTT1JfU0laRSAxMjQKLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzUmVzdG9y ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotQEAgLTM5 Miw3ICszOTIsNyBAQCBMbm92ZWM6Ci0gICBQUEM2NF9MUigzKQotICAgYmN0cgotIAotLSNlbGlm IGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQotIAotIERFRklO RV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3BwYzZqdW1wdG9F dikKLSAvLwotLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZlLlMKLSsrKyBi L2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi1AQCAtNTU0LDcgKzU1NCw3IEBA IERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKLSAgIGJscgotIAot IAotLSNlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQot IAotIC8vCi0gLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4dF90KiB0aHJl YWRfc3RhdGUpCi0tLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQv c3JjL2NvbmZpZy5oCi1AQCAtOTUsMTIgKzk1LDEyIEBACi0gI2RlZmluZSBfTElCVU5XSU5EX0JV SUxEX1NKTEpfQVBJUwotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJUwotICNlbmRp ZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgIGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgIFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoIWRlZmluZWQoX19BUFBMRV9fKSAmJiBk ZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg IChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgZGVmaW5lZChfX21pcHNfXykKLS0tLSBhL2xpYnVu d2luZC9zcmMvbGlidW53aW5kLmNwcAotKysrIGIvbGlidW53aW5kL3NyYy9saWJ1bndpbmQuY3Bw Ci1AQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndfaW5pdF9sb2Nh bCh1bndfY3Vyc29yX3QgKmN1cnNvciwKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c194ODZfNjQKLSAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gIyBkZWZpbmUgUkVHSVNU RVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19w cGMKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQg UmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGIt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDFjMGQxMzg1MjMuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxICswLDAgQEAKLS0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAotKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5o Ci1AQCAtMTAsMjEgKzEwLDEyIEBACi0gLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXgg Zm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KLSAKLSAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gCi0tI2lmZGVmIF9fQU5EUk9JRF9fCi0t I2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotLXR5cGVkZWYg dW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OwotLXR5cGVkZWYgZWxmX2dyZWdfdAotLSAgICBlbGZf Z3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdf dCkpXTsKLS10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsK LS0jaWZuZGVmIE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0t I2VuZGlmIC8vIE5UX0ZQUkVHU0VUCi0tI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLS0jaWZuZGVm IE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0tI2VuZGlmIC8v IE5UX0ZQUkVHU0VUCi0tI2VuZGlmCi0tI2Vsc2UgLy8gX19BTkRST0lEX18KLSsjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQotKyNkZWZpbmUgcHRfcmVncyBt dXNsX3B0X3JlZ3MKLSsjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotKyN1bmRlZiBwdF9yZWdzCi0r I2Vsc2UKLSAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotLSNlbmRpZiAvLyBfX0FORFJPSURfXwot KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxl ci1ydC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMGE5YTc3OWQxYi4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1jb21taXQgYmE0ZWRlNTk1ZmY5NTk5MjMy ZjVkZDJiNDM4NGMyNDMxMzdiNTNmYwotQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6ICAgVHVlIEp1biAyMiAyMzo0MDo1NCAyMDIxICswMjAwCi0KLSAg ICBlbmFibGUgY29tcGlsZXItcnQgc3VwcG9ydCBmb3IgcHBjMzIKLQotZGlmZiAtLWdpdCBhL2Nv bXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlIGIvY29tcGlsZXItcnQvY21ha2Uv YmFzZS1jb25maWctaXguY21ha2UKLWluZGV4IDFlZGFiNDMuLjVjMGM4YTIgMTAwNjQ0Ci0tLS0g YS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQotKysrIGIvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLUBAIC0xODIsOSArMTgyLDcgQEAgbWFjcm8o dGVzdF90YXJnZXRzKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRf QVJDSH0iIE1BVENIRVMgInBvd2VycGM2NGxlIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBv d2VycGM2NGxlICIiICItbTY0IikKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRf VEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjIikKLS0gICAgICBpZihDTUFLRV9TWVNURU1f TkFNRSBNQVRDSEVTICJBSVgiKQotLSAgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjICIi ICItbTMyIikKLS0gICAgICBlbmRpZigpCi0rICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBj ICIiICItbTMyIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGM2NCAiIiAiLW02NCIp Ci0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hF UyAiczM5MHgiKQotICAgICAgIHRlc3RfdGFyZ2V0X2FyY2goczM5MHggIiIgIiIpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCmlu ZGV4IDdjZTE4MDI4ZTRhMy4uN2IzNjFiYmJmNWJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0x Mi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtMSwyNSArMSwxNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEyJwogcGtnbmFtZT1sbHZtMTIKIHZlcnNpb249 MTIuMC4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3Zl cnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmln dXJlX2FyZ3M9IgogIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2CiAgLURFTkFC TEVfTElOS0VSX0JVSUxEX0lEPVlFUwotIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMKLSAtRExJ QkNYWF9DWFhfQUJJPWxpYmN4eGFiaQotIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJB Ulk9WUVTCi0gLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCi0gLURMSUJDWFhBQklf RU5BQkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKLSAtRExJQk9NUF9FTkFCTEVfU0hBUkVEPVlFUwot IC1ETElCT01QX0lOU1RBTExfQUxJQVNFUz1OTwogIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCiAg LURMTFZNX0JVSUxEX0RPQ1M9WUVTCiAgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCiAgLURTUEhJ TlhfV0FSTklOR1NfQVNfRVJST1JTPU5PCi0gLURMTFZNX0lOU1RBTExfVVRJTFM9WUVTCiAgLURM TFZNX0JVSUxEX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKICAt RExMVk1fRU5BQkxFX1JUVEk9WUVTCkBAIC01MSw4NyArNDMsMTAgQEAgY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVf Q0xBTkdEPU9GRiIgOzsKIGVzYWMKIAotX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2NsYW5nLXRv b2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kO2xsZCIKLQot X2xsZGJfZW5hYmxlPXllcwotX2xpYm9tcF9lbmFibGU9bm8KLQotY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCi0JcHBjNjRsZSopIDs7Ci0JcHBjKnxpNjg2KikgX2xsZGJfZW5hYmxlPW5v IDs7Ci1lc2FjCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXg4Nl82NCp8YWFy Y2g2NCp8cHBjNjQqKSBfbGlib21wX2VuYWJsZT15ZXM7OwotZXNhYwotCi1zdWJwYWNrYWdlcz0i Y2xhbmctdG9vbHMtZXh0cmEiCi0KLSMgbXVzdCBnbyBiZWZvcmUgY2xhbmcKLWlmIFsgIiRfbGli b21wX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JX2VuYWJsZWRfcHJvamVjdHMrPSI7b3Blbm1w IgotCXN1YnBhY2thZ2VzKz0iIGxpYm9tcCBsaWJvbXAtZGV2ZWwiCi0JIyBiZWNhdXNlIG9mIGNt YWtlIG5vbnNlbnNlIHJlZmVyZW5jaW5nIGxpYm9tcHRhcmdldC5zby4qCi0JZGVwZW5kcys9IiBs aWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1maQotCi1zdWJwYWNrYWdlcys9IiBjbGFu ZyBjbGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1jcHAKLSBsbHZtLWxpYnVud2luZCBs bHZtLWxpYnVud2luZC1kZXZlbCBsaWJjeHggbGliY3h4LWRldmVsCi0gbGliY3h4YWJpIGxpYmN4 eGFiaS1kZXZlbCBsaWJsbHZtMTIiCi0KLWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsg dGhlbgotCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUgZHVlIHRvIHB5dGhvbgotCV9lbmFi bGVkX3Byb2plY3RzKz0iO2xsZGIiCi0Jc3VicGFja2FnZXMrPSIgbGxkYiBsbGRiLWRldmVsIgot ZmkKLQotc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIKLQotY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKLQogcG9zdF9wYXRj aCgpIHsKLQlpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KLQkJCXZzZWQgLWkgJ3N8X19wdHJhY2Vf cmVxdWVzdHxpbnR8ZycgXAotCQkJCSR7d3Jrc3JjfS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nl c3MvTGludXgvTmF0aXZlUHJvY2Vzc0xpbnV4LmNwcAotCQlmaQotCQkjIGRpc2FibGUgZG9jcyBm b3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8gZ2VuZXJhdGUKLQkJdnNlZCAtaSAnL2FkZF9zdWJkaXJl Y3RvcnkoZG9jcykvZCcgXAotCQkJJHt3cmtzcmN9L2xsZGIvQ01ha2VMaXN0cy50eHQKLQlmaQot CiAJIyB1cGRhdGUgY29uZmlnLmd1ZXNzIGZvciBiZXR0ZXIgcGxhdGZvcm0gZGV0ZWN0aW9uCiAJ Y3AgJFhCUFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9hdXRvbWFrZS9jb25maWcu Z3Vlc3MgXAogCQkke3dya3NyY30vbGx2bS9jbWFrZQotCi0JIyBmaXggbGlua2VyIGZhaWx1cmVz IG9uIHNvbWUgYXJjaHMKLQl2c2VkIC1pICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjY19zIC4q LHNldChMSUJDWFhBQklfSEFTX0dDQ19TX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9saWJjeHhh YmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0 cyhnY2MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9s aWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0KLQkjIG5lZWQgbGlic3NwX25vbnNoYXJl ZCBvbiBzb21lIG11c2wgcGxhdGZvcm1zIChiZWNhdXNlIG9mIG5vZGVmYXVsdGxpYnMpCi0JY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYzY0KikgOzsKLQkJcHBjKi1tdXNsfGk2 ODYtbXVzbHxtaXBzKi1tdXNsKQotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9saWJ1bndpbmQv c3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xp YnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCi0JCQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9z cmMvQ01ha2VMaXN0cy50eHQKLQkJCXZzZWQgLWkgJ3MsI3NzcCwsJyAke3dya3NyY30vbGliY3h4 L0NNYWtlTGlzdHMudHh0Ci0JCQk7OwotCWVzYWMKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCQl4ODZfNjQtbXVzbCkgIyBzb21lIHNhbml0aXplciBjdXJyZW50bHkgb25seSBv biB4ODZfNjQgc3R1ZmYgbmVlZHMgYmFja3RyYWNlCi0JCQl2c2VkIC1pICdzLCMgU2V0IGNvbW1v biBsaW5rIGZsYWdzLixsaXN0KEFQUEVORCBTQU5JVElaRVJfQ09NTU9OX0xJTktfTElCUyBleGVj aW5mbyksJyBcCi0JCQkJJHt3cmtzcmN9L2NvbXBpbGVyLXJ0L0NNYWtlTGlzdHMudHh0Ci0JCQk7 OwotCQlhcm0qLW11c2x8aTY4Ni1tdXNsKSAjIHNhbml0aXplciBjb2RlIGlzIGJyb2tlbiBzaW5j ZSBpdCBkdXBsaWNhdGVzIHNvbWUgbGliYyBiaXRzCi0JCQl2c2VkIC1pICdzL3NldChDT01QSUxF Ul9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBUUlVFKS9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklU SVpFUl9DT01NT04gRkFMU0UpLycgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9jbWFrZS9j b25maWctaXguY21ha2UKLQkJCTs7Ci0JZXNhYwogfQogCiBwcmVfY29uZmlndXJlKCkgewpAQCAt MTU4LDEwICs3Myw4IEBAIHByZV9jb25maWd1cmUoKSB7CiAJCQljbWFrZSAuLi8uLiAtRENNQUtF X0JVSUxEX1RZUEU9UmVsZWFzZSBcCiAJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJs ZWRfcHJvamVjdHN9CiAJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4KLQkJbWFr ZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgogCQlbICIkX2xsZGJf ZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxz L1RhYmxlR2VuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30v bGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKLQkJY29uZmlndXJlX2FyZ3MrPSIgLURD TEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10YmxnZW4i CiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9IiAtRExM REJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10YmxnZW4iCiAJ CWNkIC4uLy4uCiAJZmkKQEAgLTIwMiwyMTggKzExNSw2IEBAIGRvX2luc3RhbGwoKSB7CiAJaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi9sbHZt LWNvbmZpZy1ob3N0CiAJZmkKLQotCSMgSW5zdGFsbCBsaWJjeHhhYmkgaGVhZGVycwotCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9fX2N4eGFiaV9jb25maWcuaCA2NDQgdXNy L2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvY3h4YWJpLmgg NjQ0IHVzci9pbmNsdWRlCi0KLQkjIEluc3RhbGwgbGlidW53aW5kIGhlYWRlcnMKLQl2aW5zdGFs bCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmggNjQ0IHVz ci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL2xpYnVud2lu ZC5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS91bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5k L2luY2x1ZGUvbWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmggXAotCQk2NDQgdXNyL2lu Y2x1ZGUvbWFjaC1vCi19Ci0KLWNsYW5nLWFuYWx5emVyX3BhY2thZ2UoKSB7Ci0JcHljb21waWxl X2RpcnM9InVzci9zaGFyZS9zY2FuLXZpZXciCi0JZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSBweXRob24zIHBlcmwiCi0Jc2hvcnRfZGVzYys9IiAtIEEgc291cmNlIGNvZGUg YW5hbHlzaXMgZnJhbWV3b3JrIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLWFuYWx5emVyLmxs dm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL3Nj YW4tYnVpbGQuMQotCQl2bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9zaGFy ZS9zY2FuLSoiCi0JCXZtb3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5emVyIgotCX0KLX0KLQotY2xh bmctdG9vbHMtZXh0cmFfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9 ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIKLQlzaG9ydF9kZXNjKz0iIC0g RXh0cmEgQ2xhbmcgdG9vbHMiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZXh0 cmEvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy10aWR5Ci0J CXZtb3ZlIHVzci9iaW4vY2xhbmctYXBwbHktcmVwbGFjZW1lbnRzCi0JCXZtb3ZlIHVzci9iaW4v Y2xhbmctcXVlcnkKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1yZW5hbWUKLQkJdm1vdmUgdXNyL2Jp bi9jbGFuZy10aWR5Ci0JCXZtb3ZlIHVzci9iaW4vZGlhZ3Rvb2wKLQkJdm1vdmUgdXNyL2Jpbi9m aW5kLWFsbC1zeW1ib2xzCi0JCXZtb3ZlIHVzci9iaW4vaG1hcHRvb2wKLQkJdm1vdmUgdXNyL2Jp bi9tb2R1bGFyaXplCi0JCXZtb3ZlIHVzci9iaW4vcHAtdHJhY2UKLQkJdm1vdmUgdXNyL2Jpbi9z YW5jb3YKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdBcHBseVJlcGxhY2VtZW50cyoiCi0JCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nUXVlcnkqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1Rp ZHkqIgotCQl2bW92ZSAidXNyL3NoYXJlL2NsYW5nLyp0aWR5KiIKLQkJdm1vdmUgdXNyL3NoYXJl L2RvYy9jbGFuZy10b29scwotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZXh0cmFjbGFuZ3Rv b2xzLjEKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2RpYWd0b29sLjEKLQl9Ci19Ci0KLWNs YW5nX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCi0J IGxpYmNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAtIEMgbGFu Z3VhZ2UgZmFtaWx5IGZyb250ZW5kIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3Jn LyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmcKLQkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctYwotCQl2bW92ZSAidXNyL2Jpbi8qY2xhbmcqIgotCQl2bW92ZSB1 c3IvYmluL2MtaW5kZXgtdGVzdAotCQl2bW92ZSB1c3IvbGliL2NsYW5nCi0JCXZtb3ZlIHVzci9s aWIvY21ha2UvY2xhbmcKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLmEiCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL2NsYW5nCi0JCXZtb3ZlIHVz ci9zaGFyZS9kb2MvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKLQl9 Ci19Ci0KLWxpYmNsYW5nX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMgZnJvbnRlbmQg cnVudGltZSBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZy5zby4qIgotCX0KLX0KLQotbGliY2xhbmctY3BwX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCi0JfQotfQot Ci1sbGRfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCXNob3J0X2Rlc2MrPSIgLSBs aW5rZXIiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSB1c3IvYmluL2xsZCoKLQkJdm1vdmUgdXNyL2Jpbi93YXNtLWxkCi0JCXZtb3Zl IHVzci9iaW4vbGQubGxkKgotCQl2bW92ZSB1c3IvYmluL2xkNjQubGxkKgotCQl2bW92ZSB1c3Iv c2hhcmUvZG9jL2xsZAotCX0KLX0KLQotbGxkLWRldmVsX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNh YmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J aG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCWRlcGVuZHM9ImxsZD49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxk Ci0JCXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgot CX0KLX0KLQotbGxkYl9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcys9 IiBweXRob24zLXNpeCIKLQlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKLQlob21lcGFn ZT0iaHR0cHM6Ly9sbGRiLmxsdm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L2Jpbi8qbGxkYioKLQkJdm1vdmUgdXNyL2xpYi9saWJsbGRiKnNvLioKLQkJdm1vdmUgL3Vzci9s aWIvcHl0aG9uKgotCX0KLX0KLQotbGxkYi1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJs ZWQ9eWVzCi0JZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlzaG9ydF9k ZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIq LnNvIgotCX0KLX0KLQotbGx2bS1saWJ1bndpbmRfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJ1bndp bmQuc28uKiIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9Imxs dm0tbGlidW53aW5kPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCWNvbmZsaWN0cz0ibGlidW53 aW5kLWRldmVsPj0wIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGliL2xpYnVud2lu ZC5zbwotCQl2bW92ZSB1c3IvbGliL2xpYnVud2luZC5hCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS8q dW53aW5kKiIKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbWFjaC1vCi0JCXZtb3ZlIHVzci9zaGFyZS9k b2MvbGlidW53aW5kCi0JfQotfQotCi1saWJjeHhhYmlfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNj Kz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgInVzci9saWIvbGliYysrYWJpLnNvLioiCi0JfQotfQotCi1saWJjeHhhYmktZGV2ZWxf cGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMr KyAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4eGFiaT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmku c28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmkuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKmN4 eGFiaSoiCi0JfQotfQotCi1saWJjeHhfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xp YmMrKy5zby4qIgotCX0KLX0KLQotbGliY3h4LWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5k cz0ibGliY3h4Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSB1c3IvbGliL2xpYmMrKy5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrKy5hCi0JCXZtb3Zl IHVzci9saWIvbGliYysrZXhwZXJpbWVudGFsLmEKLQkJdm1vdmUgdXNyL2luY2x1ZGUvYysrCi0J CXZtb3ZlIHVzci9zaGFyZS9kb2MvbGliY3h4Ci0JfQotfQotCi1saWJvbXBfcGFja2FnZSgpIHsK LQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSIKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJvbXAuc28KLQkJdm1vdmUgInVzci9saWIvbGli b21wdGFyZ2V0LnJ0bC4qLnNvIgotCQl2bW92ZSB1c3IvbGliL2xpYmFyY2hlci5zbwotCQl2bW92 ZSAidXNyL2xpYi9saWJvbXAqLnNvLioiCi0JfQotfQotCi1saWJvbXAtZGV2ZWxfcGFja2FnZSgp IHsKLQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSAtIGRldmVs b3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK LQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zbyIKLQkJdm1vdmUg InVzci9saWIvbGliYXJjaGVyKiIKLQkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKLQkJdm1v dmUgInVzci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNy L3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5t cAotCX0KIH0KIAogbGlibGx2bTEyX3BhY2thZ2UoKSB7CgpGcm9tIDQ5YmI4MmM2YzYyZWVmMjBl OWU2ZmIzNmI5NWMwYmYzYTBjY2NhNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0 c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1Nzo1OSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDQvMzBdIHJ0YWdzOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtn cy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgYi9zcmNw a2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IGI0OTZhMWIwZTcyMS4uOWIxNjFlNjkwZDc2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnRhZ3MvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdydGFncycKIHBrZ25hbWU9 cnRhZ3MKIHZlcnNpb249Mi4zOAotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVpbGRfc3R5bGU9 Y21ha2UKICMgRG9uJ3QgcnVuIHRlc3RzIGluIGRvX2luc3RhbGwsIHBsZWFzZS4KIGNvbmZpZ3Vy ZV9hcmdzPSItRFNLSVBfQ1RFU1Q9VFJVRSIKCkZyb20gOTE2NTE5MzBjNmMyMzc3YjVkZDc3NDkz NGIxZDgwNGQyZmMxODliNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x P0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0 cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjI3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8zMF0gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2Jw ZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggMjhhYjNjNjI2Mzk5Li5lYjI0ODBkMjIzMGUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9icGZ0 cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JwZnRy YWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE0LjEKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtl CiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIgICMgbmVlZHMgcm9vdCB0byBy dW4KCkZyb20gZWYyY2ViZDdlODA4MGFkMTg1YzE2ZDJhMzJkMWU1YmIwYjNlZTBmNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJl cnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEph biAyMDIyIDE1OjU4OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8zMF0gY2xhenk6IHJlYnVp bGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2NsYXp5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKaW5kZXggMTFmM2Jh YjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6eQogdmVyc2lvbj0xLjExCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVscGVyPXFlbXUKIGhvc3Rt YWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gMjZlZWNmZGVlODI0MzcxNzEyY2ZkOThlYTM2ZTlmNDUy OWQ0YTU0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIw RHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4K RGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8z MF0gY2NsczogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvY2Nscy90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpp bmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jY2xz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1lPWNjbHMKIHZlcnNpb249MC4yMDIxMDMz MAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVw ZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVwZW5kcz0ibGx2bSBuY3Vyc2VzLWRldmVs IHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xzLWV4dHJhIgoKRnJvbSA1OTZlOWM0YmI4 NjljZTJmZTZlZmE4ZmU0Mzc4M2E4M2Q2YTg2N2I5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBs ZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTU6NTk6MzUgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzMwXSBpbmNsdWRlLXdoYXQteW91LXVzZTogcmVidWlsZCBm b3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKaW5kZXggYjEzYmI3ZWU1NmFmLi5iNGIx Njc0MDFlYmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1ZGUtd2hhdC15b3UtdXNlJwogcGtnbmFt ZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0wLjE2Cit2ZXJzaW9uPTAuMTcKIHJldmlz aW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCiBsaWNl bnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5jbHVkZS13aGF0LXlvdS11c2Uub3JnLyIK IGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcvZG93bmxvYWRzLyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6IgotY2hlY2tzdW09OGQ2ZmM5YjI1NTM0M2Jj MWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVlMDA3NjAzNjExOWZmNWExYworY2hlY2tz dW09ZWNhN2MwNGY4YjQxNmI2Mzg1ZWQwMGUzMzY2OWE3ZmE0NjkzY2QyNmNiNzJiNTIyY2RlNTU4 ODI4ZWIwYzY2NQogcHl0aG9uX3ZlcnNpb249MwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDA0 MWJiNDVhODM2OTk5OWEzNzM3YjY5MDY3YWJhN2EyM2E3MjM4NjEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxs b3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNjow MToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzBdIGNvZGVsaXRlOiByZWJ1aWxkIGZvciBs bHZtMTMKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlCmluZGV4IDNhOTkz YTJjMGNmYi4uMjRlMmM4NzlkZDQ1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29kZWxpdGUKIHZlcnNpb249MTUu MC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPWNtYWtlLXd4V2lkZ2V0cy1ndGszCiBjb25maWd1cmVfYXJncz0iLURXSVRIX1BDSD0wIC1E V0lUSF9XWF9DT05GSUc9d3gtY29uZmlnLWd0azMKCkZyb20gNjNmZWRlZjEwMjI3MWI1NzdmYThi NTc4MGEwNWE3MjgzZDVjZjA1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVk ZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE2OjIyOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxMC8zMF0ga2RldmVsb3A6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dz L2tkZXZlbG9wL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSBi L3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKaW5kZXggMDEwMTg1ODQ5ZDgwLi5hYmYwOGMzMTMw NzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9r ZGV2ZWxvcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tk ZXZlbG9wJwogcGtnbmFtZT1rZGV2ZWxvcAogdmVyc2lvbj0yMS4xMi4zCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVT VElORz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgcXQ1LXFtYWtl IHF0NS1ob3N0LXRvb2xzIHF0NS10b29scwoKRnJvbSAyZTVjODNiNzYzY2ExNDI5OGI2Zjk2YTQz OWNhNDJhZGZmN2EzNjUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3Ry ZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTY6MjM6MDcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzMwXSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2p1Q2kr Ky90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIGIvc3JjcGtncy9q dUNpKysvdGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsrJwogcGtnbmFtZT1q dUNpKysKIHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIF9saWJjbGFuZ21t X2NvbW1pdD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZjZmM3ZTI0YWFlOTU5MCIKIF90aW55 X2NvbW1pdD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVlNjI4YTY5MGU3NzlmNSIKIHdya3Ny Yz0ianVjaXBwLXYke3ZlcnNpb259IgoKRnJvbSA4MDIyMzhkNjVkZTEyZTFiYTIxMTM2NzJjNjQy NzQzMjkwOTE2ODY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91 aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMu b3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTg6MzA6MDEgKzAyMDAKU3ViamVjdDogW1BBVENI IDEyLzMwXSBsbHZtMTM6IGZpeCBsaWJvbXAqIHBhY2thZ2VzCgotLS0KIHNyY3BrZ3MvbGx2bTEz L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIGIvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUKaW5kZXggMDhkODQ3NDcyNTI1Li5iZmM5MTA1NmQyNzcgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEzJwogcGtnbmFt ZT1sbHZtMTMKIHZlcnNpb249MTMuMC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9 Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9z dHlsZT1jbWFrZQpAQCAtMzk3LDYgKzM5Nyw3IEBAIGxpYm9tcF9wYWNrYWdlKCkgewogCXNob3J0 X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSB1c3IvbGliL2xpYm9tcHRhcmdl dC5zbwogCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVz ci9saWIvbGliYXJjaGVyLnNvCiAJfQpAQCAtNDA2LDcgKzQwNyw2IEBAIGxpYm9tcC1kZXZlbF9w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5 IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgog CQl2bW92ZSAidXNyL2xpYi9saWJhcmNoZXIqIgogCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5o IgogCQl2bW92ZSAidXNyL2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgoKRnJv bSBkNTMzMGMxNDVmZWM5OGZlNmNmMThmYWI3N2RkMjBiZWIxZTU5ODJkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89 CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIy IDE0OjMzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8zMF0gY2hyb21pdW06IHJlYnVpbGQg Zm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgOCArLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRl CmluZGV4IGY2MTU0ZTIyMzc1MS4uMWVkZjYxYTMzOThmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2No cm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTIwLDcg KzIwLDcgQEAgZGVzY19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRl c2Nfb3B0aW9uX2pzX29wdGltaXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0n cyBVSSIKIGRlc2Nfb3B0aW9uX3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNo YXJpbmcgZm9yIFdlYlJUQyB2aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0 X2lmIGNsYW5nICJjbGFuZyBsbGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJs IGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRf aWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTMiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwg Z3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50 LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxh bmQtZGV2ZWwgbGliZXBveHktZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0ayst ZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGktZGV2ZWwg bGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGls cy1kZXZlbApAQCAtMjY2LDEyICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSdkaXNhYmxl X2ZpZWxkdHJpYWxfdGVzdGluZ19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNpYWxfYnVpbGQ9 dHJ1ZScKLQotCQkjIHNlZ2ZhdWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19jZmk9ZmFsc2Un Ci0JCSd1c2VfdGhpbl9sdG89ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwotCQknY2hy b21lX3Bnb19waGFzZT0wJwogCSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJv bSA2NWYxZWY0MDRjMjVmZGIxNDkzZGNiNmU1OTNlNGZlNDExOTBkMGMwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89 CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIy IDE0OjM5OjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8zMF0gbGx2bTEyOiByZW1vdmUKCi0t LQogc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IC4uLi9sbHZtMTIvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSAtLQog c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoICAgIHwgIDU3IC0tLS0t LS0tLQogLi4uL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCAgIHwgIDMw IC0tLS0tCiAuLi4vcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoICAgICAgfCAg MTEgLS0KIC4uLi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCAgICAgICB8ICAx OCAtLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoICB8ICAz NiAtLS0tLS0KIC4uLi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCAgICB8 ICAyNSAtLS0tCiBzcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAg fCAxMjAgKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xsdm0xMi91cGRhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDMgLQogMTAgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAzMDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvSU5T VEFMTC5tc2cKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZtLUNv bmZpZy1sbHZtLWNvbmZpZy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNC1vdmVy cmlkZS1vcHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L0lOU1RBTEwubXNnIGIvc3JjcGtncy9sbHZtMTIvSU5TVEFMTC5tc2cKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMDRhY2Y3YjUzMGMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xMi9JTlNUQUxMLm1zZwpAQCAtMCwwICsxIEBACitsbHZtMTIgaXMgbm8g bG9uZ2VyIHByb3ZpZGVkIGJ5IFZvaWQgTGludXgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xMi9maWxlcy9s bHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy ZmEwOGM5YmU2OTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9maWxlcy9sbHZt LUNvbmZpZy1sbHZtLWNvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jaW5j bHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgotCi0jaWYgX19XT1JEU0laRSA9PSAzMgotI2luY2x1ZGUg Imxsdm0tY29uZmlnLTMyLmgiCi0jZWxpZiBfX1dPUkRTSVpFID09IDY0Ci0jaW5jbHVkZSAibGx2 bS1jb25maWctNjQuaCIKLSNlbHNlCi0jZXJyb3IgIlVua25vd24gd29yZCBzaXplIgotI2VuZGlm CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gg Yi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGYyYTNmOGQ2MjgxMy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDU3ICswLDAgQEAKLUZyb20gZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5YWM0 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3 YXhlQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAotU3Vi amVjdDogW1BBVENIIDMvM10gbXVzbAotCi0tLS0KLSBpbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFy Z2V0TGlicmFyeUluZm8uaCB8IDkgKysrKysrKysrCi0gbGliL1N1cHBvcnQvRHluYW1pY0xpYnJh cnkuY3BwICAgICAgICAgICAgfCAyICstCi0gbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYyAg ICAgICAgICAgICAgfCA2ICsrKy0tLQotIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0 ZXN0LmNjICAgIHwgMSArCi0gNSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExp YnJhcnlJbmZvLmggYi9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAot aW5kZXggMzRhOGExZTMuLjEyMTRlY2U1IDEwMDY0NAotLS0tIGEvbGx2bS9pbmNsdWRlL2xsdm0v QW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAotKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0vQW5h bHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAotQEAgLTE4LDYgKzE4LDE1IEBACi0gI2luY2x1ZGUg Imxsdm0vSVIvUGFzc01hbmFnZXIuaCIKLSAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCi0gCi0rI3Vu ZGVmIGZvcGVuNjQKLSsjdW5kZWYgZnNlZWtvNjQKLSsjdW5kZWYgZnN0YXQ2NAotKyN1bmRlZiBm c3RhdHZmczY0Ci0rI3VuZGVmIGZ0ZWxsbzY0Ci0rI3VuZGVmIGxzdGF0NjQKLSsjdW5kZWYgc3Rh dDY0Ci0rI3VuZGVmIHRtcGZpbGU2NAotKwotIG5hbWVzcGFjZSBsbHZtIHsKLSB0ZW1wbGF0ZSA8 dHlwZW5hbWUgVD4gY2xhc3MgQXJyYXlSZWY7Ci0gY2xhc3MgVHJpcGxlOwotZGlmZiAtLWdpdCBh L2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5peC9E eW5hbWljTGlicmFyeS5pbmMKLWluZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKLS0tLSBh L2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKLSsrKyBiL2xsdm0vbGli L1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKLUBAIC0xMDIsNyArMTAyLDcgQEAgc3Rh dGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKLSAKLSAvLyBUaGlz IG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBzeW1i b2wKLSAjZGVmaW5lIEVYUExJQ0lUX1NZTUJPTChTWU0pIFwKLS0gICBpZiAoIXN0cmNtcChTeW1i b2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0KLSsgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAj U1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQotIAotIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUgYSB3 ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKLSAvLyBt YWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWlyZW1l bnRzLiBTbywgd2UKLWRpZmYgLS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9n dGVzdC5jYyBiL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCi1pbmRleCBk ODgyYWIyZS4uZjFmYjEyZDAgMTAwNjQ0Ci0tLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2ds ZXRlc3Qvc3JjL2d0ZXN0LmNjCi0rKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qv c3JjL2d0ZXN0LmNjCi1AQCAtMTI4LDYgKzEyOCw3IEBACi0gCi0gI2lmIEdURVNUX0NBTl9TVFJF QU1fUkVTVUxUU18KLSAjIGluY2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCi0rIyBpbmNs dWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKLSAjIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBO T0xJTlQKLSAjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+ICAvLyBOT0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDA3MWQ5NjRiZDM3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzAgKzAsMCBAQAotVGhpcyBwYXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBwYzY0IHVu Y29uZGl0aW9uYWxseSB1bmxlc3Mgb3ZlcnJpZGRlbi4gV2UKLW5lZWQgdGhpcyBiZWNhdXNlIHVu bGlrZSBtb3N0IGRpc3Ryb3Mgd2UgdXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBtdXNsCi1v biBiaWcgZW5kaWFuIHBwYzY0LgotCi1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQ Q1RhcmdldE1hY2hpbmUuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUu Y3BwCi1pbmRleCAwNjM0ODMzZS4uYjdjYmMyZTcgMTAwNjQ0Ci0tLS0gYS9sbHZtL2xpYi9UYXJn ZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKLUBAIC0yMjIsOSArMjIyLDggQEAgc3RhdGljIFBQ Q1RhcmdldE1hY2hpbmU6OlBQQ0FCSSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBsZSAmVFQs Ci0gCi0gICBzd2l0Y2ggKFRULmdldEFyY2goKSkgewotICAgY2FzZSBUcmlwbGU6OnBwYzY0bGU6 Ci0tICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOwotICAgY2FzZSBU cmlwbGU6OnBwYzY0OgotLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2 MTsKLSsgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Ci0gICBkZWZh dWx0OgotICAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dOOwotICAg fQotZGlmZiAtLWdpdCBhL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwgYi90 ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCi1pbmRleCA4YjFjZjZiNS4uMjk2 YTJhZmEgMTAwNjQ0Ci0tLS0gYS9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1h YmkubGwKLSsrKyBiL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAot QEAgLTEsNCArMSw1IEBACi0tOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlw bGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MQotKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKLSs7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxlQ2hlY2sg JXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgotIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5l aW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBl bGZ2MSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKLSA7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJl Zml4PUNIRUNLLUVMRnYyCi0gOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlw bGU9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hl Y2stcHJlZml4PUNIRUNLLUVMRnYyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xs dm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGI1ZDE1OTc0Mzc1ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv bGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg QEAKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLSsrKyBi L2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKLUBAIC0xNjUsNyArMTY1 LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYg Q1BVLCBTdHJpbmdSZWYgRlMpIHsKLSAKLSAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNE KCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0gICAgICAg VGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8 fAotLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2woKSkKLSsgICAgICBpc1RhcmdldExpbnV4KCkp Ci0gICAgIFNlY3VyZVBsdCA9IHRydWU7Ci0gCi0gICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWQwZTRiMzFiMzIuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgYWxsb3dzIHVzIHRvIG92ZXJy aWRlIHRoZSBvcHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9ybXMgY2FuCi1kZWFs IHdpdGggLU8zLgotCi0tLS0gYS9sbHZtL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9sbHZtL0NNYWtl TGlzdHMudHh0Ci1AQCAtOTE4LDYgKzkxOCwxMiBAQCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFL RV9DWFhfQ09NUElMRVJfSUR9IiBNQVRDSEVTICJDbGFuZyIgKQotICAgbGx2bV9yZXBsYWNlX2Nv bXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiLU8yIikKLSBlbmRp ZigpCi0gCi0rc2V0KFZPSURfQ1hYX09QVF9GTEFHUyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXph dGlvbiBsZXZlbCB0byB1c2UiKQotKwotK2lmIChOT1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVR VUFMICIiKQotKyAgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFH U19SRUxFQVNFICItTzMiICIke1ZPSURfQ1hYX09QVF9GTEFHU30iKQotK2VuZGlmKCkKLSsKLSAj IFB1dCB0aGlzIGJlZm9yZSB0YmxnZW4uIEVsc2Ugd2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVu Y2UuCi0gYWRkX3N1YmRpcmVjdG9yeShsaWIvRGVtYW5nbGUpCi0gYWRkX3N1YmRpcmVjdG9yeShs aWIvU3VwcG9ydCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUt cHBjLWJpZ3BpYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJp Z3BpYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMzMjY4N2I5ZDkyLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmln cGljLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSBmM2RiZGQ0OWMw NmJmYWZjMWQ2MTM4MDk0Y2Y0Mjg4OWMxNGQzOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+Ci1EYXRlOiBTdW4sIDMg Tm92IDIwMTkgMTA6NTc6MjcgLTA2MDAKLVN1YmplY3Q6IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENd IEFzc3VtZSBCaWdQSUMgaWYgbm8gUElDIGxldmVsIGlzIHNwZWNpZmllZAotCi0tLS0KLSBsbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcCAgfCAyICstCi0gbGx2bS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIHwgMiArLQotIDIgZmlsZXMgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL1Rh cmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0Fz bVByaW50ZXIuY3BwCi1pbmRleCBjY2UyMWYzMi4uODdjYTVmOWIgMTAwNjQ0Ci0tLS0gYS9sbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAotKysrIGIvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKLUBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBQ UENBc21QcmludGVyOjpFbWl0VGxzQ2FsbChjb25zdCBNYWNoaW5lSW5zdHIgKk1JLAotIAotICAg Ly8gQWRkIDMyNzY4IG9mZnNldCB0byB0aGUgc3ltYm9sIHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0 ZXN0IEdPVC9QTFQgQUJJLgotICAgaWYgKEtpbmQgPT0gTUNTeW1ib2xSZWZFeHByOjpWS19QTFQg JiYgU3VidGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmCi0tICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9 PSBQSUNMZXZlbDo6QmlnUElDKQotKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6 OlNtYWxsUElDKQotICAgICBUbHNSZWYgPSBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZCgKLSAgICAg ICAgIFRsc1JlZiwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91 dENvbnRleHQpOwotICAgY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PID0gTUktPmdldE9wZXJhbmQo Mik7Ci1kaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCBi L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKLWluZGV4IDVjYzE4MGQ3Li5h NWIwMjU2NSAxMDA2NDQKLS0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExv d2VyLmNwcAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3Bw Ci1AQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBNQ09wZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0 IE1hY2hpbmVPcGVyYW5kICZNTywgY29uc3QgTUNTeW1ib2wgKlN5bWJvbCwKLSAgIGNvbnN0IE1D RXhwciAqRXhwciA9IE1DU3ltYm9sUmVmRXhwcjo6Y3JlYXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4 KTsKLSAgIC8vIElmIC1tc2VjdXJlLXBsdCAtZlBJQywgYWRkIDMyNzY4IHRvIHN5bWJvbC4KLSAg IGlmIChTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYgVE0uaXNQb3NpdGlvbkluZGVwZW5kZW50 KCkgJiYKLS0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMgJiYKLSsg ICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQyAmJgotICAgICAgIE1P LmdldFRhcmdldEZsYWdzKCkgPT0gUFBDSUk6Ok1PX1BMVCkKLSAgICAgRXhwciA9Ci0gICAgICAg ICBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZChFeHByLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMy NzY4LCBDdHgpLCBDdHgpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZt LTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YTAwYWJkMjE2NjY1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCww IEBACi1GaXggZmFpbHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBv biBhYXJjaDY0OgotCi0gICAgRmFpbGluZyBUZXN0cyAoOCk6Ci0gICAgICAgIExMVk0tVW5pdCA6 OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0 LkFsbG9jQW5kUmVsZWFzZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9y dFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMwot ICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVz dHMvTWFwcGVkTWVtb3J5VGVzdC5FbmFibGVkV3JpdGUvMwotICAgICAgICBMTFZNLVVuaXQgOjog U3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5N dWx0aXBsZUFsbG9jQW5kUmVsZWFzZS8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVO ZWFyLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCi0gICAgICAgIExMVk0t VW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1v cnlUZXN0Llplcm9OZWFyLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0 VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKLQot VXBzdHJlYW0tSXNzdWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy NzgjYzEwCi0KLS0tLSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCi0rKysgYi9s bHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5LmluYwotQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGlj IGludCBnZXRQb3NpeFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgewotICAgICByZXR1 cm4gUFJPVF9SRUFEIHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKLSAgIGNhc2UgbGx2bTo6c3lz OjpNZW1vcnk6Ok1GX0VYRUM6Ci0gI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk KF9fUE9XRVJQQ19fKSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCi0tICAgICBkZWZpbmVkKF9Q T1dFUikgfHwgZGVmaW5lZChfQVJDSF9QUEMpKQotKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRl ZmluZWQoX0FSQ0hfUFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJj aDY0X18pKSkKLSAgICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0 aGF0IGhhcyBubyByZWFkIHBlcm1pc3Npb24KLSAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBj b25zZXF1ZW5jZXMuICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQotICAgICAv LyBDYWNoZSB1c2VzIGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFy ZSB0cmVhdGVkIGJ5CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGx2bTEyL3RlbXBsYXRlCmluZGV4IDdiMzYxYmJiZjViYy4uZTdlNDBjYWU0MTNlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1w bGF0ZQpAQCAtMSwxMjUgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBr Z25hbWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249Mwotd3Jrc3JjPSJsbHZtLXBy b2plY3QtJHt2ZXJzaW9ufS5zcmMiCi1idWlsZF93cmtzcmM9bGx2bQotYnVpbGRfc3R5bGU9Y21h a2UKLWNvbmZpZ3VyZV9hcmdzPSIKLSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRl dgotIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAtRExMVk1fSU5DTFVERV9ET0NTPVlF UwotIC1ETExWTV9CVUlMRF9ET0NTPVlFUwotIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwotIC1E U1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlF UwotIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVTCi0gLURMTFZNX0VOQUJMRV9SVFRJPVlFUwot IC1ETExWTV9FTkFCTEVfRkZJPVlFUwotIC1ETExWTV9CSU5VVElMU19JTkNESVI9L3Vzci9pbmNs dWRlIgotaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbjMgemxpYi1kZXZlbCBsaWJmZmktZGV2 ZWwgc3dpZyBweXRob24zLVNwaGlueAotIHB5dGhvbjMtcmVjb21tb25tYXJrIHB5dGhvbjMtc3Bo aW54LWF1dG9tb2RhcGkiCi1tYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCB6bGliLWRldmVsIGVs ZnV0aWxzLWRldmVsIGxpYmZmaS1kZXZlbCBsaWJlZGl0LWRldmVsCi0gbGlieG1sMi1kZXZlbCBi aW51dGlscy1kZXZlbCBsaWJhdG9taWMtZGV2ZWwiCi1kZXBlbmRzPSJsaWJsbHZtMTI+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCi1zaG9ydF9kZXNjPSJMb3cgTGV2ZWwgVmlydHVhbCBNYWNoaW5l IgorcmV2aXNpb249NAorYnVpbGRfc3R5bGU9bWV0YQorc2hvcnRfZGVzYz0iTG93IExldmVsIFZp cnR1YWwgTWFjaGluZSAocmVtb3ZlZCBwYWNrYWdlKSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+IgotbGljZW5zZT0iQXBhY2hlLTIuMCIKK2xpY2Vuc2U9Im1ldGFwYWNr YWdlIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmxsdm0ub3JnIgotZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0k e3ZlcnNpb259L2xsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYy50YXIueHoiCi1jaGVja3N1bT0x MjljYjI1Y2QxMzY3N2FhZDk1MWNlNWMyZGViMGZlNGFmYzFlOWQ5ODk1MGY1M2I1MWJkY2ZiNWE3 M2FmYTBlCi1saWIzMmRpc2FibGVkPXllcwotcHl0aG9uX3ZlcnNpb249MwotCi1pZiBbICIkWEJQ U19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETElC Q1hYX0hBU19NVVNMX0xJQkM9WUVTIgotCW1ha2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVs IgotCWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCi1maQotCi0jICJvcGVyYW5kIG91dCBv ZiByYW5nZSIgYXNzZW1ibGVyIGZhaWx1cmVzCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQlwcGM2NCopIDs7Ci0JcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVf Q0xBTkdEPU9GRiIgOzsKLWVzYWMKLQotcG9zdF9wYXRjaCgpIHsKLQkjIHVwZGF0ZSBjb25maWcu Z3Vlc3MgZm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KLQljcCAkWEJQU19DT01NT05ESVIv ZW52aXJvbm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCi0JCSR7d3Jrc3Jj fS9sbHZtL2NtYWtlCi19Ci0KLXByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwgdHJpcGxldAotCi0J IyBWYXN0bHkgcmVkdWNlIHNpemUgb2YgZGVidWdnaW5nIHN5bWJvbHM6Ci0JQ0ZMQUdTPSR7Q0ZM QUdTLyAtZy8gLWcxfQotCUNYWEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9Ci0KLQkjIHNpbmNl IGdjYzksIHRoZSBidWlsZCBsaWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJl Y2F1c2UKLQkjIG9mIGNsYW5nIGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUg Y2FsbCB0byB0aGUgUExULCBzbwotCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAotCWNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCW1pcHMqLW11c2x8cHBj KikgY29uZmlndXJlX2FyZ3MrPSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OwotCWVzYWMK LQotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQltc2dfbm9ybWFsICJCdWlsZGluZyBo b3N0IHRibGdlblxuIgotCQlta2RpciAtcCBidWlsZC9IT1NUCi0JCWNkIGJ1aWxkL0hPU1QKLQkJ Q0M9IiRCVUlMRF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwK LQkJCUNYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBc Ci0JCQljbWFrZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCi0JCQktRExMVk1f RU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9Ci0JCW1ha2UgJHttYWtlam9ic30g LUMgdXRpbHMvVGFibGVHZW4KLQkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2Ug JHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgotCQljb25maWd1cmVfYXJn cys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10 YmxnZW4iCi0JCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9 IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10Ymxn ZW4iCi0JCWNkIC4uLy4uCi0JZmkKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgot CQlpNjg2KikgX2FyY2g9Ilg4NiI7OwotCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7Ci0JCWFybXY1 KikgX2FyY2g9IkFybXY1dGUiOzsKLQkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsKLQkJYXJtdjcq KSBfYXJjaD0iQXJtdjciOzsKLQkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7Ci0JCW1pcHMq KSBfYXJjaD0iTWlwcyI7OwotCQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OwotCQlyaXNjdjY0Kikg X2FyY2g9IlJJU0NWNjQiOzsKLQllc2FjCi0KLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVU Oi0kWEJQU19UUklQTEVUfQotCi0JY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNI PSR7X2FyY2h9IgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBs ZXR9IgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0 cmlwbGV0fSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLQljZCBidWlsZAotCWNtYWtlIC1EQ01BS0Vf SU5TVEFMTF9QUkVGSVg9JHtERVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5jbWFrZQotCi0J IyBSZXF1aXJlZCBmb3IgbXVsdGlsaWIuCi0JaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g Ing4Nl82NCIgXTsgdGhlbgotCQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsgZG8KLQkJCW12 ICR7REVTVERJUn0vdXNyL2luY2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXssLTY0fS5oCi0J CQl2aW5zdGFsbCAke0ZJTEVTRElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9LmggNjQ0IFwKLQkJ CQl1c3IvaW5jbHVkZS9sbHZtL0NvbmZpZyAke19oZWFkZXJ9LmgKLQkJZG9uZQotCWZpCi0KLQkj IFJlbW92ZSBsbHZtLWNvbmZpZy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KLQlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KLQkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhv c3QKLQlmaQotfQogCiBsaWJsbHZtMTJfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVu dGltZSBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJMTFZN LSouc28qIgotCX0KIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3VwZGF0ZSBiL3NyY3Br Z3MvbGx2bTEyL3VwZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk1Y2YyNmIz NTg2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvdXBkYXRlCisrKyAvZGV2L251 bGwKQEAgLTEsMyArMCwwIEBACi1zaXRlPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXBy b2plY3QvcmVsZWFzZXMiCi1wYXR0ZXJuPSJsbHZtb3JnLVxLKFxkKy4pezJ9XGQrKC1yY1xkKyk/ IgotaWdub3JlPSIqLXJjKiIKCkZyb20gMmQ1ZjU3MWIwYjhhMjIzZGE5M2I2MDdmYTg1M2VmZmUz NTU2ZWJiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9 QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjgg RmViIDIwMjIgMjE6NDI6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDE1LzMwXSBtZXNhOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9tZXNhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tZXNhL3RlbXBsYXRlIGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCmluZGV4IGM5MDUwMGRl NzQxNi4uOGYwODI2MmZiMTM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9tZXNhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbWVzYScKIHBrZ25hbWU9bWVzYQogdmVyc2lvbj0yMS4zLjcKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURnbHZuZD10cnVl IC1Ec2hhcmVkLWdsYXBpPWVuYWJsZWQgLURnYm09ZW5hYmxlZCAtRGVnbD1lbmFibGVkCiAgLURv c21lc2E9dHJ1ZSAtRGdsZXMxPWVuYWJsZWQgLURnbGVzMj1lbmFibGVkIC1EZ2x4PWRyaSAtRGRy aTM9ZW5hYmxlZAoKRnJvbSBiNDA5MmIxZTM2NDk1NzhjN2Y2N2EzMzBiZGI5YmRjNjk2OWUyZWRh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENl cnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBGZWIgMjAy MiAyMTo0Njo0OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzBdIGlzcGM6IHVwZGF0ZSB0byAx LjE3LjAuCgotLS0KIC4uLi9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNo ICB8ICAgMTggLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaCAgICAgICAg IHwgICA1NyAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoICAgICAgICAg fCAgOTIzIC0tLS0tLS0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoICAg ICAgICAgfCAxNTA0IC0tLS0tLS0tLS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw NC5wYXRjaCAgICAgICAgIHwgICAzNCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1 LnBhdGNoICAgICAgICAgfCAgMzcyIC0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw Ni5wYXRjaCAgICAgICAgIHwgIDEyNiAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3 LnBhdGNoICAgICAgICAgfCAgMTYwIC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4 LnBhdGNoICAgICAgICAgfCAgMTQ5IC0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5 LnBhdGNoICAgICAgICAgfCAyMTA5IC0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lzcGMvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiAxMSBmaWxlcyBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDU0NTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25l LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTFlMzUzYzczMTQuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1JbmRleDogaXNwYy0xLjE1LjAvQ01ha2VM aXN0cy50eHQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBpc3BjLTEuMTUuMC5vcmlnL0NNYWtlTGlzdHMudHh0 Ci0rKysgaXNwYy0xLjE1LjAvQ01ha2VMaXN0cy50eHQKLUBAIC0xNTcsMTMgKzE1Nyw2IEBAIHNl dChPVVRQVVRfUkVMRUFTRSBSZWxlYXNlL2JpbikKLSBzZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRf RElSRUNUT1JZICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9iaW4gKQotIAotIGlmKENNQUtF X0JVSUxEX1RZUEUpCi0tICAgICMgVmFsaWRhdGUgYnVpbGQgdHlwZQotLSAgICBzZXQoQ09ORklH VVJBVElPTl9UWVBFUyAiRGVidWc7UmVsZWFzZTtSZWxXaXRoRGViSW5mbyIpCi0tCi0tICAgIHN0 cmluZyhGSU5EICIke0NPTkZJR1VSQVRJT05fVFlQRVN9IiAiJHtDTUFLRV9CVUlMRF9UWVBFfSIg TUFUQ0hFRF9DT05GSUcpCi0tICAgIGlmICgke01BVENIRURfQ09ORklHfSBFUVVBTCAtMSkKLS0g ICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJDTUFLRV9CVUlMRF9UWVBFICgke0NNQUtFX0JV SUxEX1RZUEV9KSBhbGxvd3Mgb25seSB0aGUgZm9sbG93aW5nIHZhbHVlczogJHtDT05GSUdVUkFU SU9OX1RZUEVTfSIpCi0tICAgIGVuZGlmKCkKLSBlbHNlKE5PVCBDTUFLRV9CVUlMRF9UWVBFKQot ICAgICBzZXQoQ01BS0VfQlVJTERfVFlQRSAiUmVsZWFzZSIpCi0gICAgIG1lc3NhZ2UoU1RBVFVT ICJCdWlsZCB0eXBlIG5vdCBzcGVjaWZpZWQ6IFVzZSBSZWxlYXNlIGJ5IGRlZmF1bHQuIikKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggYi9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA1ZjJkM2Y1YTQwOWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDAxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSAx YzBmODlkY2NiNzc0ZjIxNmM3ZjZlNzZhOTllZTkwN2ExZTY0MWNiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogRG1pdHJ5IEJhYm9raW4gPGRtaXRyeS55LmJhYm9raW5AaW50ZWwuY29t PgotRGF0ZTogVHVlLCAyMiBEZWMgMjAyMCAxNzowMzo1OSAtMDgwMAotU3ViamVjdDogW1BBVENI XSBGaXggdG8gd29yayB3aXRoIExMVk0gdHJ1bmsgYWZ0ZXIgbGx2bS9sbHZtLXByb2plY3RANDFj M2IyNzEzCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgMTggKysrKysrKysrKysrLS0tLS0tCi0gMSBm aWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA2ZmJiOGI5Y2YuLjk3N2U5ZDIy MiAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTE0NzMs MTEgKzE0NzMsMTUgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGREZWJ1Z1BvcyhsbHZt OjpWYWx1ZSAqdmFsdWUsIGNvbnN0IFNvdXJjZVBvcyAqcG9zLAotICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPih2YWx1ZSk7Ci0g ICAgIGlmIChpbnN0ICE9IE5VTEwgJiYgbS0+ZGlCdWlsZGVyKSB7Ci0gICAgICAgICBTb3VyY2VQ b3MgcCA9IHBvcyA/ICpwb3MgOiBjdXJyZW50UG9zOwotLSAgICAgICAgaWYgKHAuZmlyc3RfbGlu ZSAhPSAwKQotKyAgICAgICAgaWYgKHAuZmlyc3RfbGluZSAhPSAwKSB7Ci0gICAgICAgICAgICAg Ly8gSWYgZmlyc3RfbGluZSA9PSAwLCB0aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGlu ZyB1cAotICAgICAgICAgICAgIC8vIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IG9yIHRoZSBsaWtlOyBk b24ndCBhZGQgZGVidWcgcG9zaXRpb25zCi0gICAgICAgICAgICAgLy8gZm9yIHRob3NlIGZ1bmN0 aW9ucwotLSAgICAgICAgICAgIGluc3QtPnNldERlYnVnTG9jKGxsdm06OkRlYnVnTG9jOjpnZXQo cC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUgPyBzY29wZSA6IEdldERJU2NvcGUo KSkpOwotKyAgICAgICAgICAgIHNjb3BlID0gc2NvcGUgPyBzY29wZSA6IEdldERJU2NvcGUoKTsK LSsgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICAgICAgICAgIGxs dm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29udGV4dCgpLCBwLmZpcnN0X2xpbmUsIHAu Zmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotKyAgICAgICAgICAgIGluc3Qt PnNldERlYnVnTG9jKGRpTG9jKTsKLSsgICAgICAgIH0KLSAgICAgfQotIH0KLSAKLUBAIC0xNTE4 LDkgKzE1MjIsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0VmFyaWFibGVEZWJ1 Z0luZm8oU3ltYm9sICpzeW0pIHsKLSAgICAgbGx2bTo6RElMb2NhbFZhcmlhYmxlICp2YXIgPSBt LT5kaUJ1aWxkZXItPmNyZWF0ZUF1dG9WYXJpYWJsZSgKLSAgICAgICAgIHNjb3BlLCBzeW0tPm5h bWUsIHN5bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBkaVR5cGUsIHRy dWUgLyogcHJlc2VydmUgdGhyb3VnaCBvcHRzICovKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2Mg ZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0 KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51 bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0g ICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwg bS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBz eW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVp bGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5j cmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNs YXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIAotQEAgLTE1MzUsOSArMTU0MCwxMCBA QCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRGdW5jdGlvblBhcmFtZXRlckRlYnVnSW5m byhTeW1ib2wgKnN5bSwgaW50IGFyZ051bQotICAgICAgICAgbS0+ZGlCdWlsZGVyLT5jcmVhdGVQ YXJhbWV0ZXJWYXJpYWJsZShzY29wZSwgc3ltLT5uYW1lLCBhcmdOdW0gKyAxLCBzeW0tPnBvcy5H ZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2gg b3B0cyAqLywgZmxhZ3MpOwotIAotKyAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAg ICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5wb3MuZmly c3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwot ICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ZGlCdWls ZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNy ZWF0ZUV4cHJlc3Npb24oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpEZWJ1Z0xvYzo6Z2V0KHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2Nv bHVtbiwgc2NvcGUpLCBiYmxvY2spOwotKyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNs YXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24o KSwgZGlMb2MsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5w b3MsIHNjb3BlKTsKLSB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAyLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkwM2YzMGRhMTBkLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDkyMyArMCwwIEBACi1Gcm9tIDA1OTdhNzlkMDg0YzAxNDc4MDEzNmRhOTA2YWZlMjFkMTVl OTgyY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWtSYWplbmRyYWt1bWFy YW4gPGRlZXBhay5yYWplbmRyYWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCA1IEphbiAy MDIxIDEzOjUzOjMwIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSBMTFZNIDguMCBhbmQg TExWTSA5LjAuICgjMTk2NikKLQotLS0tCi0gLmFwcHZleW9yLnltbCAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMgLS0KLSAudHJhdmlzLnltbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NyAtLS0KLSBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKy0tLS0K LSBzcmMvYXN0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAtLQotIHNyYy9jdHgu Y3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0tLS0KLSBzcmMvZ2Vu L0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwICAgICAgfCAgNCAtLQotIHNyYy9pc3BjLmNwcCAgICAg ICAgICAgICAgICAgICAgICAgICB8IDIwIC0tLS0tLS0tLQotIHNyYy9pc3BjLmggICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAzICstCi0gc3JjL2lzcGNfdmVyc2lvbi5oICAgICAgICAgICAg ICAgICAgIHwgIDQgKy0KLSBzcmMvbWFpbi5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx MyAtLS0tLS0KLSBzcmMvbW9kdWxlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAyNyAtLS0t LS0tLS0tLS0KLSBzcmMvbW9kdWxlLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAtCi0g c3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQgKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIHNyYy90eXBlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEw ICsrLS0tCi0gdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYyAgICAgICAgICAgIHwgIDEgLQotIHRl c3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMgICAgICAgICAgICB8ICAzIC0tCi0gdGVzdHMvbGl0LXRl c3RzLzE5MjYuaXNwYyAgICAgICAgICAgIHwgIDIgLQotIHRlc3RzL2xpdC10ZXN0cy9jcHVzX3g4 Ni5pc3BjICAgICAgICB8ICAyICsKLSB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlz cGMgfCAxMSAtLS0tLQotIHRlc3RzL2xpdC10ZXN0cy9saXQuY2ZnICAgICAgICAgICAgICB8ICA1 IC0tLQotIDIwIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIxMyBkZWxldGlvbnMo LSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5p c3BjCi0KLWRpZmYgLS1naXQgYS8uYXBwdmV5b3IueW1sIGIvLmFwcHZleW9yLnltbAotaW5kZXgg NDUxYTdiM2UwLi43OTQ1Y2NhMmEgMTAwNjQ0Ci0tLS0gYS8uYXBwdmV5b3IueW1sCi0rKysgYi8u YXBwdmV5b3IueW1sCi1AQCAtNDEsOCArNDEsNiBAQCBlbnZpcm9ubWVudDoKLSAgICAgICBMTFZN X1ZFUlNJT046IGxhdGVzdAotICAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlz dWFsIFN0dWRpbyAyMDE5Ci0gICAgICAgTExWTV9WRVJTSU9OOiAxMC4wCi0tICAgIC0gQVBQVkVZ T1JfQlVJTERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLS0gICAgICBMTFZNX1ZF UlNJT046IDkuMAotIAotIGZvcjoKLSAtCi1AQCAtNjIsNyArNjAsNiBAQCBmb3I6Ci0gICAgICAg ICBpZiAiJUFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRSUiPT0iVmlzdWFsIFN0dWRpbyAyMDE5 IiAoIChzZXQgZ2VuZXJhdG9yPSJWaXN1YWwgU3R1ZGlvIDE2IikgJiAoc2V0IHZzdmVyc2lvbj0y MDE5KSkKLSAgICAgICAgIHNldCBMTFZNX1RBUj1sbHZtLTExLjAuMC13aW4udnMyMDE5LVJlbGVh c2UrQXNzZXJ0cy14ODYuYXJtLndhc20uN3oKLSAgICAgICAgIGlmICIlTExWTV9WRVJTSU9OJSI9 PSIxMC4wIiAoc2V0IExMVk1fVEFSPWxsdm0tMTAuMC4xLXdpbi52czIwMTktUmVsZWFzZStBc3Nl cnRzLXg4Ni5hcm0ud2FzbS56aXApCi0tICAgICAgICBpZiAiJUxMVk1fVkVSU0lPTiUiPT0iOS4w IiAoc2V0IExMVk1fVEFSPWxsdm0tOS4wLjEtd2luLnZzMjAxNy1SZWxlYXNlK0Fzc2VydHMteDg2 LmFybS53YXNtLnppcCkKLSAgIGluc3RhbGw6Ci0gICAgIC0gcHM6IGNob2NvIGluc3RhbGwgLS1u by1wcm9ncmVzcyB3aW5mbGV4Ymlzb24zIHdnZXQgN3ppcAotICAgICAtIGNtZDogfC0KLWRpZmYg LS1naXQgYS8udHJhdmlzLnltbCBiLy50cmF2aXMueW1sCi1pbmRleCAyZTk2MDE3YTYuLjNhNmI4 NTI2NCAxMDA2NDQKLS0tLSBhLy50cmF2aXMueW1sCi0rKysgYi8udHJhdmlzLnltbAotQEAgLTEw OCwxMyArMTA4LDYgQEAgam9iczoKLSAgICAgICAgIC0gTExWTV9UQVI9bGx2bS0xMC4wLjEtdWJ1 bnR1MTYuMDQtUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS50YXIueHoKLSAgICAgICAgIC0g TExWTV9SRVBPPWh0dHBzOi8vZ2l0aHViLmNvbS9kYmFib2tpbi9sbHZtLXByb2plY3QKLSAgICAg ICAgIC0gSVNQQ19IT01FPSRUUkFWSVNfQlVJTERfRElSCi0tICAgICMgTExWTSA5LjAgKyBVYnVu dHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1wbGVzIChidWlsZCArIHJ1biksIGJlbmNo bWFya3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotLSAgICAtIDw8OiAqbXlfdGFnCi0tICAgICAgZW52 OgotLSAgICAgICAgLSBMTFZNX1ZFUlNJT049OS4wIE9TPVVidW50dTE2LjA0Ci0tICAgICAgICAt IExMVk1fVEFSPWxsdm0tOS4wLjEtdWJ1bnR1MTYuMDQtUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0u d2FzbS50YXIueHoKLS0gICAgICAgIC0gTExWTV9SRVBPPWh0dHBzOi8vZ2l0aHViLmNvbS9kYmFi b2tpbi9sbHZtLXByb2plY3QKLS0gICAgICAgIC0gSVNQQ19IT01FPSRUUkFWSVNfQlVJTERfRElS Ci0gICAgICMgV0FTTSBlbmFibGVkIGJ1aWxkCi0gICAgICMgTExWTSAxMS4wICsgVWJ1bnR1IDE2 LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVpbGQpLCBiZW5jaG1hcmtzIChidWls ZCArIHRyaWFsIHJ1bikKLSAgICAgLSA8PDogKm15X3RhZwotZGlmZiAtLWdpdCBhL0NNYWtlTGlz dHMudHh0IGIvQ01ha2VMaXN0cy50eHQKLWluZGV4IDVmYTg2M2ZjZi4uYTZiM2VkMjUxIDEwMDY0 NAotLS0tIGEvQ01ha2VMaXN0cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0Ci1AQCAtMjQxLDEw ICsyNDEsOCBAQCBpZiAoWDg2X0VOQUJMRUQpCi0gICAgICAgICBhdngyLWk4eDMyIGF2eDItaTE2 eDE2Ci0gICAgICAgICBhdngyLWkzMng0IGF2eDItaTMyeDggYXZ4Mi1pMzJ4MTYgYXZ4Mi1pNjR4 NAotICAgICAgICAgYXZ4NTEya25sLWkzMngxNgotLSAgICAgICAgYXZ4NTEyc2t4LWkzMngxNiBh dng1MTJza3gtaTMyeDgpCi0tICAgIGlmICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZFUlNJT05f R1JFQVRFUl9FUVVBTCAiMTAuMC4wIikKLS0gICAgICAgIGxpc3QoQVBQRU5EIElTUENfVEFSR0VU UyBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLS0gICAgZW5kaWYoKQotKyAgICAg ICAgYXZ4NTEyc2t4LWkzMngxNiBhdng1MTJza3gtaTMyeDgKLSsgICAgICAgIGF2eDUxMnNreC1p OHg2NCBhdng1MTJza3gtaTE2eDMyKQotIGVuZGlmKCkKLSBpZiAoQVJNX0VOQUJMRUQpCi0gICAg IGxpc3QoQVBQRU5EIElTUENfVEFSR0VUUyBuZW9uLWk4eDE2IG5lb24taTE2eDggbmVvbi1pMzJ4 NCBuZW9uLWkzMng4KQotQEAgLTI1OSwxMSArMjU3LDcgQEAgaWYgKFdBU01fRU5BQkxFRCkKLSBl bmRpZigpCi0gCi0gc2V0KENMQU5HX0xJQlJBUllfTElTVCBjbGFuZ0Zyb250ZW5kIGNsYW5nRHJp dmVyIGNsYW5nU2VyaWFsaXphdGlvbiBjbGFuZ1BhcnNlIGNsYW5nU2VtYSBjbGFuZ0FuYWx5c2lz IGNsYW5nQVNUIGNsYW5nQmFzaWMgY2xhbmdFZGl0IGNsYW5nTGV4KQotLXNldChMTFZNX0NPTVBP TkVOVFMgZW5naW5lIGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlvbiBsaW5r ZXIgb3B0aW9uKQotLQotLWlmICgke0xMVk1fVkVSU0lPTl9OVU1CRVJ9IFZFUlNJT05fR1JFQVRF Ul9FUVVBTCAiMTAuMC4wIikKLS0gICAgbGlzdChBUFBFTkQgTExWTV9DT01QT05FTlRTIGZyb250 ZW5kb3Blbm1wKQotLWVuZGlmKCkKLStzZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0 cmVhZGVyIGJpdHdyaXRlciBpbnN0cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbiBmcm9udGVuZG9w ZW5tcCkKLSAKLSBpZiAoWDg2X0VOQUJMRUQpCi0gICAgIGxpc3QoQVBQRU5EIExMVk1fQ09NUE9O RU5UUyB4ODYpCi1kaWZmIC0tZ2l0IGEvc3JjL2FzdC5jcHAgYi9zcmMvYXN0LmNwcAotaW5kZXgg MjBmNzVhMjljLi41YTQzYzQ4NTQgMTAwNjQ0Ci0tLS0gYS9zcmMvYXN0LmNwcAotKysrIGIvc3Jj L2FzdC5jcHAKLUBAIC00NCw5ICs0NCw3IEBACi0gI2luY2x1ZGUgInN5bS5oIgotICNpbmNsdWRl ICJ1dGlsLmgiCi0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g I2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KLSAvLyBBU1ROb2RlCi0gCi1AQCAtNjIsOSArNjAsNyBAQCB2b2lkIEFTVDo6 QWRkRnVuY3Rpb24oU3ltYm9sICpzeW0sIFN0bXQgKmNvZGUpIHsKLSB9Ci0gCi0gdm9pZCBBU1Q6 OkdlbmVyYXRlSVIoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiR2VuZXJhdGVJUiIpOwotLSNl bmRpZgotICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGZ1bmN0aW9ucy5zaXplKCk7 ICsraSkKLSAgICAgICAgIGZ1bmN0aW9uc1tpXS0+R2VuZXJhdGVJUigpOwotIH0KLWRpZmYgLS1n aXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA5NzdlOWQyMjIuLjQyYzRlYTA5 ZCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTMwOSwy MSArMzA5LDEzIEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1bmN0aW9uRW1pdENvbnRleHQoRnVu Y3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpGCi0gICAgICAgICAgICAgY2hhciBi dWZbMjU2XTsKLSAgICAgICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX19vZmZf YWxsX29uX21hc2tfJXMiLCBnLT50YXJnZXQtPkdldElTQVN0cmluZygpKTsKLSAKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzhfMAotLSAgICAgICAgICAgIGxsdm06OkNvbnN0 YW50ICpvZmZGdW5jID0gbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5 cGVzOjpWb2lkVHlwZSk7Ci0tI2Vsc2UgLy8gTExWTSA5LjArCi0gICAgICAgICAgICAgbGx2bTo6 RnVuY3Rpb25DYWxsZWUgb2ZmRnVuY0NhbGxlZSA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotICAgICAgICAgICAgIGxsdm06OkNvbnN0 YW50ICpvZmZGdW5jID0gbGx2bTo6Y2FzdDxsbHZtOjpDb25zdGFudD4ob2ZmRnVuY0NhbGxlZS5n ZXRDYWxsZWUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IGxsdm06OmlzYTxsbHZtOjpGdW5jdGlvbj4ob2ZmRnVuYykpOwotICAgICAgICAgICAgIGxsdm06 OkJhc2ljQmxvY2sgKm9mZkJCID0gbGx2bTo6QmFzaWNCbG9jazo6Q3JlYXRlKCpnLT5jdHgsICJl bnRyeSIsIChsbHZtOjpGdW5jdGlvbiAqKW9mZkZ1bmMsIDApOwotICAgICAgICAgICAgIGxsdm06 OlN0b3JlSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QoTExWTU1hc2tBbGxPZmYsIGds b2JhbEFsbE9uTWFza1B0ciwgb2ZmQkIpOwotICAgICAgICAgICAgIGlmIChnLT5vcHQuZm9yY2VB bGlnbmVkTWVtb3J5KSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAK LS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgICAgICAg ICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgbGx2bTo6UmV0dXJuSW5zdDo6Q3JlYXRlKCpnLT5jdHgsIG9mZkJC KTsKLSAgICAgICAgIH0KLUBAIC0yMjg4LDExICsyMjgwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5 cGUsIGMKLSAjZW5kaWYKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYg bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgIGluc3Qt PnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0j ZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5 YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25l KCkpOwotLSNlbmRpZgotICAgICB9Ci0gCi0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotQEAgLTI0 MzEsMTEgKzI0MTksNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZElu c3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAgICAgICAg IC8vIHZzIHRoZSBwcm9wZXIgYWxpZ25tZW50IGluIHByYWN0aWNlLikKLSAgICAgICAgICAgICAg ICAgaW50IGFsaWduID0gMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNl IC8vIExMVk0gMTAuMCsKLSAgICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06 Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAg fQotIAotICAgICAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotQEAgLTI2NDksMTEgKzI2MzMs NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpU eXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotIAotICAgICBpZiAoYWxpZ24gIT0gMCkgewot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5z ZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIGluc3Qt PnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNl bmRpZgotICAgICB9Ci0gICAgIC8vIERvbid0IGFkZCBkZWJ1Z2dpbmcgaW5mbyB0byBhbGxvY2Eg aW5zdHJ1Y3Rpb25zCi0gICAgIHJldHVybiBpbnN0OwotQEAgLTI5MjYsMTEgKzI5MDYsNyBAQCB2 b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlZhbHVlICpwdHIsIGNvbnN0Ci0gICAgIGxsdm06OlN0b3JlSW5zdCAqaW5zdCA9IG5ldyBs bHZtOjpTdG9yZUluc3QodmFsdWUsIHB0ciwgYmJsb2NrKTsKLSAKLSAgICAgaWYgKGctPm9wdC5m b3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQt PmdldEVsZW1lbnRUeXBlKCkpKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExW TV85XzAKLS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZl Y3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5z ZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFs aWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICB9Ci0gCi0gI2lmZGVmIElT UENfR0VOWF9FTkFCTEVECi1AQCAtMzAyNSwxNiArMzAwMSwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6Ok1lbWNweUluc3QobGx2bTo6VmFsdWUgKmRlc3QsIGxsdm06OlZhbHVlICpzcmMs IGxsdm06OgotICAgICB9Ci0gICAgIGlmIChhbGlnbiA9PSBOVUxMKQotICAgICAgICAgYWxpZ24g PSBMTFZNSW50MzIoMSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAK LS0gICAgbGx2bTo6Q29uc3RhbnQgKm1jRnVuYyA9Ci0tICAgICAgICBtLT5tb2R1bGUtPmdldE9y SW5zZXJ0RnVuY3Rpb24oImxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQiLCBMTFZNVHlwZXM6OlZv aWRUeXBlLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTVR5cGVz OjpJbnQ2NFR5cGUsIExMVk1UeXBlczo6Qm9vbFR5cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwot ICAgICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBtY0Z1bmNDYWxsZWUgPQotICAgICAgICAgbS0+bW9k dWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0IiwgTExW TVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUs IExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLSAgICAgbGx2bTo6 Q29uc3RhbnQgKm1jRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+KG1jRnVuY0NhbGxl ZS5nZXRDYWxsZWUoKSk7Ci0tI2VuZGlmCi0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtY0Z1 bmMgIT0gTlVMTCk7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6 RnVuY3Rpb24+KG1jRnVuYykpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFsc0xvY2Fs aXphdGlvbi5jcHAgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRleCAxOTNh NjYyODkuLmExNzZlOTQ2MiAxMDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlv bi5jcHAKLSsrKyBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC00NzAsMTEg KzQ3MCw3IEBAIHZvaWQgR2xvYmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxzKExvY2Fs aXphdGlvbkluZm8gJkxJKSB7Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0gKkZuLT5n ZXRFbnRyeUJsb2NrKCkuYmVnaW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdWLT5nZXRU eXBlKCktPmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxvY2EgPSBu ZXcgQWxsb2NhSW5zdChFbGVtVHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwgJkZpcnN0 SSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgIEFs bG9jYS0+c2V0QWxpZ25tZW50KEdWLT5nZXRBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAx MC4wKwotICAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihHVi0+ Z2V0QWxpZ25tZW50KCkpKTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+ KEdWLT5nZXRJbml0aWFsaXplcigpKSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5n ZXRJbml0aWFsaXplcigpLCBBbGxvY2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9p c3BjLmNwcCBiL3NyYy9pc3BjLmNwcAotaW5kZXggZTJkMGYyMDZlLi5mYWM1MjMzZjcgMTAwNjQ0 Ci0tLS0gYS9zcmMvaXNwYy5jcHAKLSsrKyBiL3NyYy9pc3BjLmNwcAotQEAgLTI3Miw5ICsyNzIs NyBAQCB0eXBlZGVmIGVudW0gewotICAgICBDUFVfU2lsdmVybW9udCwKLSAKLSAgICAgQ1BVX0lD WCwKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgQ1BVX1RH TCwKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAg ICAgQ1BVX0FETCwKLSAgICAgQ1BVX1NQUiwKLUBAIC0zNjUsMTAgKzM2Myw4IEBAIGNsYXNzIEFs bENQVXMgewotIAotICAgICAgICAgbmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY2VsYWtlLXNl cnZlciIpOwotICAgICAgICAgbmFtZXNbQ1BVX0lDWF0ucHVzaF9iYWNrKCJpY3giKTsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIG5hbWVzW0NQVV9U R0xdLnB1c2hfYmFjaygidGlnZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfVEdMXS5wdXNo X2JhY2soInRnbCIpOwotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTJfMAotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJhbGRlcmxha2UiKTsK LSAgICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFjaygiYWRsIik7Ci1AQCAtNDExLDExICs0 MDcsOSBAQCBjbGFzcyBBbGxDUFVzIHsKLSAgICAgICAgIGNvbXBhdFtDUFVfQURMXSA9IFNldChD UFVfQURMLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBD UFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ1BVX1NhbmR5QnJpZGdlLCBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fk d2VsbCwgQ1BVX05vbmUpOwotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgY29tcGF0W0NQVV9UR0xdID0KLSAgICAgICAgICAgICBTZXQo Q1BVX1RHTCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4sIENQVV9Db3JlMiwg Q1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LCBDUFVfU2FuZHlCcmlkZ2UsCi0gICAgICAgICAg ICAgICAgIENQVV9JdnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tY LCBDUFVfSUNMLCBDUFVfSUNYLCBDUFVfTm9uZSk7Ci0tI2VuZGlmCi0gICAgICAgICBjb21wYXRb Q1BVX0lDWF0gPSBTZXQoQ1BVX0lDWCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5y eW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hh c3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9Ob25lKTsKLSAKLUBA IC01NTYsOSArNTUwLDcgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpj cHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIGNhc2UgQ1BVX1NQUjoKLSAjZW5k aWYKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNh c2UgQ1BVX1RHTDoKLS0jZW5kaWYKLSAgICAgICAgIGNhc2UgQ1BVX0lDWDoKLSAgICAgICAgIGNh c2UgQ1BVX0lDTDoKLSAgICAgICAgIGNhc2UgQ1BVX1NLWDoKLUBAIC05MTYsNyArOTA4LDYgQEAg VGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNw Y190YXJnZXQsIGJvb2wgcGljLCBib28KLSAgICAgICAgIH0KLSAgICAgICAgIGJyZWFrOwotICAg ICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pOHg2NDoKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8gVGhpcyB0YXJn ZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAgICAgICAvLyBi ZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFyZQotICAgICAg ICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQgdG8gMTAuMCwg YnV0IG5vdAotQEAgLTkzNywxMiArOTI4LDcgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBhcmNoLCBj b25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBib28KLSAg ICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAgIENQVWZyb21J U0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAgIHVuc3VwcG9y dGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAgICAgY2FzZSBJ U1BDVGFyZ2V0Ojphdng1MTJza3hfaTE2eDMyOgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMCAvLyBMTFZNIDEwLjArCi0gICAgICAgICAvLyBUaGlzIHRhcmdldCBpcyBl bmFibGVkIG9ubHkgZm9yIExMVk0gMTAuMCBhbmQgbGF0ZXIKLSAgICAgICAgIC8vIGJlY2F1c2Ug TExWTSByZXF1aXJlcyBhIG51bWJlciBvZiBmaXhlcywgd2hpY2ggYXJlCi0gICAgICAgICAvLyBj b21taXR0ZWQgdG8gTExWTSAxMS4wIGFuZCBjYW4gYmUgYXBwbGllZCB0byAxMC4wLCBidXQgbm90 Ci1AQCAtOTYzLDEwICs5NDksNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNo YXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAg dGhpcy0+bV9oYXNWZWNQcmVmZXRjaCA9IGZhbHNlOwotICAgICAgICAgQ1BVZnJvbUlTQSA9IENQ VV9TS1g7Ci0gICAgICAgICBicmVhazsKLS0jZWxzZQotLSAgICAgICAgdW5zdXBwb3J0ZWRfdGFy Z2V0ID0gdHJ1ZTsKLS0gICAgICAgIGJyZWFrOwotLSNlbmRpZgotICNpZmRlZiBJU1BDX0FSTV9F TkFCTEVECi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6bmVvbl9pOHgxNjoKLSAgICAgICAgIHRoaXMt Pm1faXNhID0gVGFyZ2V0OjpORU9OOwotQEAgLTE2NjIsMTEgKzE2NDQsOSBAQCBHbG9iYWxzOjpH bG9iYWxzKCkgewotICAgICBpc011bHRpVGFyZ2V0Q29tcGlsYXRpb24gPSBmYWxzZTsKLSAgICAg ZXJyb3JMaW1pdCA9IC0xOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICBlbmFibGVUaW1lVHJhY2UgPSBmYWxzZTsKLSAgICAgLy8gc2V0IGRlZmF1bHQg Z3JhbnVsYXJpdHkgdG8gNTAwLgotICAgICB0aW1lVHJhY2VHcmFudWxhcml0eSA9IDUwMDsKLS0j ZW5kaWYKLSAgICAgdGFyZ2V0ID0gTlVMTDsKLSAgICAgY3R4ID0gbmV3IGxsdm06OkxMVk1Db250 ZXh0OwotIAotZGlmZiAtLWdpdCBhL3NyYy9pc3BjLmggYi9zcmMvaXNwYy5oCi1pbmRleCBlMjVk ODgzMGUuLmRlMzU3YTIxYyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmgKLSsrKyBiL3NyYy9pc3Bj LmgKLUBAIC02OTUsMTMgKzY5NSwxMiBAQCBzdHJ1Y3QgR2xvYmFscyB7Ci0gCi0gICAgIC8qIE51 bWJlciBvZiBlcnJvcnMgdG8gc2hvdyBpbiBJU1BDLiAqLwotICAgICBpbnQgZXJyb3JMaW1pdDsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSsKLSAgICAgLyogV2hl biB0cnVlLCBlbmFibGUgY29tcGlsZSB0aW1lIHRyYWNpbmcuICovCi0gICAgIGJvb2wgZW5hYmxl VGltZVRyYWNlOwotIAotICAgICAvKiBXaGVuIGNvbXBpbGUgdGltZSB0cmFjaW5nIGlzIGVuYWJs ZWQsIHNldCB0aW1lIGdyYW51bGFyaXR5LiAqLwotICAgICBpbnQgdGltZVRyYWNlR3JhbnVsYXJp dHk7Ci0tI2VuZGlmCi0gfTsKLSAKLSBlbnVtIHsKLWRpZmYgLS1naXQgYS9zcmMvaXNwY192ZXJz aW9uLmggYi9zcmMvaXNwY192ZXJzaW9uLmgKLWluZGV4IGQ3ODEzNDdmZC4uNDM0YjJkNjc4IDEw MDY0NAotLS0tIGEvc3JjL2lzcGNfdmVyc2lvbi5oCi0rKysgYi9zcmMvaXNwY192ZXJzaW9uLmgK LUBAIC00NCwxMyArNDQsMTEgQEAKLSAKLSAjZGVmaW5lIElTUENfTExWTV9WRVJTSU9OIChMTFZN X1ZFUlNJT05fTUFKT1IgKiAxMDAwMCArIExMVk1fVkVSU0lPTl9NSU5PUiAqIDEwMCkKLSAKLS0j ZGVmaW5lIElTUENfTExWTV84XzAgODAwMDAKLS0jZGVmaW5lIElTUENfTExWTV85XzAgOTAwMDAK LSAjZGVmaW5lIElTUENfTExWTV8xMF8wIDEwMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzExXzAg MTEwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTJfMCAxMjAwMDAKLSAKLS0jZGVmaW5lIE9MREVT VF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fOF8wCi0rI2RlZmluZSBPTERFU1RfU1VQUE9SVEVE X0xMVk0gSVNQQ19MTFZNXzEwXzAKLSAjZGVmaW5lIExBVEVTVF9TVVBQT1JURURfTExWTSBJU1BD X0xMVk1fMTJfMAotIAotICNpZmRlZiBfX2lzcGNfX3hzdHIKLWRpZmYgLS1naXQgYS9zcmMvbWFp bi5jcHAgYi9zcmMvbWFpbi5jcHAKLWluZGV4IDhmNjQzMzBjYy4uNWM5MjBlYWJjIDEwMDY0NAot LS0tIGEvc3JjL21haW4uY3BwCi0rKysgYi9zcmMvbWFpbi5jcHAKLUBAIC01NSw5ICs1NSw3IEBA Ci0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9TaWduYWxzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vU3Vw cG9ydC9UYXJnZXRSZWdpc3RyeS5oPgotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0U2Vs ZWN0Lmg+Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gI2luY2x1 ZGUgPGxsdm0vU3VwcG9ydC9Ub29sT3V0cHV0RmlsZS5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJ U1BDX0hPU1RfSVNfV0lORE9XUwotICNkZWZpbmUgc3RyY2FzZWNtcCBzdHJpY21wCi1AQCAtMTgx LDExICsxNzksOSBAQCBzdGF0aWMgdm9pZCBsUHJpbnRWZXJzaW9uKCkgewotICAgICBzbnByaW50 Zih0YXJnZXRIZWxwLCBzaXplb2YodGFyZ2V0SGVscCksICJbLS10YXJnZXQtb3M9PG9zPl1cdFx0 XHRTZWxlY3QgdGFyZ2V0IE9TLiAgPG9zPj17JXN9IiwKLSAgICAgICAgICAgICAgZy0+dGFyZ2V0 X3JlZ2lzdHJ5LT5nZXRTdXBwb3J0ZWRPU2VzKCkuY19zdHIoKSk7Ci0gICAgIFByaW50V2l0aFdv cmRCcmVha3ModGFyZ2V0SGVscCwgMjQsIFRlcm1pbmFsV2lkdGgoKSwgc3Rkb3V0KTsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgcHJpbnRmKCIgICAgWy0t dGltZS10cmFjZV1cdFx0XHRUdXJuIG9uIHRpbWUgcHJvZmlsZXIuIEdlbmVyYXRlcyBKU09OIGZp bGUgYmFzZWQgb24gb3V0cHV0IGZpbGVuYW1lLlxuIik7Ci0gICAgIHByaW50ZigiICAgIFstLXRp bWUtdHJhY2UtZ3JhbnVsYXJpdHk9PHZhbHVlPlx0TWluaW11bSB0aW1lIGdyYW51bGFyaXR5IChp biBtaWNyb3NlY29uZHMpIHRyYWNlZCBieSB0aW1lICIKLSAgICAgICAgICAgICJwcm9maWxlci5c biIpOwotLSNlbmRpZgotICAgICBwcmludGYoIiAgICBbLS12ZXJzaW9uXVx0XHRcdFx0UHJpbnQg aXNwYyB2ZXJzaW9uXG4iKTsKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAgICAgcHJpbnRm KCIgICAgWy0tdmMtb3B0aW9ucz08XCItb3B0aW9uMSAtb3B0aW9uMi4uLlwiPl1cdFx0XHRcdFBh c3MgYWRkaXRpb25hbCBvcHRpb25zIHRvIFZlY3RvciBDb21waWxlciBiYWNrZW5kXG4iKTsKLUBA IC00NjIsNyArNDU4LDYgQEAgc3RhdGljIHZvaWQgc2V0Q2FsbGluZ0NvbnYoVmVjdG9yQ2FsbFN0 YXR1cyB2ZWN0b3JDYWxsLCBBcmNoIGFyY2gpIHsKLSAgICAgfQotIH0KLSAKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSBzdGF0aWMgdm9pZCB3cml0ZUNvbXBpbGVU aW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICBsbHZtOjpTbWFsbFN0cmlu ZzwxMjg+IGpzb25GaWxlTmFtZShvdXRGaWxlTmFtZSk7Ci0gICAgIGpzb25GaWxlTmFtZS5hcHBl bmQoIi5qc29uIik7Ci1AQCAtNDc5LDcgKzQ3NCw2IEBAIHN0YXRpYyB2b2lkIHdyaXRlQ29tcGls ZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIG9mLT5rZWVwKCk7Ci0g ICAgIHJldHVybjsKLSB9Ci0tI2VuZGlmCi0gCi0gc3RhdGljIHN0ZDo6c2V0PGludD4gUGFyc2lu Z1BoYXNlcyhjaGFyICpzdGFnZXMsIEFyZ0Vycm9ycyAmZXJyb3JIYW5kbGVyKSB7Ci0gICAgIGNv bnN0ZXhwciBpbnQgcGFyc2luZ19saW1pdCA9IDEwMDsKLUBAIC03OTEsMTIgKzc4NSwxMCBAQCBp bnQgbWFpbihpbnQgQXJnYywgY2hhciAqQXJndltdKSB7Ci0gICAgICAgICAgICAgfQotICAgICAg ICAgfSBlbHNlIGlmICghc3RybmNtcChhcmd2W2ldLCAiLS1mb3JjZS1hbGlnbm1lbnQ9IiwgMTgp KSB7Ci0gICAgICAgICAgICAgZy0+Zm9yY2VBbGlnbm1lbnQgPSBhdG9pKGFyZ3ZbaV0gKyAxOCk7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICB9IGVs c2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0tdGltZS10cmFjZSIpKSB7Ci0gICAgICAgICAgICAg Zy0+ZW5hYmxlVGltZVRyYWNlID0gdHJ1ZTsKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAo YXJndltpXSwgIi0tdGltZS10cmFjZS1ncmFudWxhcml0eT0iLCAyNSkpIHsKLSAgICAgICAgICAg ICBnLT50aW1lVHJhY2VHcmFudWxhcml0eSA9IGF0b2koYXJndltpXSArIDI1KTsKLS0jZW5kaWYK LSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS13b2ZmIikgfHwgIXN0cmNt cChhcmd2W2ldLCAiLXdvZmYiKSkgewotICAgICAgICAgICAgIGctPmRpc2FibGVXYXJuaW5ncyA9 IHRydWU7Ci0gICAgICAgICAgICAgZy0+ZW1pdFBlcmZXYXJuaW5ncyA9IGZhbHNlOwotQEAgLTEw NTksNyArMTA1MSw2IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAKLSAg ICAgLy8gVGhpcyBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgdGhlIFRhcmdldE9TIGlzIGRlY2lkZWQu Ci0gICAgIHNldENhbGxpbmdDb252KHZlY3RvckNhbGwsIGFyY2gpOwotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBpZiAoZy0+ZW5hYmxlVGltZVRyYWNlKSB7 Ci0gICAgICAgICBsbHZtOjp0aW1lVHJhY2VQcm9maWxlckluaXRpYWxpemUoZy0+dGltZVRyYWNl R3JhbnVsYXJpdHksICJpc3BjIik7Ci0gICAgIH0KLUBAIC0xMDc3LDkgKzEwNjgsNSBAQCBpbnQg bWFpbihpbnQgQXJnYywgY2hhciAqQXJndltdKSB7Ci0gICAgICAgICB9Ci0gICAgICAgICBsbHZt Ojp0aW1lVHJhY2VQcm9maWxlckNsZWFudXAoKTsKLSAgICAgfQotLSNlbHNlCi0tICAgIGludCBy ZXQgPSBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoZmlsZSwgYXJjaCwgY3B1LCB0YXJnZXRzLCBm bGFncywgb3QsIG91dEZpbGVOYW1lLCBoZWFkZXJGaWxlTmFtZSwgZGVwc0ZpbGVOYW1lLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHNUYXJnZXROYW1lLCBob3N0 U3R1YkZpbGVOYW1lLCBkZXZTdHViRmlsZU5hbWUpOwotLSNlbmRpZgotICAgICByZXR1cm4gcmV0 OwotIH0KLWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmNwcCBiL3NyYy9tb2R1bGUuY3BwCi1pbmRl eCBmZTc0NTJkZjEuLmE4NWZlYzc3YSAxMDA2NDQKLS0tLSBhL3NyYy9tb2R1bGUuY3BwCi0rKysg Yi9zcmMvbW9kdWxlLmNwcAotQEAgLTE3MCw5ICsxNzAsNyBAQCBNb2R1bGU6Ok1vZHVsZShjb25z dCBjaGFyICpmbikgewotICAgICBtb2R1bGUtPnNldERhdGFMYXlvdXQoZy0+dGFyZ2V0LT5nZXRE YXRhTGF5b3V0KCktPmdldFN0cmluZ1JlcHJlc2VudGF0aW9uKCkpOwotIAotICAgICBpZiAoZy0+ Z2VuZXJhdGVEZWJ1Z2dpbmdTeW1ib2xzKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkNy ZWF0ZSBEZWJ1ZyBEYXRhIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBUbyBlbmFibGUgZGVidWcg aW5mb3JtYXRpb24gb24gV2luZG93cywgd2UgaGF2ZSB0byBsZXQgbGx2bSBrbm93LCB0aGF0Ci0g ICAgICAgICAvLyBkZWJ1ZyBpbmZvcm1hdGlvbiBzaG91bGQgYmUgZW1pdHRlZCBpbiBDb2RlVmll dyBmb3JtYXQuCi0gICAgICAgICBpZiAoZy0+dGFyZ2V0X29zID09IFRhcmdldE9TOjp3aW5kb3dz KSB7Ci1AQCAtMjI2LDEwICsyMjQsOCBAQCBleHRlcm4gWVlfQlVGRkVSX1NUQVRFIHl5X2NyZWF0 ZV9idWZmZXIoRklMRSAqLCBpbnQpOwotIGV4dGVybiB2b2lkIHl5X2RlbGV0ZV9idWZmZXIoWVlf QlVGRkVSX1NUQVRFKTsKLSAKLSBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgQ29tcGlsZUZpbGVUaW1lU2NvcGUoCi0gICAgICAgICAiQ29tcGlsZUZpbGUiLCBsbHZtOjpT dHJpbmdSZWYoZmlsZW5hbWUgKyAoIl8iICsgc3RkOjpzdHJpbmcoZy0+dGFyZ2V0LT5HZXRJU0FT dHJpbmcoKSkpKSk7Ci0tI2VuZGlmCi0gICAgIGV4dGVybiB2b2lkIFBhcnNlckluaXQoKTsKLSAg ICAgUGFyc2VySW5pdCgpOwotIAotQEAgLTIzOCwxOCArMjM0LDE0IEBAIGludCBNb2R1bGU6OkNv bXBpbGVGaWxlKCkgewotICAgICAvLyB2YXJpYWJsZSAnbScgdG8gYmUgaW5pdGlhbGl6ZWQgYW5k IGF2YWlsYWJsZSAod2hpY2ggaXQgaXNuJ3QgdW50aWwKLSAgICAgLy8gdGhlIE1vZHVsZSBjb25z dHJ1Y3RvciByZXR1cm5zLi4uKQotICAgICB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkRl ZmluZVN0ZGxpYiIpOwotLSNlbmRpZgotICAgICAgICAgRGVmaW5lU3RkbGliKHN5bWJvbFRhYmxl LCBnLT5jdHgsIG1vZHVsZSwgZy0+aW5jbHVkZVN0ZGxpYik7Ci0gICAgIH0KLSAKLSAgICAgYm9v bCBydW5QcmVwcm9jZXNzb3IgPSBnLT5ydW5DUFA7Ci0gCi0gICAgIGlmIChydW5QcmVwcm9jZXNz b3IpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAg IGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiRnJvbnRlbmQgcGFyc2VyIik7Ci0tI2Vu ZGlmCi0gICAgICAgICBpZiAoIUlzU3RkaW4oZmlsZW5hbWUpKSB7Ci0gICAgICAgICAgICAgLy8g VHJ5IHRvIG9wZW4gdGhlIGZpbGUgZmlyc3QsIHNpbmNlIG90aGVyd2lzZSB3ZSBjcmFzaCBpbiB0 aGUKLSAgICAgICAgICAgICAvLyBwcmVwcm9jZXNzb3IgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlz dC4KLUBAIC0yNjgsOSArMjYwLDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAg ICAgICB5eXBhcnNlKCk7Ci0gICAgICAgICB5eV9kZWxldGVfYnVmZmVyKHN0cmJ1Zik7Ci0gICAg IH0gZWxzZSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5kIHBhcnNlciIpOwot LSNlbmRpZgotICAgICAgICAgLy8gTm8gcHJlcHJvY2Vzc29yLCBqdXN0IG9wZW4gdXAgdGhlIGZp bGUgaWYgaXQncyBub3Qgc3RkaW4uLgotICAgICAgICAgRklMRSAqZiA9IE5VTEw7Ci0gICAgICAg ICBpZiAoSXNTdGRpbihmaWxlbmFtZSkpIHsKLUBAIC0yOTcsOSArMjg3LDcgQEAgaW50IE1vZHVs ZTo6Q29tcGlsZUZpbGUoKSB7Ci0gCi0gICAgIGlmIChkaUJ1aWxkZXIpCi0gICAgICAgICBkaUJ1 aWxkZXItPmZpbmFsaXplKCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiT3B0aW1pemUiKTsKLS0j ZW5kaWYKLSAgICAgaWYgKGVycm9yQ291bnQgPT0gMCkKLSAgICAgICAgIE9wdGltaXplKG1vZHVs ZSwgZy0+b3B0LmxldmVsKTsKLSAKLUBAIC0xMjQzLDE1ICsxMjMxLDggQEAgYm9vbCBNb2R1bGU6 OndyaXRlT2JqZWN0RmlsZU9yQXNzZW1ibHkobGx2bTo6VGFyZ2V0TWFjaGluZSAqdGFyZ2V0TWFj aGluZSwgbGx2bToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICAvLyBGaWd1cmUgb3V0IGlmIHdlJ3JlIGdlbmVy YXRpbmcgb2JqZWN0IGZpbGUgb3IgYXNzZW1ibHkgb3V0cHV0LCBhbmQKLSAgICAgLy8gc2V0IGJp bmFyeSBvdXRwdXQgZm9yIG9iamVjdCBmaWxlcwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgIEFzc2VydCghZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0t ICAgIGxsdm06OlRhcmdldE1hY2hpbmU6OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9Ci0tICAg ICAgICAob3V0cHV0VHlwZSA9PSBPYmplY3QpID8gbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q0dGVF9P YmplY3RGaWxlIDogbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q0dGVF9Bc3NlbWJseUZpbGU7Ci0tICAg IGJvb2wgYmluYXJ5ID0gKGZpbGVUeXBlID09IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfT2Jq ZWN0RmlsZSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBsbHZtOjpDb2RlR2VuRmlsZVR5 cGUgZmlsZVR5cGUgPSAob3V0cHV0VHlwZSA9PSBPYmplY3QpID8gbGx2bTo6Q0dGVF9PYmplY3RG aWxlIDogbGx2bTo6Q0dGVF9Bc3NlbWJseUZpbGU7Ci0gICAgIGJvb2wgYmluYXJ5ID0gKGZpbGVU eXBlID09IGxsdm06OkNHRlRfT2JqZWN0RmlsZSk7Ci0tI2VuZGlmCi0gCi0gICAgIGxsdm06OnN5 czo6ZnM6Ok9wZW5GbGFncyBmbGFncyA9IGJpbmFyeSA/IGxsdm06OnN5czo6ZnM6OkZfTm9uZSA6 IGxsdm06OnN5czo6ZnM6OkZfVGV4dDsKLSAKLUBAIC0yMjE5LDExICsyMjAwLDcgQEAgdm9pZCBN b2R1bGU6OmV4ZWNQcmVwcm9jZXNzb3IoY29uc3QgY2hhciAqaW5maWxlbmFtZSwgbGx2bTo6cmF3 X3N0cmluZ19vc3RyZWFtICoKLSAgICAgaW5zdC5zZXRUYXJnZXQodGFyZ2V0KTsKLSAgICAgaW5z dC5jcmVhdGVTb3VyY2VNYW5hZ2VyKGluc3QuZ2V0RmlsZU1hbmFnZXIoKSk7Ci0gCi0tI2lmIElT UENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgY2xhbmc6OkZyb250ZW5kSW5w dXRGaWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kOjpVbmtub3duKTsK LS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgIGNsYW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1 dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0S2luZCgpKTsKLS0jZW5kaWYKLSAKLSAgICAg aW5zdC5Jbml0aWFsaXplU291cmNlTWFuYWdlcihpbnB1dEZpbGUpOwotIAotQEAgLTI3MjIsOSAr MjY5OSw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3JjRmls ZSwgQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICBtID0gbmV3IE1v ZHVsZShzcmNGaWxlKTsKLSAgICAgICAgIGlmIChtLT5Db21waWxlRmlsZSgpID09IDApIHsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAjaWZkZWYg SVNQQ19HRU5YX0VOQUJMRUQKLSAgICAgICAgICAgICBpZiAob3V0cHV0VHlwZSA9PSBBc20gfHwg b3V0cHV0VHlwZSA9PSBPYmplY3QpIHsKLSAgICAgICAgICAgICAgICAgaWYgKGctPnRhcmdldC0+ aXNHZW5YVGFyZ2V0KCkpIHsKLUBAIC0yODU1LDkgKzI4MzAsNyBAQCBpbnQgTW9kdWxlOjpDb21w aWxlQW5kT3V0cHV0KGNvbnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAq Y3B1LCBzdAotIAotICAgICAgICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAg ICAgICAgIGludCBjb21waWxlRmlsZUVycm9yID0gbS0+Q29tcGlsZUZpbGUoKTsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsbHZtOjpUaW1l VHJhY2VTY29wZSBUaW1lU2NvcGUoIkJhY2tlbmQiKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICBp ZiAoY29tcGlsZUZpbGVFcnJvciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0 aGUgZGlzcGF0Y2ggbW9kdWxlLCB1bmxlc3MgYWxyZWFkeSBjcmVhdGVkOwotICAgICAgICAgICAg ICAgICAvLyBpbiB0aGUgbGF0dGVyIGNhc2UsIGp1c3QgZG8gdGhlIGNoZWNraW5nCi1kaWZmIC0t Z2l0IGEvc3JjL21vZHVsZS5oIGIvc3JjL21vZHVsZS5oCi1pbmRleCA2MWQzY2ZlYTAuLjYwMzEy NGQ1MCAxMDA2NDQKLS0tLSBhL3NyYy9tb2R1bGUuaAotKysrIGIvc3JjL21vZHVsZS5oCi1AQCAt NDMsOSArNDMsNyBAQAotIAotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1 cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVmIElTUENfR0VOWF9FTkFC TEVECi0gI2luY2x1ZGUgIm9jbF9pZ2NfaW50ZXJmYWNlL2lnY19vY2xfZGV2aWNlX2N0eC5oIgot ZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGE2NTVhODM0NC4u NWIxYWM3YjYzIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1A QCAtNjYsNiArNjYsNyBAQAotICNpbmNsdWRlIDxsbHZtL0lSL0luc3RydWN0aW9ucy5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY0luc3QuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRy aW5zaWNzLmg+Ci0rI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljc1g4Ni5oPgotICNpbmNsdWRl IDxsbHZtL0lSL0xlZ2FjeVBhc3NNYW5hZ2VyLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvTW9kdWxl Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvUGF0dGVybk1hdGNoLmg+Ci1AQCAtODUsOSArODYsNiBA QAotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvU2NhbGFyL0luc3RTaW1wbGlmeVBhc3MuaD4K LSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1V0aWxzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJh bnNmb3Jtcy9VdGlscy9CYXNpY0Jsb2NrVXRpbHMuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLS0jaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNzWDg2Lmg+Ci0t I2VuZGlmCi0gCi0gI2lmZGVmIElTUENfSE9TVF9JU19MSU5VWAotICNpbmNsdWRlIDxhbGxvY2Eu aD4KLUBAIC0xMDAzLDEwICsxMDAxLDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAg ICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9 PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLSAgICAgICAgICAgICAgICAgbmFtZSA9IExMVk1H ZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX2xvYWQiKTsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqbG9hZEluc3QgPQotLSAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJ bnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYWxpZ24sIChsbHZt OjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2Fk SW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vs c2UKLUBAIC0xMDQzLDEzICsxMDM4LDggQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAgIGFsaWdu ID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAg ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVk RnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRTdG9yZTMyID8gNCA6IDg7Ci0tI2lmIElTUENfTExWTV9W RVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0 ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgY2FzdFB0ciwgKGxsdm06 Okluc3RydWN0aW9uICopTlVMTCk7Ci0tICAgICAgICAgICAgICAgIHN0b3JlSW5zdC0+c2V0QWxp Z25tZW50KGFsaWduKTsKLS0jZWxzZQotICAgICAgICAgICAgICAgICBsbHZtOjpTdG9yZUluc3Qg KnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVlLCBjYXN0UHRyLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFs dWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShzdG9y ZUluc3QsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRo SW5zdChjYWxsSW5zdCwgc3RvcmVJbnN0KTsKLSAKLUBAIC0xMDY2LDkgKzEwNTYsNyBAQCBib29s IEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewot IAotIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikg ewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkludHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMTIzOSw5ICsxMjI3LDcgQEAgYm9vbCBJ bnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gCi0gYm9vbCBJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbihs bHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkluc3RydWN0aW9u U2ltcGxpZnlQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTI5NzQsMTYgKzI5NjAsMTAgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRTdG9yZShs bHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAKLSAgICAgICAgICAgICBsdmFsdWUgPSBuZXcg bGx2bTo6Qml0Q2FzdEluc3QobHZhbHVlLCBwdHJUeXBlLCAibHZhbHVlX3RvX3B0cl90eXBlIiwg Y2FsbEluc3QpOwotICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEobHZhbHVlLCBjYWxsSW5zdCk7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICBz dG9yZSA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVlLCBsdmFs dWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKTsKLS0jZWxzZQotICAgICAgICAgICAg IHN0b3JlID0gbmV3IGxsdm06OlN0b3JlSW5zdCgKLSAgICAgICAgICAgICAgICAgcnZhbHVlLCBs dmFsdWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2bTo6 TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotICAgICAgICAgICAgICAgICAgICAg LnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICB9Ci0gICAgICAgICBpZiAoc3RvcmUg IT0gTlVMTCkgewotICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoc3RvcmUsIGNhbGxJbnN0KTsK LUBAIC0zMDU5LDExICszMDM5LDcgQEAgc3RhdGljIGJvb2wgbEltcHJvdmVNYXNrZWRMb2FkKGxs dm06OkNhbGxJbnN0ICpjYWxsSW5zdCwgbGx2bTo6QmFzaWNCbG9jazo6aXRlcmEKLSAgICAgICAg IHsKLSAgICAgICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gbGx2bTo6UG9pbnRlclR5cGU6 OmdldChjYWxsSW5zdC0+Z2V0VHlwZSgpLCAwKTsKLSAgICAgICAgICAgICBwdHIgPSBuZXcgbGx2 bTo6Qml0Q2FzdEluc3QocHRyLCBwdHJUeXBlLCAicHRyX2Nhc3RfZm9yX2xvYWQiLCBjYWxsSW5z dCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAg ICBsb2FkID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFs c2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbGlmIElTUENfTExW TV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElT UENfTExWTV8xMF8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgKLSAg ICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9s YXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNl QWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBp bmZvLT5hbGlnbikKLUBAIC0zMTI5LDkgKzMxMDUsNyBAQCBib29sIEltcHJvdmVNZW1vcnlPcHNQ YXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElt cHJvdmVNZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0g Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rp b24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxz ZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlm aWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMzQyNCw5ICszMzk4LDcgQEAgbGx2 bTo6VmFsdWUgKmxHRVBBbmRMb2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNl dCwgaW50IGFsaWduLCBsbHZtOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlw ZSAqdHlwZSkgewotICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExW TUludDY0KG9mZnNldCksICJuZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5l dyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCks ICJwdHJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElT UENfTExWTV85XzAKLS0gICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJf bG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYWxpZ24sIGluc2VydEJlZm9yZSk7Ci0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5z dChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5 YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwotICAg ICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJU eXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi1AQCAt NDEzNSw5ICs0MTA3LDcgQEAgYm9vbCBHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNzOjpy dW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29w ZSgiR2F0aGVyQ29hbGVzY2VQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNl bmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFz aWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxv Y2soQkIpOwotQEAgLTQ0NjcsOSArNDQzNyw3IEBAIGJvb2wgUmVwbGFjZVBzZXVkb01lbW9yeU9w c1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wg UmVwbGFjZVBzZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFz czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2Rp ZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NTczLDkg KzQ1NDEsNyBAQCBib29sIElzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSXNDb21waWxlVGltZUNvbnN0YW50 UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBG dW5jU2NvcGUoIklzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdl dE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAg Zm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9 IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTIwMSw5ICs1MTY3LDcgQEAgYm9vbCBQZWVwaG9s ZVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wg UGVlcGhvbGVQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIEZ1bmNTY29wZSgiUGVlcGhvbGVQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1l KCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAo bGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5P bkJhc2ljQmxvY2soQkIpOwotQEAgLTUyOTksOSArNTI2Myw3IEBAIGJvb2wgUmVwbGFjZVN0ZGxp YlNoaWZ0UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0g Ym9vbCBSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9u ICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mzk5LDkgKzUz NjEsNyBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4Qm9vbGVhblNlbGVjdFBhc3M6OmZpeFNlbGVj dChsbHZtOjpTZWxlY3RJbnN0ICpzZWwsIGxsdm06OgotIH0KLSAKLSBib29sIEZpeEJvb2xlYW5T ZWxlY3RQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3Bl IEZ1bmNTY29wZSgiRml4Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5h bWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAKLSAgICAg cmV0dXJuIG1vZGlmaWVkQW55OwotQEAgLTU5NjQsOSArNTkyNCw3IEBAIGJvb2wgR2VuWEdhdGhl ckNvYWxlc2Npbmc6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0K LSAKLSBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0 aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1 bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRB bnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAg ICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjExMyw5ICs2MDcx LDcgQEAgYm9vbCBQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxs dm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFz czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5j U2NvcGUoIlByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXRO YW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZv ciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBy dW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYxODEsOSArNjEzNyw3IEBAIGJvb2wgUmVwbGFjZUxM Vk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAK LSBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlv biAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VMTFZNSW50cmluc2ljczo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02Mjc4LDkgKzYy MzIsNyBAQCBib29sIFJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2 bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpy dW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29w ZSgiUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7 Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZt OjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFz aWNCbG9jayhCQik7Ci1AQCAtNjM2OSw5ICs2MzIxLDcgQEAgYm9vbCBDaGVja1Vuc3VwcG9ydGVk SW5zdHM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBi b29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAm RikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkNoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25G dW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9 IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAg bW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02NDQwLDkgKzYzOTAsNyBA QCBib29sIE1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5j dGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIk1hbmdsZU9w ZW5DTEJ1aWx0aW5zOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTY4MjgsOSArNjc3Niw3IEBAIGJvb2wgRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9u KGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gICAgIC8vIFRyYW5zZm9ybWF0aW9ucyBhcmUgY29ycmVj dCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBub3QgaW50ZXJuYWwuCi0gICAgIC8vIFRoaXMgaXMgZHVl IHRvIGFkZHJlc3Mgc3BhY2UgY2FsY3VsYXRpb24gYWxnb3JpdGhtLgotICAgICAvLyBUT0RPOiBw cm9ibGVtcyBjYW4gYmUgbWV0IGluIGNhc2Ugb2YgU3RhY2sgQ2FsbHMKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVu Y1Njb3BlKCJGaXhBZGRyZXNzU3BhY2U6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0t I2VuZGlmCi0gICAgIGlmIChGLmdldExpbmthZ2UoKSA9PSBsbHZtOjpHbG9iYWxWYWx1ZTo6TGlu a2FnZVR5cGVzOjpJbnRlcm5hbExpbmthZ2UpCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gCi1A QCAtNjg1NCw5ICs2ODAwLDcgQEAgY2xhc3MgRGVtb3RlUEhJcyA6IHB1YmxpYyBsbHZtOjpGdW5j dGlvblBhc3MgewotIGNoYXIgRGVtb3RlUEhJczo6SUQgPSAwOwotIAotIGJvb2wgRGVtb3RlUEhJ czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2Nv cGUoIkRlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGlmIChGLmlzRGVjbGFyYXRpb24oKSB8fCBza2lwRnVuY3Rpb24oRikpCi0gICAgICAgICBy ZXR1cm4gZmFsc2U7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06Okluc3RydWN0aW9uICo+IFdvcmtM aXN0OwotZGlmZiAtLWdpdCBhL3NyYy90eXBlLmNwcCBiL3NyYy90eXBlLmNwcAotaW5kZXggNjg4 YTRlODc0Li5mYTBjYjA0ZGIgMTAwNjQ0Ci0tLS0gYS9zcmMvdHlwZS5jcHAKLSsrKyBiL3NyYy90 eXBlLmNwcAotQEAgLTE4MjIsMTQgKzE4MjIsMTAgQEAgbGx2bTo6RElUeXBlICpTdHJ1Y3RUeXBl OjpHZXRESVR5cGUobGx2bTo6RElTY29wZSAqc2NvcGUpIGNvbnN0IHsKLSAgICAgbGx2bTo6RElG aWxlICpkaUZpbGUgPSBwb3MuR2V0RElGaWxlKCk7Ci0gICAgIGxsdm06OkRJTmFtZXNwYWNlICpk aVNwYWNlID0gcG9zLkdldERJTmFtZXNwYWNlKCk7Ci0gICAgIHJldHVybiBtLT5kaUJ1aWxkZXIt PmNyZWF0ZVN0cnVjdFR5cGUoZGlTcGFjZSwgR2V0U3RyaW5nKCksIGRpRmlsZSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwgICAgICAg ICAgLy8gTGluZSBudW1iZXIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMoKSwgLy8gU2l6ZSBpbiBiaXRzCi0tI2lmIElTUENf TExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldEFsaWdubWVudCgpICogOCwgLy8gQWxpZ25tZW50 IGluIGJpdHMKLS0jZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gTExWTSAxMC4wKwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5maXJzdF9saW5lLCAgICAgICAgICAgICAgICAg ICAgIC8vIExpbmUgbnVtYmVyCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksICAgICAgICAgICAgLy8gU2l6ZSBpbiBiaXRz Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRB bGlnbm1lbnQoKS52YWx1ZSgpICogOCwgLy8gQWxpZ25tZW50IGluIGJpdHMKLS0jZW5kaWYKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZs YWdaZXJvLCAvLyBGbGFncwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OkRJTm9kZTo6RmxhZ1plcm8sICAgICAgICAgICAgIC8vIEZsYWdzCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZWxlbWVudHMpOwotIH0K LSAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjIGIvdGVzdHMvbGl0LXRl c3RzLzE3NzEuaXNwYwotaW5kZXggOTgwNjRkODRkLi40ZmViNzNkZDcgMTAwNjQ0Ci0tLS0gYS90 ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3Bj Ci1AQCAtNSw3ICs1LDYgQEAKLSAvLyBSVU46ICV7aXNwY30gJXMgLS10YXJnZXQ9c3NlNC1pMTZ4 OCAtLWVtaXQtYXNtIC1vIC0gfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDS1NTRTRf STE2WDgKLSAvLyBSVU46ICV7aXNwY30gJXMgLS10YXJnZXQ9c3NlNC1pOHgxNiAtLWVtaXQtYXNt IC1vIC0gfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDS1NTRTRfSThYMTYKLSAKLS0v LyBSRVFVSVJFUzogTExWTV8xMF8wKwotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotIC8v IENIRUNLQVZYMl9JMzJYODoge3tbYS16XSp4b3JbYS16XSp9fSAgJXhtbTAsICV4bW0wLCAleG1t MAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMgYi90ZXN0cy9saXQtdGVz dHMvMTg0NC5pc3BjCi1pbmRleCA3OTNhODg2NmMuLjE4OWVkZjRjMyAxMDA2NDQKLS0tLSBhL3Rl c3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMK LUBAIC02LDkgKzYsNiBAQAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotLS8vIEl0 IGRvZXNuJ3Qgd29yayBmb3IgYW55dGhpbmcgZWFybGllciB0aGFuIDEwLjAsIGJ1dCBpdCB3aWxs IG5vdCBiZSBmaXhlZCwgc28gZG9uJ3QgcnVuLgotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0t Ci0gZXh0ZXJuIHVuaWZvcm0gdW5zaWduZWQgaW50NjQgdmFyXzY7Ci0gZXh0ZXJuIHVuaWZvcm0g dW5zaWduZWQgaW50MTYgdmFyXzExOwotIGV4dGVybiB1bmlmb3JtIGJvb2wgYXJyXzIwMSBbMV0g WzE1XSBbMjBdOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgYi90ZXN0 cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1pbmRleCA3MGY3Y2MzYzIuLjc5MjFjOTFhNiAxMDA2NDQK LS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8x OTI2LmlzcGMKLUBAIC0yLDggKzIsNiBAQAotIC8vIFJVTjogY2F0ICVULzE5MjYuby5qc29uIFwK LSAvLyBSVU46ICAgfCBGaWxlQ2hlY2sgJXMKLSAKLS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwot LQotIC8vIENIRUNLOiAidHJhY2VFdmVudHMiCi0gLy8gQ0hFQ0s6ICJkZXRhaWwiCi0gZXhwb3J0 IHVuaWZvcm0gaW50IGZvbyh1bmlmb3JtIGludCBhW10sIHVuaWZvcm0gaW50IGNvdW50KSB7Ci1k aWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgYi90ZXN0cy9saXQtdGVz dHMvY3B1c194ODYuaXNwYwotaW5kZXggNTE2ZWZkZDRjLi40ZDYwMTg2ZjYgMTAwNjQ0Ci0tLS0g YS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRlc3RzL2Nw dXNfeDg2LmlzcGMKLUBAIC0yNCw2ICsyNCw4IEBACi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAl dC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY2wKLSAvLzsgUlVOOiAl e2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWlj ZWxha2Utc2VydmVyCi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10 YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY3gKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8g LS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRpZ2VybGFrZQotKy8vOyBSVU46 ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9 dGdsCi0gCi0gLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMv bGl0LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2 X2xsdm0xMC5pc3BjCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGVmMDAwMDBlNS4u MDAwMDAwMDAwCi0tLS0gYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLSsr KyAvZGV2L251bGwKLUBAIC0xLDExICswLDAgQEAKLS0vLyBUaGUgdGVzdCBjaGVja3MgdGhhdCBj cHUgZGVmaW5pdGlvbnMgKGluY2x1ZGluZyBhbGwgc3lub255bXMpIGFyZSBzdWNjZXNzZnVsbHkg Y29uc3VtZWQgYnkgY29tcGlsZXIuCi0tCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0t bm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdlcmxha2UKLS0vLzsgUlVOOiAl e2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRn bAotLQotLS8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzAr Ci0tCi0tdW5pZm9ybSBpbnQgaTsKLS0KLS12b2lkIGZvbygpIHt9Ci1kaWZmIC0tZ2l0IGEvdGVz dHMvbGl0LXRlc3RzL2xpdC5jZmcgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotaW5kZXggMTcw MTY1NzlkLi4wNDVlNjk0MzcgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwot KysrIGIvdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcKLUBAIC0zMCwxMSArMzAsNiBAQCBwcmludCgi Q29uZmlnOiIpCi0gCi0gIyBMTFZNIHZlcnNpb24KLSBsbHZtX3ZlcnNpb24gPSBMb29zZVZlcnNp b24oaXNwY19sbHZtX3ZlcnNpb25fbnVtYmVyKQotLWlmIGxsdm1fdmVyc2lvbiA+PSBMb29zZVZl cnNpb24oIjEwLjAuMCIpOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogWUVTIikKLS0gICAgY29u ZmlnLmF2YWlsYWJsZV9mZWF0dXJlcy5hZGQoIkxMVk1fMTBfMCsiKQotLWVsc2U6Ci0tICAgIHBy aW50KCJMTFZNXzEwXzArOiBOTyIpCi0gCi0gaWYgbGx2bV92ZXJzaW9uID49IExvb3NlVmVyc2lv bigiMTIuMC4wIik6Ci0gICAgIHByaW50KCJMTFZNXzEyXzArOiBZRVMiKQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MjNh ZmM5ZTNmOS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTA0ICswLDAgQEAKLUZyb20gMTg1MWQxOGIy MTNkYmFkMTY5OTM3MDc2MTc2YjJkNTUwOTczM2M3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IERlZXBhayBSYWplbmRyYWt1bWFyYW4gPGRlZXBhay5yYWplbmRyYWt1bWFyYW5AaW50 ZWwuY29tPgotRGF0ZTogVHVlLCAxMiBKYW4gMjAyMSAyMjoxNToxMiAtMDgwMAotU3ViamVjdDog W1BBVENIXSBmaXhlcyAjMTgyMSAtIFJlbW92aW5nIExMVk1HZXROYW1lKCkgYW5kIHN3aXRjaGlu ZyB0bwotIExMVk06OlR3aW5lLgotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgIHwgMzA0ICsrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2N0eC5oICAg ICAgICB8ICA3MiArKysrKy0tLS0tLQotIHNyYy9leHByLmNwcCAgICAgfCAgMzYgKysrLS0tCi0g c3JjL2xsdm11dGlsLmNwcCB8ICAxNyAtLS0KLSBzcmMvbGx2bXV0aWwuaCAgIHwgICA1IC0KLSBz cmMvb3B0LmNwcCAgICAgIHwgMTAzICsrKysrKysrKy0tLS0tLS0KLSA2IGZpbGVzIGNoYW5nZWQs IDI1NSBpbnNlcnRpb25zKCspLCAyODIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv Y3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA0MmM0ZWEwOWQuLmRlZDUyNGI3MSAxMDA2NDQK LS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAsOCArMTAyMCw4 IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQgdmFsdWUsIGJv b2wgY2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxvY2sgKmJiQ2Fz ZUltcGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkgewotICAgICAg ICAgLy8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVtZW50YXRpb24K LS0gICAgICAgIHN0ZDo6c3RyaW5nIGJiTmFtZSA9IGJiQ2FzZS0+Z2V0TmFtZSgpLnN0cigpICsg Il9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2NrKGJiTmFtZS5j X3N0cigpLCBiYkNhc2UpOwotKyAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdp bmUoYmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIjsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBD cmVhdGVCYXNpY0Jsb2NrKGJiTmFtZSwgYmJDYXNlKTsKLSAgICAgfQotICNlbmRpZgotIAotQEAg LTExODUsNyArMTE4NSw3IEBAIGJvb2wgRnVuY3Rpb25FbWl0Q29udGV4dDo6aW5pdExhYmVsQkJs b2NrcyhBU1ROb2RlICpub2RlLCB2b2lkICpkYXRhKSB7Ci0gICAgIGlmIChjdHgtPmxhYmVsTWFw LmZpbmQobHMtPm5hbWUpICE9IGN0eC0+bGFiZWxNYXAuZW5kKCkpCi0gICAgICAgICBFcnJvcihs cy0+cG9zLCAiTXVsdGlwbGUgbGFiZWxzIG5hbWVkIFwiJXNcIiBpbiBmdW5jdGlvbi4iLCBscy0+ bmFtZS5jX3N0cigpKTsKLSAgICAgZWxzZSB7Ci0tICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpi YiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9jayhscy0+bmFtZS5jX3N0cigpKTsKLSsgICAgICAgIGxs dm06OkJhc2ljQmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1lKTsKLSAg ICAgICAgIGN0eC0+bGFiZWxNYXBbbHMtPm5hbWVdID0gYmI7Ci0gICAgIH0KLSAgICAgcmV0dXJu IHRydWU7Ci1AQCAtMTI5OSw3ICsxMjk5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkFueShsbHZtOjpWYWx1ZSAqbWFzaykgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkg Y2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBM TFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpm bW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1h c2ssIExMVk1HZXROYW1lKG1hc2ssICJfYW55IikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1t LCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9hbnkiKTsKLSB9 Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAq bWFzaykgewotQEAgLTEzMTUsNyArMTMxNSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpBbGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5 IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8g TExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAq Zm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBt YXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FsbCIpKTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZt bSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfYWxsIik7Ci0g fQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVl ICptYXNrKSB7Ci1AQCAtMTMzMSw3ICsxMzMxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6Ok5vbmUobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVh bGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAg Ly8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlv biAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxM LCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX25vbmUiKSk7Ci0rICAgIHJldHVybiBDYWxsSW5z dChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX25vbmUi KTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxhbmVNYXNrKGxs dm06OlZhbHVlICp2KSB7Ci1AQCAtMTM0OSw3ICsxMzQ5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkxhbmVNYXNrKGxsdm06OlZhbHVlICp2KSB7Ci0gICAgIC8vIFdlIGNh biBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFz Ci0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2bTo6 RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0KGZt bSwgTlVMTCwgdiwgTExWTUdldE5hbWUodiwgIl9tb3Ztc2siKSk7Ci0rICAgIHJldHVybiBDYWxs SW5zdChmbW0sIE5VTEwsIHYsIGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX21vdm1zayIp OwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFza3NBbGxFcXVh bChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MikgewotQEAgLTEzNjQsMTEgKzEzNjQs MTIgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1hc2tzQWxsRXF1YWwobGx2 bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIKLSAjZWxzZQotICAgICBpZiAoZy0+dGFyZ2V0 LT5nZXRBcmNoKCkgPT0gQXJjaDo6d2FzbTMyKSB7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAq Zm1tID0gbS0+bW9kdWxlLT5nZXRGdW5jdGlvbigiX193YXNtX2NtcF9tc2tfZXEiKTsKLS0gICAg ICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHt2MSwgdjJ9LCBMTFZNR2V0TmFtZSgid2Fz bV9jbXBfbXNrX2VxIiwgdjEsIHYyKSk7Ci0rICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBO VUxMLCB7djEsIHYyfSwgKChsbHZtOjpUd2luZSgid2FzbV9jbXBfbXNrX2VxXyIpICsgdjEtPmdl dE5hbWUoKSkgKyAiXyIpICsgdjItPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAgICAgbGx2bTo6VmFs dWUgKm1tMSA9IExhbmVNYXNrKHYxKTsKLSAgICAgbGx2bTo6VmFsdWUgKm1tMiA9IExhbmVNYXNr KHYyKTsKLS0gICAgcmV0dXJuIENtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIGxsdm06 OkNtcEluc3Q6OklDTVBfRVEsIG1tMSwgbW0yLCBMTFZNR2V0TmFtZSgiZXF1YWwiLCB2MSwgdjIp KTsKLSsgICAgcmV0dXJuIENtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIGxsdm06OkNt cEluc3Q6OklDTVBfRVEsIG1tMSwgbW0yLAotKyAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3 aW5lKCJlcXVhbF8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkpOwot ICNlbmRpZgotIH0KLSAKLUBAIC0xMzkyLDcgKzEzOTMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0U3RyaW5nUHRyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIpIHsKLSAg ICAgcmV0dXJuIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsc3RyUHRyLCBMTFZNVHlwZXM6OlZvaWRQ b2ludGVyVHlwZSwgInN0cl92b2lkX3B0ciIsIGJibG9jayk7Ci0gfQotIAotLWxsdm06OkJhc2lj QmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hhciAq bmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsKLStsbHZtOjpCYXNpY0Jsb2Nr ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlcikgewotICAgICBsbHZtOjpCYXNp Y0Jsb2NrICpuZXdCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNyZWF0ZSgqZy0+Y3R4LCBuYW1lLCBs bHZtRnVuY3Rpb24pOwotICAgICBpZiAoaW5zZXJ0QWZ0ZXIpCi0gICAgICAgICBuZXdCQi0+bW92 ZUFmdGVyKGluc2VydEFmdGVyKTsKLUBAIC0xNDE2LDE0ICsxNDE3LDE1IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJMVZlY1RvQm9vbFZlYyhsbHZtOjpWYWx1ZSAqYikgewot IAotICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBhdC0+Z2V0TnVtRWxlbWVu dHMoKTsgKytpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsdCA9IEV4dHJhY3RJbnN0 KGIsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpzZXh0ID0gU3dpdGNoQm9vbFNpemUo ZWx0LCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgTExWTUdldE5hbWUoZWx0LCAi X3RvX2Jvb2x2ZWMiKSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNleHQgPQotKyAgICAg ICAgICAgICAgICBTd2l0Y2hCb29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0b3Jh Z2VUeXBlLCBsbHZtOjpUd2luZShlbHQtPmdldE5hbWUoKSkgKyAiX3RvX2Jvb2x2ZWMiKTsKLSAg ICAgICAgICAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgc2V4dCwgaSk7Ci0gICAgICAgICB9Ci0g ICAgICAgICByZXR1cm4gcmV0OwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gRm9yIG5vbi1h cnJheSB0eXBlcywgY29udmVydCB0byAnTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZScgaWYKLSAg ICAgICAgIC8vIG5lY2Vzc2FyeS4KLS0gICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6ZShiLCBM TFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLCBMTFZNR2V0TmFtZShiLCAiX3RvX2Jvb2x2ZWMiKSk7 Ci0rICAgICAgICByZXR1cm4gU3dpdGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9y VHlwZSwgbGx2bTo6VHdpbmUoYi0+Z2V0TmFtZSgpKSArICJfdG9fYm9vbHZlYyIpOwotICAgICB9 Ci0gfQotIAotQEAgLTE1NjMsNyArMTU2NSw3IEBAIHN0YXRpYyBpbnQgbEFycmF5VmVjdG9yV2lk dGgobGx2bTo6VHlwZSAqdCkgewotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbnN0LCBs bHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICBpZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci1AQCAtMTU3Myw3ICsxNTc1LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4K LSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNp emUgPSBsQXJyYXlWZWN0b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7 Ci0tICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6 OkNyZWF0ZShpbnN0LCB2MCwgdjEsIG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqYm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShp bnN0LCB2MCwgdjEsIG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1Bvcyhib3ApOwot ICAgICAgICAgcmV0dXJuIGJvcDsKLSAgICAgfSBlbHNlIHsKLUBAIC0xNTkxLDcgKzE1OTMsNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6 SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbgotICAgICB9Ci0gfQotIAotLWxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hh ciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRv cihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE2MDMsMTQgKzE2MDUsMTQgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2 LCBjb25zdCBjaGFyICpuYW1lKQotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdi0+Z2V0VHlwZSgp OwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlm IChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJpbnN0ID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdCh2LCBuYW1lID8gbmFtZSA6ICJub3QiLCBi YmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJpbnN0ID0gbGx2bTo6QmluYXJ5 T3BlcmF0b3I6OkNyZWF0ZU5vdCh2LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJub3QiIDog bmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGJpbnN0KTsKLSAgICAgICAgIHJl dHVybiBiaW5zdDsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIGxsdm06OlZhbHVlICpyZXQgPSBs bHZtOjpVbmRlZlZhbHVlOjpnZXQodHlwZSk7Ci0gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IGFycmF5U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmEgPSBFeHRyYWN0 SW5zdCh2LCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlTm90KGEsIG5hbWUgPyBuYW1lIDogIm5vdCIsIGJibG9jayk7Ci0rICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5v dChhLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJub3QiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgICAgICAgICBBZGREZWJ1Z1BvcyhvcCk7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5z dChyZXQsIG9wLCBpKTsKLSAgICAgICAgIH0KLUBAIC0xNjM4LDcgKzE2NDAsNyBAQCBzdGF0aWMg bGx2bTo6VHlwZSAqbEdldE1hdGNoaW5nQm9vbFZlY3RvclR5cGUobGx2bTo6VHlwZSAqdHlwZSkg ewotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5zdChsbHZt OjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bTo6Q21wSW5zdDo6UHJlZGljYXRlIHBy ZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZh bHVlICp2MSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwg fHwgdjEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9y Q291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE2NDgsNyArMTY1MCw4IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0 aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0 VHlwZSgpOwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0g ICAgIGlmIChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmNp ID0gbGx2bTo6Q21wSW5zdDo6Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwgbmFtZSA/IG5hbWUg OiAiY21wIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpjaSA9Ci0rICAg ICAgICAgICAgbGx2bTo6Q21wSW5zdDo6Q3JlYXRlKGluc3QsIHByZWQsIHYwLCB2MSwgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGRE ZWJ1Z1BvcyhjaSk7Ci0gICAgICAgICByZXR1cm4gY2k7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTY1 NywxNCArMTY2MCwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5z dChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVl ICphID0gRXh0cmFjdEluc3QodjAsIGkpOwotICAgICAgICAgICAgIGxsdm06OlZhbHVlICpiID0g RXh0cmFjdEluc3QodjEsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IENtcElu c3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9w ID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJj bXAiIDogbmFtZSk7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9wLCBpKTsK LSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0KLSB9Ci0gCi0tbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFs dWUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0x NzA0LDIxICsxNzA3LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVh clVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgIHJldHVybiBy ZXQ7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaXRDYXN0SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0g Ci0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFs dWUsICJfYml0Y2FzdCIpOwotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBs bHZtOjpCaXRDYXN0SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoCi0rICAgICAgICB2YWx1 ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0 TmFtZSgpKSArICJfYml0Y2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1Bvcyhp bnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpu YW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2 YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JD b3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTcyOCwyMyArMTcyOSwxOSBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgLy8gbm8tb3AgZm9yIHZhcnlpbmcg cG9pbnRlcnM7IHRoZXkncmUgYWxyZWFkeSB2ZWN0b3JzIG9mIGludHMKLSAgICAgICAgIHJldHVy biB2YWx1ZTsKLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZN R2V0TmFtZSh2YWx1ZSwgIl9wdHIyaW50Iik7Ci0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSBMTFZN VHlwZXM6OlBvaW50ZXJJbnRUeXBlOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5l dyBsbHZtOjpQdHJUb0ludEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAgICAg IHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVl LT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVn UG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxM KSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwot ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkK LS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9wdHIyaW50Iik7Ci0tCi0gICAg IGxsdm06OlR5cGUgKmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYgKGxsdm06 OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZhcnlpbmcg cG9pbnRlcgotQEAgLTE3NTIsMjcgKzE3NDksMjYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnQK LSAgICAgICAgICAgICAvLyBhbHJlYWR5IHRoZSByaWdodCB0eXBlLS1kb25lCi0gICAgICAgICAg ICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAgZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNjYWxhclNp emVJbkJpdHMoKSA+IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKQotLSAgICAgICAgICAg IHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0 dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgp KSArICJfcHRyMmludCIgOiBuYW1lKTsKLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpIDwgdG9U eXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpOwotLSAgICAgICAgICAgIHJldHVybiBaRXh0SW5z dCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFs dWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+ Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAot LSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFs dWUsIHRvVHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHRvVHlwZSwgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRy MmludCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0 dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnRU b1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNo YXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW50VG9QdHJJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExW TUdldE5hbWUodmFsdWUsICJfaW50MnB0ciIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlw ZSA9IHZhbHVlLT5nZXRUeXBlKCk7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlw ZT4oZnJvbVR5cGUpKSB7Ci0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzgwLDk1 ICsxNzc2LDg3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnRUb1B0cklu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gZG9u ZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSkK LS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAg ICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFs dWUtPmdldE5hbWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsKLSAg ICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNpemVJ bkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAgICBy ZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJu IFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6 VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSk7Ci0gICAgICAgICB9 Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50 VG9QdHJJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCgKLSsgICAgICAgIHZhbHVlLCB0 b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5h bWUoKSkgKyAiX2ludDJwdHIiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5z dCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rp b25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVt aXRDb250ZXh0OjpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBl LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewot ICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAg ICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfdHJ1bmMiKTsKLS0KLSAgICAgLy8gVE9E Tzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAv LyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1 bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1 bmNJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IG5ldyBsbHZtOjpUcnVuY0luc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJf dHJ1bmMiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJl dHVybiBpbnN0OwotIH0KLSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Q2FzdEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0g Ci0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFs dWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxl IHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdl IGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUob3AsIHZhbHVlLCB0eXBlLCBu YW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJ bnN0OjpDcmVhdGUoCi0rICAgICAgICBvcCwgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3QiIDogbmFtZSwg YmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0K LSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RlBDYXN0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2 YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5k bGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQg d2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCh2YWx1ZSwgdHlw ZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpD YXN0SW5zdDo6Q3JlYXRlRlBDYXN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2Nhc3QiIDog bmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0 OwotIH0KLSAKLS1sbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U0V4dElu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNFeHRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAg fQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1l KHZhbHVlLCAiX3NleHQiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhh bmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1 dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6U0V4dEluc3QodmFsdWUsIHR5cGUsIG5hbWUs IGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNFeHRJ bnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2 bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3NleHQiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpJ bnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6WkV4dEluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZh bHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3pleHQiKTsK LS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2Fz ZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50 bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBuZXcgbGx2bTo6WkV4dEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyAgICAgICAgdmFs dWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3pleHQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5z dCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLUBAIC0xOTEzLDE0ICsxOTAxLDE1IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OlZhCi0gICAgICAgICBzY2FsZSA9IFNtZWFyVW5pZm9ybShzY2FsZSk7 Ci0gICAgICAgICBBc3NlcnQoaW5kZXggIT0gTlVMTCk7Ci0gICAgICAgICAvLyBvZmZzZXQgPSBp bmRleCAqIHNjYWxlCi0tICAgICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0 cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsIExMVk1HZXROYW1lKCJtdWwiLCBzY2FsZSwgaW5k ZXgpKTsKLSsgICAgICAgIG9mZnNldCA9IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9u OjpNdWwsIHNjYWxlLCBpbmRleCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo bGx2bTo6VHdpbmUoIm11bF8iKSArIHNjYWxlLT5nZXROYW1lKCkpICsgIl8iKSArIGluZGV4LT5n ZXROYW1lKCkpOwotICAgICB9Ci0gCi0gICAgIC8vIEZvciA2NC1iaXQgdGFyZ2V0cywgaWYgd2Un dmUgYmVlbiBkb2luZyBvdXIgb2Zmc2V0IGNhbGN1bGF0aW9ucyBpbgotICAgICAvLyAzMiBiaXRz LCB3ZSBzdGlsbCBoYXZlIHRvIGNvbnZlcnQgdG8gYSA2NC1iaXQgdmFsdWUgYmVmb3JlIHdlCi0g ICAgIC8vIGFjdHVhbGx5IGFkZCB0aGUgb2Zmc2V0IHRvIHRoZSBwb2ludGVyLgotICAgICBpZiAo Zy0+dGFyZ2V0LT5pczMyQml0KCkgPT0gZmFsc2UgJiYgZy0+b3B0LmZvcmNlMzJCaXRBZGRyZXNz aW5nID09IHRydWUpCi0tICAgICAgICBvZmZzZXQgPSBTRXh0SW5zdChvZmZzZXQsIExMVk1UeXBl czo6SW50NjRWZWN0b3JUeXBlLCBMTFZNR2V0TmFtZShvZmZzZXQsICJfdG9fNjQiKSk7Ci0rICAg ICAgICBvZmZzZXQgPSBTRXh0SW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50NjRWZWN0b3JUeXBl LCBsbHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RvXzY0Iik7Ci0gCi0gICAgIC8v IFNtZWFyIG91dCB0aGUgcG9pbnRlciB0byBiZSB2YXJ5aW5nOyBlaXRoZXIgdGhlIGJhc2UgcG9p bnRlciBvciB0aGUKLSAgICAgLy8gaW5kZXggbXVzdCBiZSB2YXJ5aW5nIGZvciB0aGlzIG1ldGhv ZCB0byBiZSBjYWxsZWQuCi1AQCAtMTkyOSw3ICsxOTE4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OmFwcGx5VmFyeWluZ0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2 bTo6VmEKLSAgICAgbGx2bTo6VmFsdWUgKnZhcnlpbmdQdHIgPSBiYXNlSXNVbmlmb3JtID8gU21l YXJVbmlmb3JtKGJhc2VQdHIpIDogYmFzZVB0cjsKLSAKLSAgICAgLy8gbmV3UHRyID0gcHRyICsg b2Zmc2V0Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QWRk LCB2YXJ5aW5nUHRyLCBvZmZzZXQsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0IikpOwot KyAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWlu Z1B0ciwgb2Zmc2V0LCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9vZmZzZXQi KTsKLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNYXRjaEludGVnZXJUeXBlcyhs bHZtOjpWYWx1ZSAqKnYwLCBsbHZtOjpWYWx1ZSAqKnYxKSB7Ci1AQCAtMjAwNiwxMyArMTk5NSwx MyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFrZVNsaWNlUG9pbnRlcihs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZQotICAgICBsbHZtOjpTdHJ1Y3RUeXBlICpzdCA9 IGxsdm06OlN0cnVjdFR5cGU6OmdldCgqZy0+Y3R4LCBlbHRUeXBlcyk7Ci0gCi0gICAgIGxsdm06 OlZhbHVlICpyZXQgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQoc3QpOwotLSAgICByZXQgPSBJbnNl cnRJbnN0KHJldCwgcHRyLCAwLCBMTFZNR2V0TmFtZShyZXQsICJfc2xpY2VfcHRyIikpOwotLSAg ICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb2Zmc2V0LCAxLCBMTFZNR2V0TmFtZShyZXQsICJfc2xp Y2Vfb2Zmc2V0IikpOwotKyAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgcHRyLCAwLCBsbHZtOjpU d2luZShyZXQtPmdldE5hbWUoKSkgKyAiX3NsaWNlX3B0ciIpOwotKyAgICByZXQgPSBJbnNlcnRJ bnN0KHJldCwgb2Zmc2V0LCAxLCBsbHZtOjpUd2luZShyZXQtPmdldE5hbWUoKSkgKyAiX3NsaWNl X29mZnNldCIpOwotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxs dm06OlZhbHVlICppbmRleCwgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoYmFzZVB0ciA9PSBOVUxMIHx8IGlu ZGV4ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMDY1LDggKzIwNTQsOCBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6 VmFsdWUgKmJhc2VQdHIsIGxsdm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBlbWl0 IHRoZSByZWd1bGFyIExMVk0gR0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1ZSAq aW5kWzFdID0ge2luZGV4fTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+ IGFycmF5UmVmKCZpbmRbMF0sICZpbmRbMV0pOwotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZ UEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJnZXAiLCBiYmxv Y2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpHZXRFbGVtZW50 UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJnZXAiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAgICAgcmV0dXJuIGluc3Q7Ci0gICAgIH0g ZWxzZQotQEAgLTIwNzQsNyArMjA2Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gfQot IAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChs bHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4MCwgbGx2bTo6VmFsdWUgKmlu ZGV4MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlICpw dHJSZWZUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoYmFzZVB0ciA9 PSBOVUxMIHx8IGluZGV4MCA9PSBOVUxMIHx8IGluZGV4MSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci1AQCAtMjExNCw4ICsyMTAzLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAg ICAgICAgIC8vIHVuaWZvcm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0 cnVjdGlvbgotICAgICAgICAgbGx2bTo6VmFsdWUgKmluZGljZXNbMl0gPSB7aW5kZXgwLCBpbmRl eDF9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJmlu ZGljZXNbMF0sICZpbmRpY2VzWzJdKTsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJh c2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5hbWUgOiAiZ2VwIiwgYmJsb2NrKTsK LSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6R2V0RWxlbWVudFB0cklu c3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAg ICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVybiBpbnN0OwotICAgICB9IGVsc2Ug ewotQEAgLTIxMzgsNyArMjEyNyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gfQotIAot IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06 OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0clJlZlR5 cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSkgewot ICAgICBpZiAocmVzdWx0UHRyVHlwZSAhPSBOVUxMKQotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCk7Ci0gCi1AQCAtMjE5NSw4ICsyMTg0LDggQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFs dWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAgIC8vIElmIHRoZSBwb2ludGVyIGlzIHVuaWZv cm0sIHdlIGNhbiB1c2UgdGhlIHJlZ3VsYXIgTExWTSBHRVAuCi0gICAgICAgICBsbHZtOjpWYWx1 ZSAqb2Zmc2V0c1syXSA9IHtMTFZNSW50MzIoMCksIExMVk1JbnQzMihlbGVtZW50TnVtKX07Ci0g ICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmb2Zmc2V0c1sw XSwgJm9mZnNldHNbMl0pOwotLSAgICAgICAgcmVzdWx0UHRyID0KLS0gICAgICAgICAgICBsbHZt OjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJh eVJlZiwgbmFtZSA/IG5hbWUgOiAic3RydWN0X29mZnNldCIsIGJibG9jayk7Ci0rICAgICAgICBy ZXN1bHRQdHIgPSBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIp LCBiYXNlUHRyLCBhcnJheVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAic3RydWN0X29mZnNl dCIgOiBuYW1lLCBiYmxvY2spOwotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNl IGRvIHRoZSBtYXRoIHRvIGZpbmQgdGhlIG9mZnNldCBhbmQgYWRkIGl0IHRvIHRoZSBnaXZlbgot ICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVycwotQEAgLTIyMzcsNyArMjIyNiw3IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVl ICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICByZXR1cm4gcmVzdWx0UHRyOwotIH0KLSAKLS1s bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmICgodmFsdWUgPT0gTlVMTCkgfHwgKHRvVHlwZSA9PSBOVUxMKSkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotQEAgLTIyNDgsMjAgKzIyMzcsMTggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZQot ICAgICBsbHZtOjpWYWx1ZSAqbmV3Qm9vbCA9IHZhbHVlOwotICAgICBpZiAoZy0+dGFyZ2V0LT5n ZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKGZyb21UeXBlKSA+Ci0gICAgICAgICBn LT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewot LSAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodmFsdWUsICJfc3dpdGNoQm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFRydW5jSW5zdCh2 YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgIG5ld0Jvb2wgPQotKyAgICAgICAgICAgIFRy dW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpU d2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0g ZWxzZSBpZiAoZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRzKGZy b21UeXBlKSA8Ci0gICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdl dFR5cGVTaXplSW5CaXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0t ICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0g ICAgICAgIG5ld0Jvb2wgPSBTRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAg IG5ld0Jvb2wgPQotKyAgICAgICAgICAgIFNFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNU cml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zd2l0 Y2hCb29sIikgOiBuYW1lKTsKLSAgICAgfQotIAotICAgICByZXR1cm4gbmV3Qm9vbDsKLSB9Ci0g Ci0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVl ICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3Qg VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHB0ciA9PSBO VUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDAp OwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI3MCwxMyArMjI1NywxMyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29u c3QgVHlwZSAqdHlwZSwgYwotICAgICBsbHZtOjpQb2ludGVyVHlwZSAqcHQgPSBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpOwotICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgcHQgIT0gTlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBu ZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUs IGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAgICAgIG5ldyBsbHZt OjpMb2FkSW5zdChwdC0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAg bGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLCBiYmxv Y2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICBuZXcgbGx2bTo6TG9h ZEluc3QocHRyLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdl dE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsIGJibG9jayk7Ci0gI2VuZGlmCi0gCi0gICAgIGlm IChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotQEAgLTIzMDcsOCArMjI5NCw4IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBUeXBlICp0eXBlLCBjCi0gc3RhdGljIGxsdm06OlZhbHVlICpsRmluYWxTbGljZU9m ZnNldChGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBv aW50ZXJUeXBlICoqcHRyVHlwZSkgewotICAgICBBc3NlcnQoQ2FzdFR5cGU8UG9pbnRlclR5cGU+ KCpwdHJUeXBlKSAhPSBOVUxMKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlUHRyID0gY3R4 LT5FeHRyYWN0SW5zdChwdHIsIDAsIExMVk1HZXROYW1lKHB0ciwgIl9wdHIiKSk7Ci0tICAgIGxs dm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAxLCBMTFZNR2V0 TmFtZShwdHIsICJfb2Zmc2V0IikpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VQdHIgPSBjdHgt PkV4dHJhY3RJbnN0KHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9wdHIi KTsKLSsgICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0SW5zdChwdHIs IDEsIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gCi0gICAgIC8v IHNsaWNlUHRyIHNob3VsZCBiZSBhIHBvaW50ZXIgdG8gYW4gc29hLXdpZHRoIHdpZGUgYXJyYXkg b2YgdGhlCi0gICAgIC8vIGZpbmFsIGF0b21pYy9lbnVtL3BvaW50ZXIgdHlwZQotQEAgLTIzMjcs MTQgKzIzMTQsMTQgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRmluYWxTbGljZU9mZnNldChGdW5j dGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlICpwdHIKLSAgICAgICAgIHNsaWNlUHRy ID0gY3R4LT5CaXRDYXN0SW5zdChzbGljZVB0ciwgKCpwdHJUeXBlKS0+TExWTVR5cGUoZy0+Y3R4 KSk7Ci0gCi0gICAgIC8vIEFuZCBmaW5hbGx5IGluZGV4IGJhc2VkIG9uIHRoZSBzbGljZSBvZmZz ZXQKLS0gICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIsIHNsaWNlT2Zm c2V0LCAqcHRyVHlwZSwgTExWTUdldE5hbWUoc2xpY2VQdHIsICJfZmluYWxfZ2VwIikpOwotKyAg ICByZXR1cm4gY3R4LT5HZXRFbGVtZW50UHRySW5zdChzbGljZVB0ciwgc2xpY2VPZmZzZXQsICpw dHJUeXBlLCBsbHZtOjpUd2luZShzbGljZVB0ci0+Z2V0TmFtZSgpKSArICJfZmluYWxfZ2VwIik7 Ci0gfQotIAotIC8qKiBVdGlsaXR5IHJvdXRpbmUgdGhhdCBsb2FkcyBmcm9tIGEgdW5pZm9ybSBw b2ludGVyIHRvIHNvYTw+IGRhdGEsCi0gICAgIHJldHVybmluZyBhIHJlZ3VsYXIgdW5pZm9ybSAo bm9uLVNPQSByZXN1bHQpLgotICAqLwotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ss IGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgY29uc3QgVHlwZSAqdW5pZlR5cGUgPSBwdHJUeXBlLT5HZXRC YXNlVHlwZSgpLT5HZXRBc1VuaWZvcm1UeXBlKCk7Ci0gCi0gICAgIGNvbnN0IENvbGxlY3Rpb25U eXBlICpjdCA9IENhc3RUeXBlPENvbGxlY3Rpb25UeXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgp KTsKLUBAIC0yMzYzLDcgKzIzNTAsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbAotIH0KLSAK LSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUg KnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGJv b2wgb25lX2VsZW0pIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGJvb2wgb25lX2VsZW0pIHsKLSAgICAgaWYgKHB0 ciA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3Vu dCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjM3MSw5ICsyMzU4LDYgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIs IGxsdm06OlZhbHVlICptYXNrLAotIAotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyUmVm VHlwZSAhPSBOVUxMICYmIG1hc2sgIT0gTlVMTCk7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwp Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUocHRyLCAiX2xvYWQiKTsKLS0KLSAgICAgY29u c3QgUG9pbnRlclR5cGUgKnB0clR5cGU7Ci0gICAgIGNvbnN0IFR5cGUgKmVsVHlwZTsKLSAgICAg aWYgKENhc3RUeXBlPFJlZmVyZW5jZVR5cGU+KHB0clJlZlR5cGUpICE9IE5VTEwpIHsKLUBAIC0y MzkzLDcgKzIzNzcsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZElu c3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIGlmIChwdHJU eXBlLT5Jc1VuaWZvcm1UeXBlKCkpIHsKLSAgICAgICAgIGlmIChwdHJUeXBlLT5Jc1NsaWNlKCkp IHsKLS0gICAgICAgICAgICByZXR1cm4gbG9hZFVuaWZvcm1Gcm9tU09BKHB0ciwgbWFzaywgcHRy VHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNPQShwdHIs IG1hc2ssIHB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X2xvYWQiKSA6IG5hbWUpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBGSVhN RTogc2FtZSBpc3N1ZSBhcyBhYm92ZSBsb2FkIGluc3QgcmVnYXJkaW5nIGFsaWdubWVudC4uLgot ICAgICAgICAgICAgIC8vCi1AQCAtMjQwNSwxMSArMjM5MCwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssCi0gICAgICAgICAgICAgY29uc3QgQXRvbWljVHlwZSAqYXRvbWljVHlwZSA9IENhc3RU eXBlPEF0b21pY1R5cGU+KHB0clR5cGUtPkdldEJhc2VUeXBlKCkpOwotIAotICNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fMTBfMAotLSAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0 ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBiYmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsg ICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLCBiYmxvY2spOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgICAgICAgICBsbHZtOjpQ b2ludGVyVHlwZSAqcHRyX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o cHRyLT5nZXRUeXBlKCkpOwotICAgICAgICAgICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLS0g ICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0cl90eXBlLT5nZXRQb2ludGVyRWxl bWVudFR5cGUoKSwgcHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7 Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlwZS0+Z2V0UG9pbnRl ckVsZW1lbnRUeXBlKCksIHB0ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSAr ICJfbG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh bHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZW5kaWYKLSAKLSAgICAgICAgICAg ICBpZiAoYXRvbWljVHlwZSAhPSBOVUxMICYmIGF0b21pY1R5cGUtPklzVmFyeWluZ1R5cGUoKSkg ewotQEAgLTI0MzMsNyArMjQyMiw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgfSBl bHNlIHsKLSAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcHRy IGFuZCBpdCdzIHRpbWUgZm9yIGEKLSAgICAgICAgIC8vIGdhdGhlci4KLS0gICAgICAgIGxsdm06 OlZhbHVlICpnYXRoZXJfcmVzdWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2so KSwgbmFtZSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihw dHIsIHB0clR5cGUsIEdldEZ1bGxNYXNrKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUpOwotICAgICAgICAgaWYgKCFvbmVfZWxl bSkKLSAgICAgICAgICAgICByZXR1cm4gZ2F0aGVyX3Jlc3VsdDsKLSAKLUBAIC0yNDUzLDE5ICsy NDQzLDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAgIC8vIFdlIGNhbiBhY3R1 YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0gICAg ICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgICAgICBsbHZt OjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUg KmludF9tYXNrID0gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAi X21vdm1zayIpKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZt bSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJfbW92bXNrIik7 Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxTeW1ib2wgKj4gbHo7Ci0gICAgICAgICBtLT5zeW1ib2xU YWJsZS0+TG9va3VwRnVuY3Rpb24oIl9fY291bnRfdHJhaWxpbmdfemVyb3NfaTY0IiwgJmx6KTsK LSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbHogPSBselswXS0+ZnVuY3Rpb247Ci0tICAgICAg ICBsbHZtOjpWYWx1ZSAqZWxlbV9pZHggPSBDYWxsSW5zdChmbHosIE5VTEwsIGludF9tYXNrLCBM TFZNR2V0TmFtZShtYXNrLCAiX2NseiIpKTsKLS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtID0g bGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUoZ2F0aGVyX3Jlc3VsdCwgZWxlbV9pZHgs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExMVk1HZXROYW1lKGdhdGhlcl9yZXN1bHQsICJfdW1hc2tlZF9lbGVtIiksIGJibG9j ayk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbV9pZHggPSBDYWxsSW5zdChmbHosIE5VTEws IGludF9tYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9jbHoiKTsKLSsgICAg ICAgIGxsdm06OlZhbHVlICplbGVtID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpDcmVhdGUo Ci0rICAgICAgICAgICAgZ2F0aGVyX3Jlc3VsdCwgZWxlbV9pZHgsIGxsdm06OlR3aW5lKGdhdGhl cl9yZXN1bHQtPmdldE5hbWUoKSkgKyAiX3VtYXNrZWRfZWxlbSIsIGJibG9jayk7Ci0gICAgICAg ICByZXR1cm4gZWxlbTsKLSAgICAgfQotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6Z2F0aGVyKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJU eXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIC8vIFdlIHNo b3VsZCBoYXZlIGEgdmFyeWluZyBwb2ludGVyIGlmIHdlIGdldCBoZXJlLi4uCi0gICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBwdHJUeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpOwotIAotQEAgLTI2MDIs NyArMjU5Miw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6YWRkR1NNZXRhZGF0YShsbHZt OjpWYWx1ZSAqdiwgU291cmNlUG9zIHBvcykgewotICAgICBpbnN0LT5zZXRNZXRhZGF0YSgibGFz dF9jb2x1bW4iLCBtZCk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQg YWxpZ24sIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYgKGxsdm1UeXBlID09IE5VTEwp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yNjE1LDEyICsyNjA2LDEyIEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBj b25zdCBjaGFyICpuCi0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmV0SW5zdCA9IGFsbG9j YUJsb2NrLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywg cmV0SW5zdCk7Ci0gICAgICAgICB1bnNpZ25lZCBBUyA9IGxsdm1GdW5jdGlvbi0+Z2V0UGFyZW50 KCktPmdldERhdGFMYXlvdXQoKS5nZXRBbGxvY2FBZGRyU3BhY2UoKTsKLS0gICAgICAgIGluc3Qg PSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUgPyBuYW1lIDogIiIsIHJl dEluc3QpOwotKyAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBB UywgbmFtZSwgcmV0SW5zdCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBVbmxlc3MgdGhl IGNhbGxlciBvdmVycm9kZSB0aGUgZGVmYXVsdCBhbmQgd2FudHMgaXQgaW4gdGhlCi0gICAgICAg ICAvLyBjdXJyZW50IGJhc2ljIGJsb2NrCi0gICAgICAgICB1bnNpZ25lZCBBUyA9IGxsdm1GdW5j dGlvbi0+Z2V0UGFyZW50KCktPmdldERhdGFMYXlvdXQoKS5nZXRBbGxvY2FBZGRyU3BhY2UoKTsK LS0gICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUg PyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUlu c3QobGx2bVR5cGUsIEFTLCBuYW1lLCBiYmxvY2spOwotICAgICB9Ci0gCi0gICAgIC8vIElmIG5v IGFsaWdubWVudCB3YXMgc3BlY2lmaWVkIGJ1dCB3ZSBoYXZlIGFuIGFycmF5IG9mIGEgdW5pZm9y bQotQEAgLTI2MzksNyArMjYzMCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAgIHJl dHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxs b2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgYWxpZ24s IGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUs IGludCBhbGlnbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIGF0RW50cnlCbG9jaykgewotICAgICBpZiAocHRyVHlwZSA9PSBOVUxMKSB7Ci0gICAg ICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAg cmV0dXJuIE5VTEw7Ci1AQCAtMzA3NSw2NiArMzA2Nyw1OSBAQCBsbHZtOjpJbnN0cnVjdGlvbiAq RnVuY3Rpb25FbWl0Q29udGV4dDo6QnJhbmNoSW5zdChsbHZtOjpCYXNpY0Jsb2NrICp0cnVlQmxv Y2ssCi0gICAgIHJldHVybiBiOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6RXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6RXh0cmFjdEluc3QobGx2 bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlm ICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50Zihi dWYsIHNpemVvZihidWYpLCAiX2V4dHJhY3RfJWQiLCBlbHQpOwotLSAgICAgICAgbmFtZSA9IExM Vk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmVpID0g TlVMTDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkp KQotLSAgICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSh2LCBMTFZN SW50MzIoZWx0KSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVs ZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgTExWTUludDMyKGVsdCksCi0rICAg ICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5h bWUoKSkgKyAiX2V4dHJhY3RfIikgKyBsbHZtOjpUd2luZShlbHQpKSA6IG5hbWUsIGJibG9jayk7 Ci0gICAgIGVsc2UKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdDo6Q3JlYXRl KHYsIGVsdCwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdFZhbHVl SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIGVsdCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2V4dHJhY3RfIikgKyBsbHZtOjpU d2luZShlbHQpKSA6IG5hbWUsCi0rICAgICAgICAgICAgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQ b3MoZWkpOwotICAgICByZXR1cm4gZWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFs LCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWws IGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwg fHwgZWx0VmFsID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnBy aW50ZihidWYsIHNpemVvZihidWYpLCAiX2luc2VydF8lZCIsIGVsdCk7Ci0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlv biAqaWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHYtPmdl dFR5cGUoKSkpCi0tICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUo diwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGlpID0g bGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHRWYWws IExMVk1JbnQzMihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpUd2luZShl bHQpKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIGVsc2UKLS0gICAgICAgIGlpID0gbGx2bTo6SW5z ZXJ0VmFsdWVJbnN0OjpDcmVhdGUodiwgZWx0VmFsLCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAg ICAgICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYs IGVsdFZhbCwgZWx0LAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChs bHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9pbnNlcnRfIikgKyBsbHZtOjpUd2luZShlbHQp KSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0dXJuIGlp OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2h1ZmZsZUluc3Qo bGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLCBjb25z dCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNodWZm bGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFz aywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYxID09IE5VTEwgfHwgdjIgPT0gTlVMTCB8 fCBtYXNrID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJv ckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAo bmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50 ZihidWYsIHNpemVvZihidWYpLCAiX3NodWZmbGUiKTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0 TmFtZSh2MSwgYnVmKTsKLS0gICAgfQotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaWkgPSBu ZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCBtYXNrLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaWkgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3Qo Ci0rICAgICAgICB2MSwgdjIsIG1hc2ssIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06 OlR3aW5lKHYxLT5nZXROYW1lKCkpICsgIl9zaHVmZmxlIikgOiBuYW1lLCBiYmxvY2spOwotIAot ICAgICBBZGREZWJ1Z1BvcyhpaSk7Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBs bHZtOjpUeXBlICp2ZWNUeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpU eXBlICp2ZWNUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBO VUxMIHx8IHZlY1R5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMxNDgsMTIg KzMxMzMsNiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFs dWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBBc3NlcnQodHkgJiYgdHkt PmdldFZlY3RvckVsZW1lbnRUeXBlKCkgPT0gdi0+Z2V0VHlwZSgpKTsKLSAjZW5kaWYKLSAKLS0g ICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAgICAg c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9icm9hZGNhc3QiKTsKLS0gICAgICAgIG5hbWUg PSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0tCi0gICAgIC8vIEdlbmVyYXRlIHRoZSBm b2xsb3dpbmcgc2VxdWVuY2U6Ci0gICAgIC8vICAgJW5hbWVfaW5pdC5pID0gaW5zZXJ0ZWxlbWVu dCA8NCB4IGkzMj4gdW5kZWYsIGkzMiAldmFsLCBpMzIgMAotICAgICAvLyAgICVuYW1lLmkgPSBz aHVmZmxldmVjdG9yIDw0IHggaTMyPiAlbmFtZV9pbml0LmksIDw0IHggaTMyPiB1bmRlZiwKLUBA IC0zMTYzLDcgKzMxNDIsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJv YWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICBsbHZtOjpW YWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHZlY1R5cGUpOwotIAotICAgICAv LyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3ID0gbGx2bTo6VHdpbmUobmFtZSkg KyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLSsgICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3Qi KSA6IG5hbWUgKyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLSAgICAgbGx2bTo6VmFsdWUgKmluc2Vy dCA9IEluc2VydEluc3QodW5kZWYxLCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSAKLSAgICAg Ly8gU2h1ZmZsZVZlY3RvcgotQEAgLTMxNzksMjggKzMxNTgsMjcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpU eXBlICp2ZWMKLSAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChsbHZtOjpF bGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXROdW1FbGVt ZW50cygpKSwgZmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgqZy0+ Y3R4KSkpOwotICNlbmRpZgotLSAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gU2h1ZmZsZUluc3QoaW5z ZXJ0LCB1bmRlZjIsIHplcm9WZWMsIG5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gU2h1 ZmZsZUluc3QoaW5zZXJ0LCB1bmRlZjIsIHplcm9WZWMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5n ZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUpOwotIAotICAgICByZXR1cm4gcmV0Owot IH0KLSAKLS1sbHZtOjpQSElOb2RlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQaGlOb2RlKGxsdm06 OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSkgewotLSAgICBsbHZtOjpQ SElOb2RlICpwbiA9IGxsdm06OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZSA/IG5h bWUgOiAicGhpIiwgYmJsb2NrKTsKLStsbHZtOjpQSElOb2RlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSsgICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVhdGUo dHlwZSwgY291bnQsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gInBoaSIgOiBuYW1lLCBiYmxv Y2spOwotICAgICBBZGREZWJ1Z1Bvcyhwbik7Ci0gICAgIHJldHVybiBwbjsKLSB9Ci0gCi0gbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNlbGVjdEluc3QobGx2bTo6VmFs dWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHRlc3QgPT0gTlVMTCB8fCB2 YWwwID09IE5VTEwgfHwgdmFsMSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh0 ZXN0LCAiX3NlbGVjdCIpOwotLQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06 OlNlbGVjdEluc3Q6OkNyZWF0ZSh0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLCBiYmxvY2spOwotKyAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OlNlbGVjdEluc3Q6OkNyZWF0ZSgKLSsg ICAgICAgIHRlc3QsIHZhbDAsIHZhbDEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06 OlR3aW5lKHRlc3QtPmdldE5hbWUoKSkgKyAiX3NlbGVjdCIpIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLUBAIC0zMjI2LDcg KzMyMDQsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGxDYWxsZWVBcmdDb3VudChsbHZtOjpWYWx1 ZSAqY2FsbGVlLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1 bmN0aW9uVHlwZSAqZnVuY1R5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICBpZiAoZnVuYyA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1A QCAtMzI1OCw5ICszMjM2LDkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNh bGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUKLSAjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBl ICpmdW5jX3B0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGZ1bmMt PmdldFR5cGUoKSk7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvblR5cGUgKmZ1bmNfdHlwZSA9IGxs dm06OmR5bl9jYXN0PGxsdm06OkZ1bmN0aW9uVHlwZT4oZnVuY19wdHJfdHlwZS0+Z2V0UG9pbnRl ckVsZW1lbnRUeXBlKCkpOwotLSAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2 bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1ZhbHMsIG5hbWUgPyBuYW1l IDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBsbHZt OjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlwZSwgZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2Nr KTsKLSAjZWxzZQotLSAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2Fs bEluc3Q6OkNyZWF0ZShmdW5jLCBhcmdWYWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwot KyAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0 ZShmdW5jLCBhcmdWYWxzLCBuYW1lLCBiYmxvY2spOwotICNlbmRpZgotIAotICAgICAgICAgLy8g V2UgY291bGQgYmUgZGVhbGluZyB3aXRoIGEgZnVuY3Rpb24gcG9pbnRlciBpbiB3aGljaCBjYXNl IHRoaXMgd2lsbCBub3QgYmUgYSAnbGx2bTo6RnVuY3Rpb24nLgotQEAgLTM0NjQsMTQgKzM0NDIs MTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZh bHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlv blR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3MucHVzaF9i YWNrKGFyZyk7Ci0gICAgIHJldHVybiBDYWxsSW5zdChmdW5jLCBmdW5jVHlwZSwgYXJncywgbmFt ZSk7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChs bHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFs dWUgKmFyZzAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OlZhbHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwotICAg ICBhcmdzLnB1c2hfYmFjayhhcmcwKTsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMSk7Ci1kaWZm IC0tZ2l0IGEvc3JjL2N0eC5oIGIvc3JjL2N0eC5oCi1pbmRleCA2ZTVhZDc0YmEuLjQ4YjNiYjgy NiAxMDA2NDQKLS0tLSBhL3NyYy9jdHguaAotKysrIGIvc3JjL2N0eC5oCi1AQCAtMzAyLDcgKzMw Miw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICBsbHZtOjpWYWx1ZSAqR2V0 U3RyaW5nUHRyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIpOwotIAotICAgICAvKiogQ3JlYXRlIGEg bmV3IGJhc2ljIGJsb2NrIHdpdGggZ2l2ZW4gbmFtZSAqLwotLSAgICBsbHZtOjpCYXNpY0Jsb2Nr ICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmlu c2VydEFmdGVyID0gTlVMTCk7Ci0rICAgIGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxv Y2soY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVy ID0gTlVMTCk7Ci0gCi0gICAgIC8qKiBHaXZlbiBhIHZlY3RvciB3aXRoIGVsZW1lbnQgdHlwZSBp MSwgcmV0dXJuIGEgdmVjdG9yIG9mIHR5cGUKLSAgICAgICAgIExMVk1UeXBlczo6Qm9vbFZlY3Rv clR5cGUuICBUaGlzIG1ldGhvZCBoYW5kbGVzIHRoZSBjb252ZXJzaW9uIGZvcgotQEAgLTM4MCwz MyArMzgwLDMzIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgdGhpcyBh bHNvIGhhbmRsZXMgYXBwbHlpbmcgdGhlIGdpdmVuIG9wZXJhdGlvbiB0byB0aGUgdmVjdG9yCi0g ICAgICAgICBlbGVtZW50cy4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkJpbmFyeU9wZXJhdG9yKGxs dm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpW YWx1ZSAqdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgdGhlICJub3QiIG9wZXJhdG9y LiAgTGlrZSBCaW5hcnlPcGVyYXRvcigpLCB0aGlzIGFsc28gaGFuZGxlcwotICAgICAgICAgYSBW ZWN0b3JUeXBlLWJhc2VkIG9wZXJhbmQuICovCi0tICAgIGxsdm06OlZhbHVlICpOb3RPcGVyYXRv cihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpW YWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l ID0gIiIpOwotIAotICAgICAvKiogRW1pdCBhIGNvbXBhcmlzb24gaW5zdHJ1Y3Rpb24uICBJZiB0 aGUgb3BlcmFuZHMgYXJlIFZlY3RvclR5cGVzLAotICAgICAgICAgdGhlbiBhIHZhbHVlIGZvciB0 aGUgY29ycmVzcG9uZGluZyBib29sZWFuIFZlY3RvclR5cGUgaXMKLSAgICAgICAgIHJldHVybmVk LiAqLwotICAgICBsbHZtOjpWYWx1ZSAqQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJP cHMgaW5zdCwgbGx2bTo6Q21wSW5zdDo6UHJlZGljYXRlIHByZWQsIGxsdm06OlZhbHVlICp2MCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBHaXZlbiBhIHNjYWxh ciB2YWx1ZSwgcmV0dXJuIGEgdmVjdG9yIG9mIHRoZSBzYW1lIHR5cGUgKG9yIGFuCi0gICAgICAg ICBhcnJheSwgZm9yIHBvaW50ZXIgdHlwZXMpLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU21lYXJV bmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAg ICBsbHZtOjpWYWx1ZSAqU21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBO VUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLS0gICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2 bTo6VmFsdWUgKkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJU b0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSsgICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZt OjpWYWx1ZSAqSW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06Okluc3RydWN0 aW9uICpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpUcnVuY0luc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkNhc3RJbnN0KGxsdm06Okluc3Ry dWN0aW9uOjpDYXN0T3BzIG9wLCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZt OjpJbnN0cnVjdGlvbiAqU0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpa RXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIg Km5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU0V4dEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAg IC8qKiBHaXZlbiB0d28gaW50ZWdlci10eXBlZCB2YWx1ZXMgKGJ1dCBwb3NzaWJseSBvbmUgdmVj dG9yIGFuZCB0aGUKLSAgICAgICAgIG90aGVyIG5vdCwgYW5kIG9yIG9mIHBvc3NpYmx5LWRpZmZl cmVudCBiaXQtd2lkdGhzKSwgdXBkYXRlIHRoZWlyCi1AQCAtNDI2LDkgKzQyNiw5IEBAIGNsYXNz IEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9pbnRlcnMuICBUaGUgdW5kZXJseWlu ZyB0eXBlIG9mIHRoZSBiYXNlIHBvaW50ZXIgbXVzdCBiZSBwcm92aWRlZAotICAgICAgICAgdmlh IHRoZSBwdHJUeXBlIHBhcmFtZXRlciAqLwotICAgICBsbHZtOjpWYWx1ZSAqR2V0RWxlbWVudFB0 ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleCwgY29uc3QgVHlw ZSAqcHRyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpWYWx1ZSAqR2V0RWxlbWVu dFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAsIGxsdm06 OlZhbHVlICppbmRleDEsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAK LSAgICAgLyoqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgcG9pbnRlciB0aGF0IHJlcHJlc2Vu dHMgb2Zmc2V0dGluZyB0aGUKLSAgICAgICAgIGdpdmVuIGJhc2UgcG9pbnRlciB0byBwb2ludCBh dCB0aGUgZ2l2ZW4gZWxlbWVudCBudW1iZXIgb2YgdGhlCi1AQCAtNDM2LDI2ICs0MzYsMjYgQEAg Y2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBwb2ludGVyIG11c3QgYmUgYSBw b2ludGVyIHRvIGEgc3RydWN0dXJlIHR5cGUuICBUaGUgcHRyVHlwZSBnaXZlcwotICAgICAgICAg dGhlIHR5cGUgb2YgdGhlIHBvaW50ZXIsIHRob3VnaCBpdCBtYXkgYmUgTlVMTCBpZiB0aGUgYmFz ZSBwb2ludGVyCi0gICAgICAgICBpcyB1bmlmb3JtLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWRk RWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0 IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5cGUgPSBO VUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJh c2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBjb25z dCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5cGUgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEJvb2wg aXMgc3RvcmVkIGFzIGk4IGFuZCA8V0lEVEggeCBpOD4gYnV0IHJlcHJlc2VudGVkIGluIElSIGFz IGkxIGFuZAotICAgICAgKiA8V0lEVEggeCBNQVNLPi4gVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlv biB0byBtYXRjaCBib29sIHNpemUgYXQgc3RvcmFnZQotICAgICAgKiBpbnRlcmZhY2UuICovCi0t ICAgIGxsdm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1 ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICAvKiogTG9hZCBmcm9tIHRoZSBt ZW1vcnkgbG9jYXRpb24ocykgZ2l2ZW4gYnkgbHZhbHVlLCB1c2luZyB0aGUgZ2l2ZW4KLSAgICAg ICAgIG1hc2suICBUaGUgbHZhbHVlIG1heSBiZSB2YXJ5aW5nLCBpbiB3aGljaCBjYXNlIHRoaXMg Y29ycmVzcG9uZHMgdG8KLSAgICAgICAgIGEgZ2F0aGVyIGZyb20gdGhlIG11bHRpcGxlIG1lbW9y eSBsb2NhdGlvbnMgZ2l2ZW4gYnkgdGhlIGFycmF5IG9mCi0gICAgICAgICBwb2ludGVyIHZhbHVl cyBnaXZlbiBieSB0aGUgbHZhbHVlLiAgSWYgdGhlIGx2YWx1ZSBpcyBub3QgdmFyeWluZywKLSAg ICAgICAgIHRoZW4gYm90aCB0aGUgbWFzayBwb2ludGVyIGFuZCB0aGUgdHlwZSBwb2ludGVyIG1h eSBiZSBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0 ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMLAotKyAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwg bGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9uZV9lbGVtID0g ZmFsc2UpOwotIAotICAgICAvKiBMb2FkIGZyb20gbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuLgot ICAgICAgKiAndHlwZScgbmVlZHMgdG8gYmUgcHJvdmlkZWQgd2hlbiBzdG9yYWdlIHR5cGUgaXMg ZGlmZmVyZW50IGZyb20gSVIgdHlwZS4gRm9yIGV4YW1wbGUsCi0gICAgICAqICd1bmZvcm0gYm9v bCcgaXMgJ2kxJyBpbiBJUiBidXQgc3RvcmVkIGFzICdpOCcuCi0gICAgICAqIE90aGVyd2lzZSBs ZWF2ZSB0aGlzIGFzIE5VTEwuICovCi0tICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgY2hhciAqbmFtZSA9IE5V TEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3Qg VHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAg ICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3RydWN0aW9uIHRvIGFsbG9jYXRlIHN0YWNrIHN0b3Jh Z2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAgdHlwZS4gIElmIGEgbm9uLXplcm8gYWxpZ25tZW50 IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBpcyBhbHNvCi1AQCAtNDYzLDcgKzQ2Myw4IEBAIGNs YXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgaW5zdHJ1Y3Rpb24gaXMgYWRkZWQg YXQgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBpbiB0aGUgZW50cnkKLSAgICAgICAgIGJhc2lj IGJsb2NrOyBpZiBpdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGN1cnJlbnQgYmFzaWMgYmxvY2ss IHRoZW4KLSAgICAgICAgIHRoZSBhdEVudHJ5QmxvY2sgcGFyYW1ldGVyIHNob3VsZCBiZSBmYWxz ZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUs IGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0RW50cnlCbG9j ayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZt VHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwgaW50IGFsaWduID0gMCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSAKLSAg ICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxvY2F0ZSBzdGFjayBzdG9y YWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5vbi16ZXJvIGFsaWdubWVu dCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ3NCw3ICs0NzUsNyBAQCBj bGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIFRoaXMgaW1wbGVtZW50YXRpb24g aXMgcHJlZmVycmVkIHdoZW4gcG9zc2libGUuIEl0IGlzIG5lZWRlZCB3aGVuCi0gICAgICAgICBz dG9yYWdlIHR5cGUgaXMgZGlmZmVyZW50IGZyb20gSVIgdHlwZS4gRm9yIGV4YW1wbGUsCi0gICAg ICAgICAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLiAqLwot LSAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBj aGFyICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVl KTsKLSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwgaW50IGFsaWduID0gMCwgYm9vbCBhdEVudHJ5Qmxv Y2sgPSB0cnVlKTsKLSAKLSAgICAgLyoqIFN0YW5kYXJkIHN0b3JlIGluc3RydWN0aW9uOyBmb3Ig dGhpcyB2YXJpYW50LCB0aGUgbHZhbHVlIG11c3QgYmUgYQotICAgICAgICAgc2luZ2xlIHBvaW50 ZXIsIG5vdCBhIHZhcnlpbmcgbHZhbHVlLgotQEAgLTUwMiwzOSArNTAzLDQxIEBAIGNsYXNzIEZ1 bmN0aW9uRW1pdENvbnRleHQgewotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBtZXRob2QgbWFw cyB0byBhbiBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3QgaWYgdGhlCi0gICAgICAgICBnaXZlbiB2 YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0byBhbiBsbHZtOjpFeHRyYWN0VmFsdWVJ bnN0Ci0gICAgICAgICBvdGhlcndpc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5z dChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAg ICBsbHZtOjpWYWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5pZW5jZSBt ZXRob2QgbWFwcyB0byBhbiBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdCBpZiB0aGUKLSAgICAgICAg IGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFuIGxsdm06Okluc2Vy dFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqSW5z ZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29u c3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqSW5zZXJ0SW5zdChsbHZt OjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBz IHRvIGFuIGxsdm06OlNodWZmbGVWZWN0b3JJbnN0LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU2h1 ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICpt YXNrLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTaHVmZmxl SW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ss IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5p ZW5jZSBtZXRob2QgdG8gZ2VuZXJhdGUgYnJvYWRjYXN0IHBhdHRlcm4uIEl0IHRha2VzIGEgdmFs dWUKLSAgICAgICAgIGFuZCBhIHZlY3RvciB0eXBlLiBUeXBlIG9mIHRoZSB2YWx1ZSBtdXN0IG1h dGNoIGVsZW1lbnQgdHlwZSBvZiB0aGUKLSAgICAgICAgIHZlY3Rvci4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBl LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RW YWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlw ZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06 Okluc3RydWN0aW9uICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAq dmFsMCwgbGx2bTo6VmFsdWUgKnZhbDEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg bGx2bTo6UEhJTm9kZSAqUGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0 SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2 YWwxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIElSIHRvIGRvIGEgZnVuY3Rpb24gY2Fs bCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuICBJZiB0aGUKLSAgICAgICAgIGZ1bmN0aW9uIHR5 cGUgaXMgYSB2YXJ5aW5nIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSwgaXRzIGZ1bGwgdHlwZQotICAg ICAgICAgbXVzdCBiZSBwcm92aWRlZCBpbiBmdW5jVHlwZS4gIGZ1bmNUeXBlIGNhbiBiZSBOVUxM IGlmIGZ1bmMgaXMgYQotICAgICAgICAgdW5pZm9ybSBmdW5jdGlvbiBwb2ludGVyLiAqLwotICAg ICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9u VHlwZSAqZnVuY1R5cGUsIGNvbnN0IHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+ICZhcmdzLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2Fs bCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIGp1c3QgYSBz aW5nbGUgYXJndW1lbnQuICovCi0tICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1 ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2 bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVl ICphcmcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBp c3N1ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9uIHRoYXQgdGFr ZXMgdHdvIGFyZ3VtZW50cy4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZh bHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJn MCwgbGx2bTo6VmFsdWUgKmFyZzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIExhdW5jaCBhbiBhc3luY2hyb25vdXMg dGFzayB0byBydW4gdGhlIGdpdmVuIGZ1bmN0aW9uLCBwYXNzaW5nIGl0Ci0gICAgICAgICBoZSBn aXZlbiBhcmd1bWVudCB2YWx1ZXMuICovCi1AQCAtNzU2LDkgKzc1OSwxMCBAQCBjbGFzcyBGdW5j dGlvbkVtaXRDb250ZXh0IHsKLSAgICAgdm9pZCBtYXNrZWRTdG9yZShsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICpt YXNrKTsKLSAgICAgdm9pZCBzdG9yZVVuaWZvcm1Ub1NPQShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICp2YWx1ZVR5cGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUp OwotLSAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIs IGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hh ciAqbmFtZSk7Ci0rICAgIGxsdm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFs dWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06OlZhbHVlICpwdHIs IGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hh ciAqbmFtZSk7Ci0rICAgIGxsdm06OlZhbHVlICpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29u c3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZFZhcnlpbmdPZmZzZXRz SWZOZWVkZWQobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqcHRyVHlwZSk7Ci0gfTsKLWRp ZmYgLS1naXQgYS9zcmMvZXhwci5jcHAgYi9zcmMvZXhwci5jcHAKLWluZGV4IDgwY2MzMDIwYS4u NmQzOGQxODg5IDEwMDY0NAotLS0tIGEvc3JjL2V4cHIuY3BwCi0rKysgYi9zcmMvZXhwci5jcHAK LUBAIC0xMDIxLDExICsxMDIxLDExIEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXROZWdhdGUo RXhwciAqYXJnLCBTb3VyY2VQb3MgcG9zLCBGdW5jdGlvbkVtaXRDb250ZXh0ICpjCi0gICAgIGN0 eC0+U2V0RGVidWdQb3MocG9zKTsKLSAgICAgaWYgKHR5cGUtPklzRmxvYXRUeXBlKCkpIHsKLSAg ICAgICAgIGxsdm06OlZhbHVlICp6ZXJvID0gbGx2bTo6Q29uc3RhbnRGUDo6Z2V0WmVyb1ZhbHVl Rm9yTmVnYXRpb24odHlwZS0+TExWTVR5cGUoZy0+Y3R4KSk7Ci0tICAgICAgICByZXR1cm4gY3R4 LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6RlN1YiwgemVybywgYXJnVmFsLCBM TFZNR2V0TmFtZShhcmdWYWwsICJfbmVnYXRlIikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+Qmlu YXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6 VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9uZWdhdGUiKTsKLSAgICAgfSBlbHNlIHsKLSAg ICAgICAgIGxsdm06OlZhbHVlICp6ZXJvID0gbExMVk1Db25zdGFudFZhbHVlKHR5cGUsIGctPmN0 eCwgMC4pOwotICAgICAgICAgQXNzZXJ0UG9zKHBvcywgdHlwZS0+SXNJbnRUeXBlKCkpOwotLSAg ICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OlN1Yiwg emVybywgYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfbmVnYXRlIikpOwotKyAgICAgICAg cmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OlN1YiwgemVybywg YXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIpOwotICAg ICB9Ci0gfQotIAotQEAgLTEwNDcsMTEgKzEwNDcsMTEgQEAgbGx2bTo6VmFsdWUgKlVuYXJ5RXhw cjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICBy ZXR1cm4gbEVtaXROZWdhdGUoZXhwciwgcG9zLCBjdHgpOwotICAgICBjYXNlIExvZ2ljYWxOb3Q6 IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICphcmdWYWwgPSBleHByLT5HZXRWYWx1ZShjdHgpOwot LSAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBMTFZNR2V0TmFtZShhcmdW YWwsICJfbG9naWNhbG5vdCIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFy Z1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9sb2dpY2Fsbm90Iik7Ci0g ICAgIH0KLSAgICAgY2FzZSBCaXROb3Q6IHsKLSAgICAgICAgIGxsdm06OlZhbHVlICphcmdWYWwg PSBleHByLT5HZXRWYWx1ZShjdHgpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3Io YXJnVmFsLCBMTFZNR2V0TmFtZShhcmdWYWwsICJfYml0bm90IikpOwotKyAgICAgICAgcmV0dXJu IGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkg KyAiX2JpdG5vdCIpOwotICAgICB9Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBGQVRBTCgibG9n aWMgZXJyb3IiKTsKLUBAIC0xNTE4LDcgKzE1MTgsOCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxF bWl0QmluYXJ5QXJpdGgoQmluYXJ5RXhwcjo6T3Agb3AsIGxsdm06OlZhbHVlICp2YWx1ZTAsIGxs dgotICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0 dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsIExMVk1HZXROYW1l KG9wTmFtZSwgdmFsdWUwLCB2YWx1ZTEpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9w ZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFsdWUxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyB2YWx1ZTAtPmdldE5hbWUo KSkgKyAiXyIpICsgdmFsdWUxLT5nZXROYW1lKCkpOwotICAgICB9Ci0gfQotIAotQEAgLTE1NjMs NyArMTU2NCw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlDbXAoQmluYXJ5RXhw cjo6T3Agb3AsIGxsdm06OlZhbHVlICplMFZhbCwgbGx2bTo6Ci0gICAgIH0KLSAKLSAgICAgbGx2 bTo6VmFsdWUgKmNtcCA9IGN0eC0+Q21wSW5zdChpc0Zsb2F0T3AgPyBsbHZtOjpJbnN0cnVjdGlv bjo6RkNtcCA6IGxsdm06Okluc3RydWN0aW9uOjpJQ21wLCBwcmVkLCBlMFZhbCwgZTFWYWwsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUob3BOYW1lLCBl MFZhbCwgZTFWYWwpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChs bHZtOjpUd2luZShvcE5hbWUpICsgIl8iKSArIGUwVmFsLT5nZXROYW1lKCkpICsgIl8iKSArIGUx VmFsLT5nZXROYW1lKCkpOwotICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHVnbHk6IENtcEluc3Qg cmV0dXJucyBpMSB2YWx1ZXMsIGJ1dCB3ZSB1c2UgdmVjdG9ycwotICAgICAvLyBvZiBpMzJzIGZv ciB2YXJ5aW5nIGJvb2wgdmFsdWVzOyB0eXBlIGNvbnZlcnQgdGhlIHJlc3VsdCBoZXJlIGlmCi0g ICAgIC8vIG5lZWRlZC4KLUBAIC00MTc3LDcgKzQxNzgsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUg KmxDb252ZXJ0VG9TbGljZVBvaW50ZXIoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpW YWx1ZQotICAgICAvLyBvZmZzZXRzCi0gICAgIGxsdm06OlZhbHVlICpyZXN1bHQgPSBsbHZtOjpD b25zdGFudDo6Z2V0TnVsbFZhbHVlKHNsaWNlU3RydWN0VHlwZSk7Ci0gICAgIC8vIEFuZCByZXBs YWNlIHRoZSBwb2ludGVyIGluIHRoZSBzdHJ1Y3Qgd2l0aCB0aGUgZ2l2ZW4gcG9pbnRlcgotLSAg ICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0KHJlc3VsdCwgcHRyLCAwLCBMTFZNR2V0TmFtZShwdHIs ICJfc2xpY2UiKSk7Ci0rICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBwdHIsIDAs IGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfc2xpY2UiKTsKLSB9Ci0gCi0gLyoqIElm IHRoZSBnaXZlbiBhcnJheSBpbmRleCBpcyBhIGNvbXBpbGUgdGltZSBjb25zdGFudCwgY2hlY2sg dG8gc2VlIGlmIGl0Ci1AQCAtNDI1OCw4ICs0MjU5LDggQEAgbGx2bTo6VmFsdWUgKkluZGV4RXhw cjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAg Ly8gQ29udmVydCB0byBhIHNsaWNlIHBvaW50ZXIgaWYgd2UncmUgaW5kZXhpbmcgaW50byBTT0Eg ZGF0YQotICAgICAgICAgYmFzZVB0clZhbHVlID0gbENvbnZlcnRQdHJUb1NsaWNlSWZOZWVkZWQo Y3R4LCBiYXNlUHRyVmFsdWUsICZiYXNlRXhwclR5cGUpOwotIAotLSAgICAgICAgbGx2bTo6VmFs dWUgKnB0ciA9Ci0tICAgICAgICAgICAgY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFs dWUsIGluZGV4VmFsdWUsIGJhc2VFeHByVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0clZhbHVlLCAi X29mZnNldCIpKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQ dHJJbnN0KGJhc2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoYmFz ZVB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9vZmZzZXQiKTsKLSAgICAgICAgIHJldHVybiBsQWRk VmFyeWluZ09mZnNldHNJZk5lZWRlZChjdHgsIHB0ciwgR2V0TFZhbHVlVHlwZSgpKTsKLSAgICAg fQotIAotQEAgLTQyOTAsOCArNDI5MSw4IEBAIGxsdm06OlZhbHVlICpJbmRleEV4cHI6OkdldExW YWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgY3R4LT5TZXREZWJ1 Z1Bvcyhwb3MpOwotIAotICAgICAvLyBBbmQgZG8gdGhlIGFjdHVhbCBpbmRleGluZyBjYWxjdWxh dGlvbi4uCi0tICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgY3R4LT5HZXRFbGVtZW50 UHRySW5zdChiYXNlUHRyLCBMTFZNSW50MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJUeXBlLCBM TFZNR2V0TmFtZShiYXNlUHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUgKnB0ciA9 IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVl LCBiYXNlUHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAg IHJldHVybiBsQWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChjdHgsIHB0ciwgR2V0TFZhbHVlVHlw ZSgpKTsKLSB9Ci0gCi1AQCAtNDc4OCwxNSArNDc4OSwxNCBAQCBsbHZtOjpWYWx1ZSAqVmVjdG9y TWVtYmVyRXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0g ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlkZW50aWZpZXIuc2l6ZSgpOyArK2kpIHsK LSAgICAgICAgICAgICBjaGFyIGlkU3RyWzJdID0ge2lkZW50aWZpZXJbaV0sICdcMCd9OwotICAg ICAgICAgICAgIGxsdm06OlZhbHVlICplbGVtZW50UHRyID0KLS0gICAgICAgICAgICAgICAgY3R4 LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBlLCBMTFZN R2V0TmFtZShiYXNlUHRyLCBpZFN0cikpOwotKyAgICAgICAgICAgICAgICBjdHgtPkFkZEVsZW1l bnRPZmZzZXQoYmFzZVB0ciwgaW5kaWNlc1tpXSwgYmFzZVB0clR5cGUsIGxsdm06OlR3aW5lKGJh c2VQdHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVs ZW1lbnRWYWx1ZSA9IGN0eC0+TG9hZEluc3QoZWxlbWVudFB0ciwgZWxlbWVudE1hc2ssIGVsZW1l bnRQdHJUeXBlKTsKLSAKLS0gICAgICAgICAgICBjb25zdCBjaGFyICpyZXN1bHROYW1lID0gTExW TUdldE5hbWUocmVzdWx0UHRyLCBpZFN0cik7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0 bXAgPSBjdHgtPkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCByZXN1bHROYW1l KTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNl dChyZXN1bHRQdHIsIGksIE5VTEwsIGxsdm06OlR3aW5lKHJlc3VsdFB0ci0+Z2V0TmFtZSgpKSAr IGlkU3RyKTsKLSAgICAgICAgICAgICBjdHgtPlN0b3JlSW5zdChlbGVtZW50VmFsdWUsIHB0bXAs IGVsZW1lbnRQdHJUeXBlLCBleHByLT5HZXRUeXBlKCktPklzVW5pZm9ybVR5cGUoKSk7Ci0gICAg ICAgICB9Ci0gCi0tICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJl clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfc3dpenpsZSIpKTsKLSsgICAgICAgIHJldHVy biBjdHgtPkxvYWRJbnN0KHJlc3VsdFB0ciwgbWVtYmVyVHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0 ci0+Z2V0TmFtZSgpKSArICJfc3dpenpsZSIpOwotICAgICB9Ci0gfQotIAotQEAgLTQ5MzIsNyAr NDkzMiw3IEBAIGxsdm06OlZhbHVlICpNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRD b250ZXh0ICpjdHgpIGNvbnN0IHsKLSAKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAg ICBzdGQ6OnN0cmluZyBzdWZmaXggPSBzdGQ6OnN0cmluZygiXyIpICsgaWRlbnRpZmllcjsKLS0g ICAgcmV0dXJuIGN0eC0+TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBMTFZNR2V0 TmFtZShsdmFsdWUsIHN1ZmZpeC5jX3N0cigpKSk7Ci0rICAgIHJldHVybiBjdHgtPkxvYWRJbnN0 KGx2YWx1ZSwgbWFzaywgbHZhbHVlVHlwZSwgbGx2bTo6VHdpbmUobHZhbHVlLT5nZXROYW1lKCkp ICsgc3VmZml4KTsKLSB9Ci0gCi0gY29uc3QgVHlwZSAqTWVtYmVyRXhwcjo6R2V0VHlwZSgpIGNv bnN0IHsgcmV0dXJuIE5VTEw7IH0KLUBAIC02NTAyLDcgKzY1MDIsNyBAQCBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxUeXBlQ29udkF0b21pYyhGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZh bHVlICpleHByVgotICAgICAgICAgICAgICAgICAvLyBkb2VzIGZvciBldmVyeW9uZSBlbHNlLi4u Ci0gICAgICAgICAgICAgICAgIEFzc2VydChjYXN0KTsKLSAgICAgICAgICAgICAgICAgY2FzdCA9 IGN0eC0+U3dpdGNoQm9vbFNpemUoY2FzdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZS0+Z2V0 RWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTExWTUdldE5hbWUoY2FzdCwgInRvX2lfYm9vbCIpKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FzdC0+Z2V0TmFtZSgpKSArICJ0 b19pX2Jvb2wiKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICAgIC8vIGZyb21UeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpCi1AQCAtODI0Niw3ICs4MjQ2LDcgQEAg bGx2bTo6VmFsdWUgKk5ld0V4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkg Y29uc3QgewotICAgICAgICAgLy8gcG9pbnRlciBvZiB0aGUgcmV0dXJuIHR5cGUgYW5kIHRvIHJ1 biB0aGUgY29kZSBmb3IgaW5pdGlhbGl6ZXJzLAotICAgICAgICAgLy8gaWYgcHJlc2VudC4KLSAg ICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSByZXRUeXBlLT5MTFZNVHlwZShnLT5jdHgpOwot LSAgICAgICAgcHRyVmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJUeXBlLCBM TFZNR2V0TmFtZShwdHJWYWx1ZSwgIl9jYXN0X3B0ciIpKTsKLSsgICAgICAgIHB0clZhbHVlID0g Y3R4LT5CaXRDYXN0SW5zdChwdHJWYWx1ZSwgcHRyVHlwZSwgbGx2bTo6VHdpbmUocHRyVmFsdWUt PmdldE5hbWUoKSkgKyAiX2Nhc3RfcHRyIik7Ci0gCi0gICAgICAgICBpZiAoaW5pdEV4cHIgIT0g TlVMTCkKLSAgICAgICAgICAgICBJbml0U3ltYm9sKHB0clZhbHVlLCBhbGxvY1R5cGUsIGluaXRF eHByLCBjdHgsIHBvcyk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xsdm11dGlsLmNwcCBiL3NyYy9sbHZt dXRpbC5jcHAKLWluZGV4IDk3MDE3NWRiZi4uZDBiZWNiOWY1IDEwMDY0NAotLS0tIGEvc3JjL2xs dm11dGlsLmNwcAotKysrIGIvc3JjL2xsdm11dGlsLmNwcAotQEAgLTE2MDUsMjMgKzE2MDUsNiBA QCBsbHZtOjpWYWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6 VmFsdWUgKnYyLCBpbnQzMl90IHNodWZbXQotICAgICByZXR1cm4gbmV3IGxsdm06OlNodWZmbGVW ZWN0b3JJbnN0KHYxLCB2MiwgdmVjLCAic2h1ZmZsZSIsIGluc2VydEJlZm9yZSk7Ci0gfQotIAot LWNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpzKSB7 Ci0tICAgIGlmICh2ID09IE5VTEwpCi0tICAgICAgICByZXR1cm4gczsKLS0gICAgc3RkOjpzdHJp bmcgcmV0ID0gc3RkOjpzdHJpbmcodi0+Z2V0TmFtZSgpKTsKLS0gICAgcmV0ICs9IHM7Ci0tICAg IHJldHVybiBzdHJkdXAocmV0LmNfc3RyKCkpOwotLX0KLS0KLS1jb25zdCBjaGFyICpMTFZNR2V0 TmFtZShjb25zdCBjaGFyICpvcCwgbGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsK LS0gICAgc3RkOjpzdHJpbmcgciA9IG9wOwotLSAgICByICs9ICJfIjsKLS0gICAgciArPSB2MS0+ Z2V0TmFtZSgpLnN0cigpOwotLSAgICByICs9ICJfIjsKLS0gICAgciArPSB2Mi0+Z2V0TmFtZSgp LnN0cigpOwotLSAgICByZXR1cm4gc3RyZHVwKHIuY19zdHIoKSk7Ci0tfQotLQotICNpZmRlZiBJ U1BDX0dFTlhfRU5BQkxFRAotIGJvb2wgbElzU1ZNTG9hZChsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCkgewotICAgICBBc3NlcnQoaW5zdCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xsdm11dGlsLmggYi9z cmMvbGx2bXV0aWwuaAotaW5kZXggNDJjY2U0ZDgzLi4wN2QwODliYjQgMTAwNjQ0Ci0tLS0gYS9z cmMvbGx2bXV0aWwuaAotKysrIGIvc3JjL2xsdm11dGlsLmgKLUBAIC0zMjgsMTEgKzMyOCw2IEBA IGV4dGVybiBsbHZtOjpWYWx1ZSAqTExWTUNvbmNhdFZlY3RvcnMobGx2bTo6VmFsdWUgKnYxLCBs bHZtOjpWYWx1ZSAqdjIsIGxsdm06OkluCi0gZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZs ZVZlY3RvcnMobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1Zltd LCBpbnQgc2h1ZlNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSk7Ci0gCi0tLyoqIFV0aWxpdHkgcm91dGlu ZXMgdG8gY29uY2F0IHN0cmluZ3Mgd2l0aCB0aGUgbmFtZXMgb2YgZXhpc3RpbmcgdmFsdWVzIHRv Ci0tICAgIGNyZWF0ZSBtZWFuaW5nZnVsIG5ldyBuYW1lcyBmb3IgaW5zdHJ1Y3Rpb24gdmFsdWVz LgotLSovCi0tZXh0ZXJuIGNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGxsdm06OlZhbHVlICp2LCBj b25zdCBjaGFyICopOwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShjb25zdCBjaGFy ICpvcCwgbGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpOwotICNpZmRlZiBJU1BDX0dF TlhfRU5BQkxFRAotIGVudW0gQWRkcmVzc1NwYWNlIHsgTG9jYWwsIEdsb2JhbCwgRXh0ZXJuYWwg fTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCA1YjFh YzdiNjMuLjlkNmNhZTA1OCAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0 LmNwcAotQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgYm9vbCBsR2V0U291cmNlUG9zRnJvbU1l dGFkYXRhKGNvbnN0IGxsdm06Okluc3RydWN0aW9uICppbnN0LCBTb3VyY2VQb3MgKgotICAgICBy ZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3Qo bGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJn MSwgY29uc3QgY2hhciAqbmFtZSwKLStzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5z dChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICph cmcxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAg ICBsbHZtOjpWYWx1ZSAqYXJnc1syXSA9IHthcmcwLCBhcmcxfTsKLSAgICAgbGx2bTo6QXJyYXlS ZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzJdKTsKLUBAIC0y NjUsMjEgKzI2NSwyMiBAQCBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZt OjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdgotIH0KLSAKLSBzdGF0aWMg bGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6 VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpJbnN0cnVjdGlv biAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1szXSA9IHth cmcwLCBhcmcxLCBhcmcyfTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3 QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzNdKTsKLSAgICAgcmV0dXJuIGxsdm06OkNhbGxJbnN0 OjpDcmVhdGUoZnVuYywgbmV3QXJnQXJyYXksIG5hbWUsIGluc2VydEJlZm9yZSk7Ci0gfQotIAot IHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5j LCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcy LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmcz LCBjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVM TCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICph cmczLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAg ICBsbHZtOjpWYWx1ZSAqYXJnc1s0XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczfTsKLSAgICAg bGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdz WzRdKTsKLSAgICAgcmV0dXJuIGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgbmV3QXJnQXJy YXksIG5hbWUsIGluc2VydEJlZm9yZSk7Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlv biAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2 bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgY29u c3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9u ICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzVdID0ge2Fy ZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzR9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpW YWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbNV0pOwotQEAgLTI4Nyw3ICsyODgs NyBAQCBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAq ZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAs IGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFsdWUgKmFyZzQs IGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwg bGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUg PSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzZdID0ge2FyZzAsIGFyZzEsIGFyZzIs IGFyZzMsIGFyZzQsIGFyZzV9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBu ZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbNl0pOwotQEAgLTk5MSwyMyArOTkyLDI0IEBAIGJv b2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnJldHVyblR5cGUgPSBjYWxsSW5zdC0+Z2V0 VHlwZSgpOwotICAgICAgICAgICAgICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5 cGU+KHJldHVyblR5cGUpKTsKLSAgICAgICAgICAgICAgICAgLy8gY2FzdCB0aGUgaTggKiB0byB0 aGUgYXBwcm9wcmlhdGUgdHlwZQotLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0g TExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfY2FzdCIpOwotLSAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChj YWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChy ZXR1cm5UeXBlLCAwKSwgbmFtZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqY2FzdFB0ciA9Ci0rICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdElu c3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0 dXJuVHlwZSwgMCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2Nh c3QiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEoY2FzdFB0ciwg Y2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBpbnQgYWxpZ247Ci0gICAgICAgICAgICAgICAg IGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5KQotICAgICAgICAgICAgICAgICAgICAgYWxp Z24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAgICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxs ZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSAgICAgICAgICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfbG9hZCIp OwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotLSAgICAgICAgICAg ICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QoY2Fz dFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5 YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAg ICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPQotKyAgICAgICAgICAgICAgICAgICAg bmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdP cGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxp Z24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotICAgICAgICAg ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3Qo Ci0tICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o Y2FzdFB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNhc3RQdHIsIG5h bWUsCi0tICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06 Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVM TCk7Ci0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlw ZT4oY2FzdFB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGNhc3RQdHIs Ci0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFu ZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsg ICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSwg KGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxD b3B5TWV0YWRhdGEobG9hZEluc3QsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6 UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbG9hZEluc3QpOwotQEAgLTEwMjgsOSArMTAz MCw5IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIC8vIGFsbCBsYW5lcyBzdG9yaW5nLCBzbyByZXBs YWNlIHdpdGggYSByZWd1bGFyIHN0b3JlCi0gICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpy dmFsdWUgPSBjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgyKTsKLSAgICAgICAgICAgICAgICAgbGx2 bTo6VHlwZSAqc3RvcmVUeXBlID0gcnZhbHVlLT5nZXRUeXBlKCk7Ci0tICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgw KSwgIl9wdHJjYXN0Iik7Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0g bmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpQb2ludGVyVHlwZTo6Z2V0KHN0b3JlVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsKLSsg ICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAgICAg ICAgbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZt OjpQb2ludGVyVHlwZTo6Z2V0KHN0b3JlVHlwZSwgMCksCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQo MCktPmdldE5hbWUoKSkgKyAiX3B0cmNhc3QiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAg IGxDb3B5TWV0YWRhdGEoY2FzdFB0ciwgY2FsbEluc3QpOwotIAotICAgICAgICAgICAgICAgICBp bnQgYWxpZ247Ci1AQCAtMTMzOSw4ICsxMzQxLDggQEAgc3RhdGljIGxsdm06OlZhbHVlICpsR2V0 QmFzZVBvaW50ZXIobGx2bTo6VmFsdWUgKnYsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWYK LSAgICAgICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxsdm06OkNhc3RJbnN0OjpDcmVh dGUoY2ktPmdldE9wY29kZSgpLCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCksIExM Vk1HZXROYW1lKHQsICJfY2FzdCIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIGxsdm06OkNhc3RJ bnN0OjpDcmVhdGUoY2ktPmdldE9wY29kZSgpLCB0LCBjaS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJU eXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 VHdpbmUodC0+Z2V0TmFtZSgpKSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9 Ci0gICAgIH0KLSAKLUBAIC0xNTgzLDEzICsxNTg1LDEzIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0 Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNl dCwKLSAgICAgICAgIGlmIChjbyA9PSBOVUxMKQotICAgICAgICAgICAgICpjb25zdE9mZnNldCA9 IE5VTEw7Ci0gICAgICAgICBlbHNlCi0tICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0KLS0gICAg ICAgICAgICAgICAgbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28s IGNhc3QtPmdldFR5cGUoKSwgTExWTUdldE5hbWUoY28sICJfY2FzdCIpLCBpbnNlcnRCZWZvcmUp OwotKyAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2Fz dC0+Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjby0+Z2V0TmFtZSgp KSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBpZiAodm8gPT0gTlVMTCkKLSAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAg ICAgICAgICp2YXJpYWJsZU9mZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0 OjpDcmVhdGUoY2FzdC0+Z2V0T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXRO YW1lKHZvLCAiX2Nhc3QiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqdmFyaWFibGVP ZmZzZXQgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywgY2Fz dC0+Z2V0VHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUodm8tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRC ZWZvcmUpOwotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi1AQCAtMTYwOCwxNiArMTYxMCwx OCBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMs IGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgZWxzZSBpZiAoYzEgPT0g TlVMTCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPihjMSkpCi0gICAg ICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGMwOwotICAgICAgICAgICAgIGVsc2UKLS0gICAg ICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCBjMCwgYzEsIExMVk1HZXROYW1lKCJhZGQiLCBjMCwgYzEp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbjo6QWRkLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIGMwLT5nZXRO YW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotIAotICAgICAgICAgICAgIGlmICh2MCA9PSBOVUxMIHx8IGxsdm06OmlzYTxs bHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KHYwKSkKLSAgICAgICAgICAgICAgICAgKnZhcmlh YmxlT2Zmc2V0ID0gdjE7Ci0gICAgICAgICAgICAgZWxzZSBpZiAodjEgPT0gTlVMTCB8fCBsbHZt Ojppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MSkpCi0gICAgICAgICAgICAgICAg ICp2YXJpYWJsZU9mZnNldCA9IHYwOwotICAgICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAg ICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6QWRkLCB2MCwgdjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFkZCIsIHYwLCB2 MSksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbjo6QWRkLCB2MCwgdjEsICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHYwLT5nZXRO YW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0gZWxzZSBpZiAoYm9w LT5nZXRPcGNvZGUoKSA9PSBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsKSB7Ci0gICAgICAgICAgICAg bEV4dHJhY3RDb25zdGFudE9mZnNldChvcDAsICZjMCwgJnYwLCBpbnNlcnRCZWZvcmUpOwotQEAg LTE2MzMsMTAgKzE2MzcsMTIgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChs bHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAg ICAgICAqY29uc3RPZmZzZXQgPSB2ZWM7Ci0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNl dCA9IE5VTEw7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6 U2hsLCBjMCwgYzEsIExMVk1HZXROYW1lKCJzaGwiLCBjMCwgYzEpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9y ZSk7Ci0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJh dG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1H ZXROYW1lKCJzaGwiLCB2MCwgYzEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAq Y29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJz aGxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zm c2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAg IGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBjMSwgKChsbHZtOjpUd2luZSgic2hsXyIpICsg djAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAg ICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHJldHVybjsK LSAgICAgICAgIH0gZWxzZSBpZiAoYm9wLT5nZXRPcGNvZGUoKSA9PSBsbHZtOjpJbnN0cnVjdGlv bjo6TXVsKSB7Ci1AQCAtMTY0OCwyNSArMTY1NCwzMCBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENv bnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQs Ci0gICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSBmaXJzdCB0ZXJtIGlzIGEgY29uc3RhbnQg YW5kIHRoZSBsYXN0IHRocmVlIGFyZQotICAgICAgICAgICAgIC8vIHZhcmlhYmxlLgotICAgICAg ICAgICAgIGlmIChjMCAhPSBOVUxMICYmIGMxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgICpj b25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rp b246Ok11bCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIGMxKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRC ZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVy YXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246Ok11 bCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikg KyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAg ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IE5VTEw7Ci0g Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnZhID0gTlVMTCwgKnZiID0gTlVMTCwgKnZjID0g TlVMTDsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAgICAg ICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1 Y3Rpb246Ok11bCwgdjAsIGMxLCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIGMxKSwKLSsgICAgICAg ICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0 aW9uOjpNdWwsIHYwLCBjMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8i KSArIGMxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmIChjMCAhPSBOVUxM ICYmIHYxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZiID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgdjEsIExMVk1HZXROYW1lKCJt dWwiLCBjMCwgdjEpLAotKyAgICAgICAgICAgICAgICB2YiA9IGxsdm06OkJpbmFyeU9wZXJhdG9y OjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYxLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIp ICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAg ICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAg dmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWws IHYwLCB2MSwgTExWTUdldE5hbWUoIm11bCIsIHYwLCB2MSksCi0rICAgICAgICAgICAgICAgIHZj ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2 MCwgdjEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0 TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmFiID0gTlVM TDsKLSAgICAgICAgICAgICBpZiAodmEgIT0gTlVMTCAmJiB2YiAhPSBOVUxMKQotLSAgICAgICAg ICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0 aW9uOjpBZGQsIHZhLCB2YiwgTExWTUdldE5hbWUoImFkZCIsIHZhLCB2YiksCi0rICAgICAgICAg ICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rp b246OkFkZCwgdmEsIHZiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoImFkZF8iKSArIHZhLT5nZXROYW1lKCkpICsgIl8i KSArIHZiLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2YSAh PSBOVUxMKQotICAgICAgICAgICAgICAgICB2YWIgPSB2YTsKLUBAIC0xNjc0LDggKzE2ODUsOSBA QCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxs dm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZiOwotIAot ICAgICAgICAgICAgIGlmICh2YWIgIT0gTlVMTCAmJiB2YyAhPSBOVUxMKQotLSAgICAgICAgICAg ICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06 Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoImFkZCIsIHZh YiwgdmMpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQg PSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywgKChsbHZtOjpUd2luZSgiYWRkXyIpICsgdmFi LT5nZXROYW1lKCkpICsgIl8iKSArIHZjLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2UgaWYgKHZhYiAhPSBOVUxMKQotICAg ICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2YWI7Ci0gICAgICAgICAgICAgZWxzZQot QEAgLTE5NDMsNyArMTk1NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06 OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICAg ICAgLy8gYWxsIHplcm9zIChpLmUuIGEgQ29uc3RhbnRBZ2dyZWdhdGVaZXJvLCBidXQganVzdCBp biBjYXNlLAotICAgICAgICAgICAgIC8vIGRvIHRoZSBtb3JlIGdlbmVyYWwgY2hlY2sgd2l0aCBs VmVjdG9ySXMzMkJpdEludHMoKS4KLSAgICAgICAgICAgICB2YXJpYWJsZU9mZnNldCA9IG5ldyBs bHZtOjpUcnVuY0luc3QodmFyaWFibGVPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBl LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZN R2V0TmFtZSh2YXJpYWJsZU9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2 YXJpYWJsZU9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUpOwotICAg ICAgICAgZWxzZQotICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotQEAgLTE5NTIs NyArMTk2NCw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoq dmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29uCi0gICAgICAgICBpZiAobFZlY3Rv cklzMzJCaXRJbnRzKGNvbnN0T2Zmc2V0KSkgewotICAgICAgICAgICAgIC8vIFRydW5jYXRlIHRo ZW0gc28gd2UgaGF2ZSBhIDMyLWJpdCB2ZWN0b3IgdHlwZSBmb3IgdGhlbS4KLSAgICAgICAgICAg ICBjb25zdE9mZnNldCA9IG5ldyBsbHZtOjpUcnVuY0luc3QoY29uc3RPZmZzZXQsIExMVk1UeXBl czo6SW50MzJWZWN0b3JUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMTFZNR2V0TmFtZShjb25zdE9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZv cmUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpUd2luZShjb25zdE9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUp OwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBGSVhNRTogb3RoZXJ3aXNlIHdl IGp1c3QgYXNzdW1lIHRoYXQgYWxsIGNvbnN0YW50IG9mZnNldHMKLSAgICAgICAgICAgICAvLyBj YW4gYWN0dWFsbHkgYWx3YXlzIGZpdCBpbnRvIDMyLWJpdHMuLi4gIChUaGlzIGNvdWxkIGJlCi1A QCAtMTk2Myw3ICsxOTc1LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6 VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAgICAgICAgICAg ICAvLyBsbHZtOjpDb25zdGFudEZvbGRJbnN0cnVjdGlvbigpIGRvZXNuJ3Qgc2VlbSB0byBiZSBk b2luZwotICAgICAgICAgICAgIC8vIGVub3VnaCBmb3IgdXMgaW4gc29tZSBjYXNlcyBpZiB3ZSBj YWxsIGl0IGZyb20gaGVyZS4KLSAgICAgICAgICAgICBjb25zdE9mZnNldCA9IG5ldyBsbHZtOjpU cnVuY0luc3QoY29uc3RPZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjb25z dE9mZnNldCwgIl90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjb25zdE9mZnNldC0+Z2V0TmFt ZSgpKSArICJfdHJ1bmMiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1A QCAtMjAxMiw4ICsyMDI0LDggQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6 VmFsdWUgKipvZmZzZXRQdHIsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnQKLSAKLSAgICAgICAg IC8vIEFsdGVybmF0aXZlbHksIG9mZnNldCBjb3VsZCBiZSBhIHNlcXVlbmNlIG9mIGFkZHMgdGVy bWluYXRpbmcKLSAgICAgICAgIC8vIGluIHNhZmUgY29uc3RhbnQgdmVjdG9ycyBvciBhIFNFeHQu Ci0tICAgICAgICAqb2Zmc2V0UHRyID0KLS0gICAgICAgICAgICBuZXcgbGx2bTo6VHJ1bmNJbnN0 KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9mZnNldCwg Il90cnVuYyIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgKm9mZnNldFB0ciA9IG5ldyBsbHZt OjpUcnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwgbGx2bTo6VHdp bmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgcmV0dXJuIHRydWU7 Ci0gICAgIH0gZWxzZQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTIyMjksNyArMjI0MSw4 IEBAIHN0YXRpYyBib29sIGxHU1RvR1NCYXNlT2Zmc2V0cyhsbHZtOjpDYWxsSW5zdCAqY2FsbElu c3QpIHsKLSAgICAgfQotICAgICAvLyBDYXN0IHRoZSBiYXNlIHBvaW50ZXIgdG8gYSB2b2lkICos IHNpbmNlIHRoYXQncyB3aGF0IHRoZQotICAgICAvLyBfX3BzZXVkb18qX2Jhc2Vfb2Zmc2V0c18q IGZ1bmN0aW9ucyB3YW50LgotLSAgICBiYXNlUHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChi YXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwg Il8ydm9pZCIpLCBjYWxsSW5zdCk7Ci0rICAgIGJhc2VQdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJ bnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBsbHZtOjpUd2luZShiYXNl UHRyLT5nZXROYW1lKCkpICsgIl8ydm9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhbGxJbnN0KTsKLSAgICAgbENvcHlNZXRhZGF0YShiYXNlUHRyLCBjYWxsSW5z dCk7Ci0gICAgIGxsdm06OkZ1bmN0aW9uICpnYXRoZXJTY2F0dGVyRnVuYyA9IGluZm8tPmJhc2VP ZmZzZXRzRnVuYzsKLSAKLUBAIC0yODAzLDcgKzI4MTYsNyBAQCBzdGF0aWMgYm9vbCBsR1NUb0xv YWRTdG9yZShsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICAgICAgbENv cHlNZXRhZGF0YShwdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgRGVidWcocG9zLCAi VHJhbnNmb3JtZWQgZ2F0aGVyIHRvIHVuYWxpZ25lZCB2ZWN0b3IgbG9hZCEiKTsKLSAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0NhbGwgPQotLSAgICAgICAgICAgICAgICAg ICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIsIG1hc2ssIExMVk1H ZXROYW1lKHB0ciwgIl9tYXNrZWRfbG9hZCIpKTsKLSsgICAgICAgICAgICAgICAgICAgIGxDYWxs SW5zdChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywgcHRyLCBtYXNrLCBsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX21hc2tlZF9sb2FkIik7Ci0gICAgICAgICAgICAgICAgIGxDb3B5 TWV0YWRhdGEobmV3Q2FsbCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsbHZtOjpSZXBs YWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBuZXdDYWxsKTsKLSAgICAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBh dGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggM2E5NGQ4NDQzYTVlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICsw LDAgQEAKLUZyb20gYzAzYTUxNDI0NDQ0NzZhMWNhYTVjMmJhN2ZhMmQ5MmQ3NzkzZDZmMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERlZXBhayBSYWplbmRyYWt1bWFyYW4gPGRlZXBh ay5yYWplbmRyYWt1bWFyYW5AaW50ZWwuY29tPgotRGF0ZTogTW9uLCAyNSBKYW4gMjAyMSAwOToy Mjo0OSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXhpbmcgYnVpbGQgb24gbGx2bSB0cnVuay4K LQotLS0tCi0gc3JjL2N0eC5jcHAgfCA3ICsrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9z cmMvY3R4LmNwcAotaW5kZXggZGVkNTI0YjcxLi5iNjBlNmZlODQgMTAwNjQ0Ci0tLS0gYS9zcmMv Y3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xMDIwLDggKzEwMjAsNyBAQCB2b2lkIEZ1 bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFiZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFz aywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVM TDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVNYXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0 ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNlIGltcGxlbWVudGF0aW9uCi0tICAgICAgICBs bHZtOjpUd2luZSBiYk5hbWUgPSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2lt cGwiOwotLSAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNh c2UpOwotKyAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2sobGx2bTo6VHdpbmUo YmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIiwgYmJDYXNlKTsKLSAgICAgfQotICNlbmRpZgot IAotQEAgLTMxNDIsOCArMzE0MSw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgIGxs dm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodmVjVHlwZSk7Ci0gCi0g ICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6VHdpbmUgdHcgPSBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6 IG5hbWUgKyBsbHZtOjpUd2luZSgiX2luaXQiKTsKLS0gICAgbGx2bTo6VmFsdWUgKmluc2VydCA9 IEluc2VydEluc3QodW5kZWYxLCB2LCAwLCB0dy5zdHIoKS5jX3N0cigpKTsKLSsgICAgbGx2bTo6 VmFsdWUgKmluc2VydCA9Ci0rICAgICAgICBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgbmFtZS5p c1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRj YXN0IikgOiBuYW1lICsgIl9pbml0Iik7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZTk2YjAwYWJmYS4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzNzIgKzAsMCBAQAotRnJvbSBjMWQwYTUxYmY4NDE2ZDQyMTQ0 ZGU5ZTJiZGQ1OTgyNWVhZWZmMWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJp bmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBGcmksIDgg SmFuIDIwMjEgMTQ6MTM6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gTExWTSAxMSBzdXBwb3J0 IGZvciBnZW4gY29kZQotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgIHwg IDEzICsrLQotIHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgfCAgIDkgKy0KLSBzcmMv b3B0LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBi NjBlNmZlODQuLjJhNzJlNjgzNyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMv Y3R4LmNwcAotQEAgLTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAxMC0yMDIw LCBJbnRlbCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDEwLTIwMjEsIEludGVsIENv cnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAt MzY4NSw4ICszNjg1LDE3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5Y U2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6Ci0gICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUo KSkpOwotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZl Y3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVMTCkg ewotLSAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodmFs dWUtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6 Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VsaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1F bGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVu dFR5cGUoKSkpOwotKyNlbHNlCi0rICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdCgKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0 aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2UpLAotKyAg ICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBl KCkpKTsKLSsjZW5kaWYKLSAgICAgfQotIAotICAgICBhdXRvIEZuID0gbGx2bTo6R2VuWEludHJp bnNpYzo6Z2V0R2VuWERlY2xhcmF0aW9uKG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6 Z2VueF9zaW1kY2ZfcHJlZGljYXRlLAotZGlmZiAtLWdpdCBhL3NyYy9nZW4vR2xvYmFsc0xvY2Fs aXphdGlvbi5jcHAgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi1pbmRleCBhMTc2 ZTk0NjIuLjQxZjNiMDBlMiAxMDA2NDQKLS0tLSBhL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlv bi5jcHAKLSsrKyBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLUBAIC0xLDUgKzEs NSBAQAotIC8qCi0tICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMCwgSW50ZWwgQ29ycG9y YXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNi0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlv bgotICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotQEAgLTUzLDggKzUz LDEwIEBACi0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWEludHJPcHRzLmg+Ci0g I2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWEludHJpbnNpY3MuaD4KLSAjaW5jbHVk ZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YTWV0YWRhdGEuaD4KLS0jaW5jbHVkZSA8bGx2bS9J Ui9DRkcuaD4KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICNpbmNs dWRlIDxsbHZtL0lSL0NhbGxTaXRlLmg+Ci0rI2VuZGlmCi0rI2luY2x1ZGUgPGxsdm0vSVIvQ0ZH Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRGVidWdJbmZvLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIv RG9taW5hdG9ycy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0Z1bmN0aW9uLmg+Ci1AQCAtNDcwLDcg KzQ3Miw4IEBAIHZvaWQgR2xvYmFsc0xvY2FsaXphdGlvbjo6TG9jYWxpemVHbG9iYWxzKExvY2Fs aXphdGlvbkluZm8gJkxJKSB7Ci0gICAgICAgICBJbnN0cnVjdGlvbiAmRmlyc3RJID0gKkZuLT5n ZXRFbnRyeUJsb2NrKCkuYmVnaW4oKTsKLSAgICAgICAgIFR5cGUgKkVsZW1UeSA9IEdWLT5nZXRU eXBlKCktPmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICBBbGxvY2FJbnN0ICpBbGxvY2EgPSBu ZXcgQWxsb2NhSW5zdChFbGVtVHksIDAsIEdWLT5nZXROYW1lKCkgKyAiLmxvY2FsIiwgJkZpcnN0 SSk7Ci0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5n ZXRBbGlnbm1lbnQoKSkpOwotKyAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5 YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0rCi0gICAgICAgICBp ZiAoIWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAg bmV3IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAK LWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBkNThkNzdmNzMu LjE3ODliODQ3NiAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAot QEAgLTI4OTksMTUgKzI4OTksMTcgQEAgc3RhdGljIGxsdm06OkZ1bmN0aW9uICpsR2VuWE1hc2tl ZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0LCBib29sIGlzU3RvcmUKLSBzdGF0aWMg bGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZh bHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChnLT50YXJn ZXQtPmlzR2VuWFRhcmdldCgpKTsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JU eXBlPih2YWwtPmdldFR5cGUoKSkpOwotLSAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2 YWwtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQodmFs LT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsK LSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsgICAgQXNzZXJ0KGxsdm06OmlzUG93 ZXJPZjJfMzIodmFsVmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICBBc3NlcnQodmFs VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotIAot ICAgICAvLyBUaGUgZGF0YSB3cml0ZSBvZiBzdm0gc3RvcmUgbXVzdCBoYXZlIGEgc2l6ZSB0aGF0 IGlzIGEgcG93ZXIgb2YgdHdvIGZyb20gMTYgdG8gMTI4Ci0gICAgIC8vIGJ5dGVzLiBIb3dldmVy IGZvciBpbnQ4IHR5cGUgYW5kIHNpbWQgd2lkdGggPSA4LCB0aGUgZGF0YSB3cml0ZSBzaXplIGlz IDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgc3RvcmUgZnVuY3Rpb24gaGVyZSBpbnN0ZWFk IG9mIHN2bSBzdG9yZSB3aGljaCBwcm9jZXNzIGludDggdHlwZQotICAgICAvLyBjb3JyZWN0bHku Ci0tICAgIGlmICh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8 IDE2KSB7Ci0tICAgICAgICBBc3NlcnQodmFsLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSA9 PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSsgICAgaWYgKHZhbFZlY1R5cGUtPmdldFByaW1pdGl2 ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewotKyAgICAgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdl dFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZt OjpGdW5jdGlvbiAqbWFza2VkRnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgdHJ1ZSkp Ci0gICAgICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2Fs bEluc3QobWFza2VkRnVuYywgcHRyLCB2YWwsIExMVk1NYXNrQWxsT24sICIiKSk7Ci0gICAgICAg ICBlbHNlIHsKLUBAIC0yOTIzLDE1ICsyOTI1LDE3IEBAIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAq bEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6 Ci0gCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxsdm06OlZhbHVlICpw dHIsIGxsdm06OlR5cGUgKnJldFR5cGUsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAg IEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLSAgICBBc3Nl cnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7 Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotLSAgICBB c3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQp OwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSk7Ci0rICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2Yy XzMyKHJldFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgQXNzZXJ0KHJldFZlY1R5 cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSk7Ci0rICAgIEFzc2VydChyZXRWZWNUeXBlLT5n ZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gICAgIC8vIFRoZSBk YXRhIHJlYWQgb2Ygc3ZtIGxvYWQgbXVzdCBoYXZlIGEgc2l6ZSB0aGF0IGlzIGEgcG93ZXIgb2Yg dHdvIGZyb20gMTYgdG8gMTI4Ci0gICAgIC8vIGJ5dGVzLiBIb3dldmVyIGZvciBpbnQ4IHR5cGUg YW5kIHNpbWQgd2lkdGggPSA4LCB0aGUgZGF0YSByZWFkIHNpemUgaXMgOC4KLSAgICAgLy8gU28g d2UgdXNlIG1hc2tlZCBsb2FkIGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gbG9hZCB3aGlj aCBwcm9jZXNzIGludDggdHlwZQotICAgICAvLyBjb3JyZWN0bHkuCi0tICAgIGlmIChyZXRUeXBl LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydChy ZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlm IChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAg ICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4 VHlwZSk7Ci0gICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1h c2tlZEludDhJbnN0KGluc3QsIGZhbHNlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIExMVk1NYXNr QWxsT24sICIiKSk7Ci0gICAgICAgICBlbHNlIHsKLUBAIC01NjIyLDE1ICs1NjI2LDI0IEBAIHN0 YXRpYyBib29sIGxWZWN0b3JpemVHRVBzKGxsdm06OlZhbHVlICpwdHIsIHN0ZDo6dmVjdG9yPFB0 clVzZT4gJnB0clVzZXMsIHN0ZDo6Ci0gICAgICAgICBsbHZtOjpQdHJUb0ludEluc3QgKnB0clRv SW50ID0KLSAgICAgICAgICAgICBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHB0ciwgTExWTVR5cGVz OjpJbnQ2NFR5cGUsICJ2ZWN0b3JpemVkX3B0cnRvaW50IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAg ICAgIGxsdm06Okluc3RydWN0aW9uICphZGRyID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZUFkZChwdHJUb0ludCwgb2Zmc2V0LCAidmVjdG9yaXplZF9hZGRyZXNzIiwgaW5zZXJ0QmVmb3Jl KTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGxs dm06OlR5cGUgKnJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJfdHlw ZSwgcmVxU2l6ZSAvIHRfc2l6ZSk7Ci0rI2Vsc2UKLSAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5 cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUp OwotKyNlbmRpZgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZuID0gbGx2bTo6R2VuWEludHJp bnNpYzo6Z2V0R2VuWERlY2xhcmF0aW9uKAotICAgICAgICAgICAgIG0tPm1vZHVsZSwgbGx2bTo6 R2VuWEludHJpbnNpYzo6Z2VueF9zdm1fYmxvY2tfbGRfdW5hbGlnbmVkLCB7cmV0VHlwZSwgYWRk ci0+Z2V0VHlwZSgpfSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbGQgPSBsbHZtOjpD YWxsSW5zdDo6Q3JlYXRlKGZuLCB7YWRkcn0sICJ2ZWN0b3JpemVkX2xkIiwgaW5zZXJ0QmVmb3Jl KTsKLSAKLSAgICAgICAgIGlmIChsb2FkaW5nUHRyKSB7Ci0gICAgICAgICAgICAgLy8gQ2FzdCBp bnQgdG8gcHRyIHZpYSBpbnR0b3B0cgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTFfMAotKyAgICAgICAgICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQob3JpZ2luYWxUeXBlLCByZXFTaXplIC8gdF9zaXplKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcml6ZWRfaW50 dG9wdHIiLCBpbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGQgPSBuZXcgbGx2 bTo6SW50VG9QdHJJbnN0KGxkLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQob3JpZ2luYWxUeXBlLCBy ZXFTaXplIC8gdF9zaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInZlY3Rvcml6ZWRfaW50dG9wdHIiLCBpbnNlcnRCZWZvcmUpOwotKyNlbmRpZgotICAgICAg ICAgfQotIAotICAgICAgICAgLy8gU2NhbGFyIGV4dHJhY3RzIGZvciBhbGwgbG9hZGVkIGVsZW1l bnRzCi1AQCAtNjE2MCwxOSArNjE3MywzNCBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6 cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9ICYqSTsKLSAgICAgICAgIGlmIChsbHZtOjpDYWxsSW5zdCAqY2kg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4oaW5zdCkpIHsKLSAgICAgICAgICAgICBs bHZtOjpGdW5jdGlvbiAqZnVuYyA9IGNpLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAgICAgICAg ICAgIGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKSA9PSAibGx2bS50cmFwIikgewotKyAgICAg ICAgICAgIGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0udHJhcCIpKSB7 Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKmFyZ1R5cGVzW10gPSB7TExWTVR5cGVzOjpJ bnQxVmVjdG9yVHlwZSwgTExWTVR5cGVzOjpJbnQxNlZlY3RvclR5cGV9OwotICAgICAgICAgICAg ICAgICAvLyBEZXNjcmlwdGlvbiBvZiBwYXJhbWV0ZXJzIGZvciBnZW54X3Jhd19zZW5kX25vcmVz dWx0IGNhbiBiZSBmb3VuZCBpbiB0YXJnZXQtZ2VueC5sbAotICAgICAgICAgICAgICAgICBhdXRv IEZuID0gK2xsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAgICAg ICAgICAgICAgICAgIG0tPm1vZHVsZSwgbGx2bTo6R2VuWEludHJpbnNpYzo6Z2VueF9yYXdfc2Vu ZF9ub3Jlc3VsdCwgYXJnVHlwZXMpOwotICAgICAgICAgICAgICAgICBsbHZtOjpTbWFsbFZlY3Rv cjxsbHZtOjpWYWx1ZSAqLCA4PiBBcmdzOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFj ayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKSk7Ci0tICAg ICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFu dEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKyAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFj ayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0 aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1f MTFfMAotKyAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0g MTIuMCsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRp Y19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwg ZmFsc2UpLAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6 OmdldFRydWUoKmctPmN0eCkpKTsKLSsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2so bGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMzkpKTsKLSAgICAg ICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlw ZXM6OkludDMyVHlwZSwgMzM1NTQ0NDgpKTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUg Knplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotLSAgICAgICAgICAg ICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLCBsbHZtOjpDb25zdGFu dDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDE2VHkoKmctPmN0eCkpKTsKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAg Zy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExWTV9WRVJT SU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8 dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0s Ci0rI2Vsc2UgLy8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVu dENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgICAgICBs bHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDE2VHkoKmctPmN0 eCkpKTsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2soemVyb01hc2spOwotIAotICAg ICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbmV3SW5zdCA9IGxsdm06OkNhbGxJbnN0 OjpDcmVhdGUoRm4sIEFyZ3MsIGNpLT5nZXROYW1lKCkpOwotQEAgLTYxODEsNyArNjIwOSw3IEBA IGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0gdHJ1ZTsKLSAg ICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLSAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0gZWxzZSBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0uYXNz dW1lIikgewotKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCku ZXF1YWxzKCJsbHZtLmFzc3VtZSIpKSB7Ci0gICAgICAgICAgICAgICAgIGNpLT5lcmFzZUZyb21Q YXJlbnQoKTsKLSAgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnkgPSB0cnVlOwotICAgICAgICAg ICAgICAgICBnb3RvIHJlc3RhcnQ7Ci1AQCAtNjMzNSw3ICs2MzYzLDcgQEAgYm9vbCBDaGVja1Vu c3VwcG9ydGVkSW5zdHM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewot ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IHVuc3VwcG9ydGVkRnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgc3Rk OjpzbWF0Y2ggbWF0Y2g7Ci0tICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0g ZnVuYy0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9 IGZ1bmMtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgaWYgKHN0ZDo6cmVnZXhf bWF0Y2goZnVuY05hbWUsIG1hdGNoLCB1bnN1cHBvcnRlZEZ1bmNzW2ldKSkgewotICAgICAgICAg ICAgICAgICAgICAgLy8gV2UgZm91bmQgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uIEdlbmVyYXRlIGVy cm9yIGFuZCBzdG9wIGNvbXBpbGF0aW9uLgotICAgICAgICAgICAgICAgICAgICAgU291cmNlUG9z IHBvczsKLUBAIC02NDE4LDEyICs2NDQ2LDE0IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgIGlm IChmdW5jLT5nZXROYW1lKCkuc3RhcnRzd2l0aCgiX19zcGlydl9vY2wiKSkgewotICAgICAgICAg ICAgICAgICBzdGQ6OnN0cmluZyBtYW5nbGVkTmFtZTsKLSAgICAgICAgICAgICAgICAgbGx2bTo6 VHlwZSAqcmV0VHlwZSA9IGZ1bmMtPmdldFJldHVyblR5cGUoKTsKLS0gICAgICAgICAgICAgICAg c3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAg IHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAg ICAgICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpUeXBlICo+IEFyZ1R5OwotICAgICAgICAgICAgICAg ICAvLyBzcGlydiBPcGVuQ0wgYnVpbHRpbnMgYXJlIHVzZWQgZm9yIGRvdWJsZSB0eXBlcyBvbmx5 Ci0tICAgICAgICAgICAgICAgIEFzc2VydChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYgcmV0VHlw ZS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpIHx8Ci0rICAgICAgICAgICAg ICAgIEFzc2VydChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxl bWVudFR5cGUoKS0+aXNEb3VibGVUeSgpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXRU eXBlLT5pc1NpbmdsZVZhbHVlVHlwZSgpICYmIHJldFR5cGUtPmlzRG91YmxlVHkoKSk7Ci0tICAg ICAgICAgICAgICAgIGlmIChyZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYgcmV0VHlwZS0+Z2V0VmVj dG9yRWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0rICAgICAgICAgICAgICAgIGlmIChy ZXRUeXBlLT5pc1ZlY3RvclR5KCkgJiYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJs ZVR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgIEFyZ1R5LnB1c2hfYmFjayhMTFZNVHlwZXM6 OkRvdWJsZVZlY3RvclR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgLy8gX0R2V0lEVEggc3Vm Zml4IGlzIHVzZWQgaW4gdGFyZ2V0IGZpbGUgdG8gZGlmZmVyZW50aWF0ZSBzY2FsYXIKLSAgICAg ICAgICAgICAgICAgICAgIC8vIGFuZCB2ZWN0b3IgdmVyc2lvbnMgb2YgaW50cmluc2ljcy4gSGVy ZSB3ZSByZW1vdmUgdGhpcwotQEAgLTY1MTEsOCArNjU0MSwxNSBAQCBsbHZtOjpWYWx1ZSAqRml4 QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAq UHRyLCBsbAotIAotICAgICAvLyBDYXN0IG9mZnNldHMgdG8gaW50NjQKLSAgICAgT2Zmc2V0cyA9 IG5ldyBsbHZtOjpaRXh0SW5zdCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzExXzAKLSsgICAgICAgIE9mZnNldHMsCi0rICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6 OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9mZnNldHMtPmdldFR5cGUo KSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAgInN2bV9vZmZzZXRfemV4dCIsIEluc2Vy dEJlZm9yZSk7Ci0rI2Vsc2UKLSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5cGU6Omdl dChMTFZNVHlwZXM6OkludDY0VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwot KyNlbmRpZgotIAotICAgICBpZiAoIWxsdm06OmlzYTxsbHZtOjpDb25zdGFudFBvaW50ZXJOdWxs PihQdHIpKSB7Ci0gICAgICAgICAvLyBDYXN0IHB0ciB0byBpbnQ2NAotQEAgLTY1MjAsMTMgKzY1 NTcsMzEgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2Nh dHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgICAgIC8vIFZlY3Rvcml6 ZSBwdHIKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVlID0KLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpVbmRl ZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAgICAg IExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihh ZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAgIGxs dm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2 NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlmCi0g ICAgICAgICBhZGRyZXNzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSh1bmRlZklu c2VydFZhbHVlLCBhZGRyZXNzLCBMTFZNSW50MzIoMCksICJzdm1fcHRyX2llaSIsIEluc2VydEJl Zm9yZSk7Ci0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0YW50 VmVjdG9yOjpnZXRTcGxhdCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFf MAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotKyNl bGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAge2xs dm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVu dHMoKSwgZmFsc2V9LAotKyNlbHNlCi0rICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZp eGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUtPmdldE51bUVsZW1lbnRzKCksIGZhbHNlKSwKLSsj ZW5kaWYKLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5 cGU6OmdldEludDMyVHkoSW5zZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0rCi0gICAgICAg ICBsbHZtOjpWYWx1ZSAqdW5kZWZTaHVmZmxlVmFsdWUgPQotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChs bHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJ bnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+ Z2V0TnVtRWxlbWVudHMoKSkpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1 ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVz c1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSsjZW5kaWYKLSAgICAgICAgIGFkZHJl c3MgPSBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QoYWRkcmVzcywgdW5kZWZTaHVmZmxlVmFs dWUsIHplcm9WZWMsICJzdm1fcHRyX3N2aSIsIEluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAv LyBDYWxjdWxhdGUgYWRkcmVzcwotQEAgLTY1NTMsOSArNjYwOCwxMiBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAq TEkpIHsKLSAgICAgaWYgKHJldFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkg ewotICAgICAgICAgaXNQdHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9 IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6 OkludDY0VHlwZTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsg ICAgICAgIHJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMo KSk7Ci0rI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2Nh bGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0gICAg IH0KLS0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKnJlcyA9IGxHZW5YTG9hZEluc3QocHRyLCBy ZXRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4oTEkpKTsKLSAgICAgQXNz ZXJ0KHJlcyk7Ci0gCi1AQCAtNjU4MCwxMSArNjYzOCwxNiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAq Rml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yTG9hZChsbHZtOjpJbnN0cnVjdGlvbiAq Q0kpCi0gICAgIHB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QocHRyLCBsbHZtOjpQb2ludGVy VHlwZTo6Z2V0KHJldFR5cGUsIDApLCBDSS0+Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIsIENJKTsK LSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gTlVMTDsKLSAjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9h ZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+ Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIGxvYWRJbnN0LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LSsgICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0 ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgZmFs c2UgLyogbm90IHZvbGF0aWxlICovLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkp LnZhbHVlT3JPbmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06 Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vsc2UKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6 TG9hZEluc3QocHRyLCBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LSsgICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBDSS0+Z2V0TmFtZSgpLCBm YWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGln bihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5V TEwpOwotICNlbmRpZgotKwotICAgICBBc3NlcnQobG9hZEluc3QpOwotICAgICByZXR1cm4gbG9h ZEluc3Q7Ci0gfQotQEAgLTY2MDYsNyArNjY2OSwxMSBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4 QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkgewot ICAgICAvLyBOb3RlOiBpdCBkb2Vzbid0IGxvb2sgbGlrZSBhIG5vcm1hbCBjYXNlIGZvciBHZW5Y IHRhcmdldAotICAgICBpZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgp KSB7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExM Vk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4 ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICB2YWxU eXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZhbFR5cGUtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCkpOwotKyNlbmRpZgotICAgICAgICAgdmFsID0gbmV3IGxsdm06OlB0clRv SW50SW5zdCh2YWwsIHZhbFR5cGUsICJzdm1fc3RfdmFsX3B0cnRvaW50IiwgU0kpOwotICAgICB9 Ci0gCi1AQCAtNjYzMSwxMiArNjY5OCw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNz U3BhY2U6OnByb2Nlc3NTVk1WZWN0b3JTdG9yZShsbHZtOjpJbnN0cnVjdGlvbiAqQ0kpCi0gICAg IHB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0 KHZhbFR5cGUsIDApLCBDSS0+Z2V0TmFtZSgpICsgIl9pbnR0b3B0ciIsIENJKTsKLSAKLSAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKnN0b3JlSW5zdCA9IE5VTEw7Ci0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5z dCh2YWwsIGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSkt PmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RvcmVJbnN0LCBDSS0+Z2V0TmFtZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxM KTsKLS0jZWxzZQotLSAgICBzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRy LCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZW5kaWYKLSsgICAgc3RvcmVJbnN0ID0g bmV3IGxsdm06OlN0b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0gICAg IEFzc2VydChzdG9yZUluc3QpOwotICAgICByZXR1cm4gc3RvcmVJbnN0OwotIH0KLUBAIC02NjQ1 LDE1ICs2NzA4LDE4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OmNyZWF0 ZUludDhXclJlZ2lvbihsbHZtOjpWYWx1ZSAqVmFsLCBsbHZtOjpWCi0gICAgIGludCB3aWR0aCA9 IGctPnRhcmdldC0+Z2V0VmVjdG9yV2lkdGgoKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKkFyZ3Nb OF07Ci0tCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFy Z3NbMF0gPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQo TExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KSk7IC8vIG9sZCB2YWx1ZQotKyNlbHNlCi0g ICAgIEFyZ3NbMF0gPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQgdmFsdWUKLS0gICAgQXJn c1sxXSA9IFZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0tICAgIEFyZ3Nb Ml0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2c3RyaWRlCi0tICAgIEFyZ3NbM10gPSBsbHZt OjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyB3aWR0aAotLSAgICBBcmdzWzRdID0gbGx2bTo6Q29uc3RhbnRJ bnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgNCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gc3RyaWRlCi0tICAgIEFyZ3NbNV0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExM Vk1UeXBlczo6SW50MTZUeXBlLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBv ZmZzZXRzCi0tICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6 SW50MzJUeXBlLCAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXJlbnQgd2lk dGggKGlnbm9yZWQpCi0tICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXNr Ci0rI2VuZGlmCi0rICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIHRvIHN0b3JlCi0rICAgIEFyZ3NbMl0gPSBs bHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHZz dHJpZGUKLSsgICAgQXJnc1szXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJ bnQzMlR5cGUsIHdpZHRoKTsgLy8gd2lkdGgKLSsgICAgQXJnc1s0XSA9IGxsdm06OkNvbnN0YW50 SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgLy8gc3RyaWRlCi0rICAgIEFy Z3NbNV0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MTZUeXBlLCAwKTsg ICAgIC8vIG9mZnNldHMKLSsgICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExW TVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotKyAg ICBBcmdzWzddID0gTWFzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBtYXNrCi0gCi0gICAgIGxsdm06OlR5cGUgKlR5c1s0XTsKLSAKLUBAIC02NzA4 LDcgKzY3NzQsMTIgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vz c0dhdGhlclNjYXR0ZXJQcml2YXRlKGxsdm06OkNhbGxJbnN0ICoKLSAgICAgICAgIHJldHVybiBO VUxMOwotIAotICAgICBsbHZtOjpWYWx1ZSAqYWRkcmVzcyA9IGNhbGN1bGF0ZUdhdGhlclNjYXR0 ZXJBZGRyZXNzKHB0ciwgb2Zmc2V0cywgQ0kpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpGaXhlZFZl Y3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpOwotKyNlbHNlCi0g ICAgIGxsdm06OlR5cGUgKmk4VmVjVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlw ZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpOwotKyNlbmRpZgotKwotICAgICBib29sIGlzSW50OCA9 ICh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlw ZSk7Ci0gCi0gICAgIEFzc2VydChhZGRyZXNzICYmICJCYWQgZ2F0aGVyL3NjYXR0ZXIgYWRkcmVz cyEiKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gg Yi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBhODI5ZWE0ODM5MWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAg QEAKLUZyb20gYmIzZjQ5M2QxZmJkNDVjNzllMWQ5ZGVlNjdhMDQzMGJhMzEzZWFhZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFl dmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCAxOSBKYW4gMjAyMSAxMTowNzozMyAtMDgwMAotU3Vi amVjdDogW1BBVENIXSBGaXhlZCBpZmRlZnMgZm9yIExMVk1fMTEKLQotLS0tCi0gc3JjL2N0eC5j cHAgfCAgNiArKystLS0KLSBzcmMvb3B0LmNwcCB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQotIDIg ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCAyYTcyZTY4MzcuLjUyN2Ew MmYzMCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTE2 OTEsNyArMTY5MSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVu aWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUCi0gICAgIGlmIChsbHZtOjpD b25zdGFudCAqY29uc3RfdmFsID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q29uc3RhbnQ+KHZhbHVl KSkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBy ZXQgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXRWZWN0b3JX aWR0aCgpLCBjb25zdF92YWwpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExW TV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAg ICAgcmV0ID0KLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0 YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpKSwgZmFs c2V9LCBjb25zdF92YWwpOwotICNlbHNlIC8vIExMVk0gMTIuMCsKLUBAIC0zMTQ4LDcgKzMxNDgs NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2 bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMV8wCi0gICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgdmVjVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVu dHMoKSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5 KCpnLT5jdHgpKSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAK LSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgIGxsdm06OkNv bnN0YW50ICp6ZXJvVmVjID0KLSAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNl fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFu dDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLUBAIC0z Njg4LDcgKzM2ODgsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNp bWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OgotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0 YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50 OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLS0jZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQ Q19MTFZNXzEyXzAKLSAgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6Omdl dFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZ0LT5nZXROdW1FbGVtZW50cygpKSwg ZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwot ICNlbHNlCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggMTc4 OWI4NDc2Li4zZmYxOTFhMGEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29w dC5jcHAKLUBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAgICAgYWxp Z24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAgICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxs ZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMV8wCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9 Ci0gICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbGx2bTo6 VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xh dGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5V TEwpOwotQEAgLTE0NzIsNyArMTQ3Miw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJhc2VQ dHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNlCi0gICAg ICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPQotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGN2LT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1l bnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY3YtPmdldFR5cGUo KSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1AQCAt MTQ5NSw3ICsxNDk1LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsR2V0QmFzZVB0ckFuZE9mZnNl dHMobGx2bTo6VmFsdWUgKnB0cnMsIGxsdm06OlZhbHVlICoqb2Zmc2UKLSAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYm9wX3Zhcl90eXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYm9wX3Zhcl90eXBlKS0+ Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi1AQCAtMjgwMyw3 ICsyODAzLDcgQEAgc3RhdGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNh bGxJbnN0KSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0KLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZtOjpD b25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY2FsbEluc3QtPmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAot KyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICAgICAgICAgICAgICAgICAgICAg e2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGNhbGxJbnN0LT5nZXRUeXBlKCkpLT5n ZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gCi1AQCAtMzEwMCw3ICszMTAwLDcgQEAgc3RhdGlj IGJvb2wgbEltcHJvdmVNYXNrZWRMb2FkKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCwgbGx2bTo6 QmFzaWNCbG9jazo6aXRlcmEKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBsbHZtOjpUeXBlICpw dHJUeXBlID0gbGx2bTo6UG9pbnRlclR5cGU6OmdldChjYWxsSW5zdC0+Z2V0VHlwZSgpLCAwKTsK LSAgICAgICAgICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBwdHJUeXBlLCAi cHRyX2Nhc3RfZm9yX2xvYWQiLCBjYWxsSW5zdCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAK LSAgICAgICAgICAgICBsb2FkID0gbmV3IGxsdm06OkxvYWRJbnN0KAotICAgICAgICAgICAgICAg ICBwdHIsIGNhbGxJbnN0LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAg ICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5 ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQot QEAgLTM0NTksNyArMzQ1OSw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1 ZSAqYmFzZVB0ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0 ciA9IGxHRVBJbnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNl cnRCZWZvcmUpOwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQ b2ludGVyVHlwZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QocHRy LCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxp Z24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgcmV0 dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o cHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotQEAgLTYxODMs NyArNjE4Myw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2so bGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2so bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEx XzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAg ICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjE5 NSw3ICs2MTk1LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq emVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElTUENfTExW TV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgIGctPnRhcmdl dC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJ U1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAK LSAgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdl dC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjAr Ci0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2Fz dDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNl KSwKLUBAIC02NTY3LDcgKzY1NjcsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpj YWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICAgICAg ICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQ Q19MTFZNXzEyXzAKLSAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLSAgICAg ICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KApkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwNy5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiOTc1Zjg5NmM3ZS4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxNjAgKzAsMCBAQAotRnJvbSA2MmY1YTZjMzdiZjI2ZmMyNWE3Y2Y4MTg2 ODA1MmQzNDcyODc0NjEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVz aGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIzIE1hciAy MDIxIDIzOjA3OjMwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBnZW5lcmF0ZSBmdW5j dGlvbiBtYXNrIHdoZW4gaXQgaXMgbm90IHJlcXVpcmVkCi0KLS0tLQotIHNyYy9jdHguY3BwICAg ICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrLS0tLS0tLQotIHRlc3RzL2xpdC10 ZXN0cy9mdWxsX21hc2suaXNwYyB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKLSAyIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQot IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLQotZGlm ZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDUyN2EwMmYzMC4uOWU3 NzVmYzVjIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAt MjMxLDEwICsyMzEsMTggQEAgRnVuY3Rpb25FbWl0Q29udGV4dDo6RnVuY3Rpb25FbWl0Q29udGV4 dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0sIGxsdm06OkYKLSAgICAgaW50ZXJuYWxN YXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImludGVybmFsX21h c2tfbWVtb3J5Iik7Ci0gICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBpbnRlcm5hbE1hc2tQ b2ludGVyKTsKLSAKLS0gICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBMTFZNTWFza0FsbE9uOwotLQot LSAgICBmdWxsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5cGUsICJm dWxsX21hc2tfbWVtb3J5Iik7Ci0tICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBmdWxsTWFz a1BvaW50ZXIpOwotKyAgICAvLyBJZiB0aGUgZnVuY3Rpb24gZG9lc24ndCBoYXZlIF9fbWFzayBp biBwYXJhbWV0ZXJzLCB0aGVyZSBpcyBubyBuZWVkIHRvCi0rICAgIC8vIGhhdmUgZnVuY3Rpb24g bWFzawotKyAgICBpZiAoKGZ1bmMtPkdldFR5cGUoKS0+aXNFeHBvcnRlZCAmJgotKyAgICAgICAg IChsZi0+Z2V0RnVuY3Rpb25UeXBlKCktPmdldE51bVBhcmFtcygpID09IGZ1bmMtPkdldFR5cGUo KS0+R2V0TnVtUGFyYW1ldGVycygpKSkgfHwKLSsgICAgICAgIChmdW5jLT5HZXRUeXBlKCktPmlz VW5tYXNrZWQpIHx8IChmdW5jLT5HZXRUeXBlKCktPmlzVGFzaykpIHsKLSsgICAgICAgIGZ1bmN0 aW9uTWFza1ZhbHVlID0gTlVMTDsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IE5VTEw7Ci0r ICAgIH0gZWxzZSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IExMVk1NYXNrQWxsT247 Ci0rICAgICAgICBmdWxsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5 cGUsICJmdWxsX21hc2tfbWVtb3J5Iik7Ci0rICAgICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxP biwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgfQotIAotICAgICBibG9ja0VudHJ5TWFzayA9IE5V TEw7Ci0gICAgIGJyZWFrTGFuZXNQdHIgPSBjb250aW51ZUxhbmVzUHRyID0gTlVMTDsKLUBAIC0z ODksMjAgKzM5NywyNiBAQCBsbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpH ZXRDdXJyZW50QmFzaWNCbG9jaygpIHsgcmV0dXJuIGJibG9jazsgfQotIAotIHZvaWQgRnVuY3Rp b25FbWl0Q29udGV4dDo6U2V0Q3VycmVudEJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAqYmIp IHsgYmJsb2NrID0gYmI7IH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 R2V0RnVuY3Rpb25NYXNrKCkgeyByZXR1cm4gZnVuY3Rpb25NYXNrVmFsdWU7IH0KLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVuY3Rpb25NYXNrKCkgeyByZXR1cm4gZnVs bE1hc2tQb2ludGVyID8gZnVuY3Rpb25NYXNrVmFsdWUgOiBMTFZNTWFza0FsbE9uOyB9Ci0gCi0g bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEludGVybmFsTWFzaygpIHsgcmV0 dXJuIExvYWRJbnN0KGludGVybmFsTWFza1BvaW50ZXIsIE5VTEwsICJsb2FkX21hc2siKTsgfQot IAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFzaygpIHsKLS0g ICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVy bmFsTWFzaygpLCBmdW5jdGlvbk1hc2tWYWx1ZSwgImludGVybmFsX21hc2smZnVuY3Rpb25fbWFz ayIpOwotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gQmluYXJ5T3BlcmF0b3IobGx2bTo6 SW5zdHJ1Y3Rpb246OkFuZCwgR2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVybmFsX21h c2smZnVuY3Rpb25fbWFzayIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHZXRJbnRl cm5hbE1hc2soKTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okdl dEZ1bGxNYXNrUG9pbnRlcigpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlcjsgfQotK2xsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7Ci0rICAgIHJl dHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdWxsTWFza1BvaW50ZXIgOiBpbnRlcm5hbE1hc2tQb2lu dGVyOwotK30KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEZ1bmN0aW9uTWFzayhs bHZtOjpWYWx1ZSAqdmFsdWUpIHsKLS0gICAgZnVuY3Rpb25NYXNrVmFsdWUgPSB2YWx1ZTsKLS0g ICAgaWYgKGJibG9jayAhPSBOVUxMKQotLSAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCks IGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIgIT0gTlVMTCkgewot KyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSB2YWx1ZTsKLSsgICAgICAgIGlmIChiYmxvY2sg IT0gTlVMTCkKLSsgICAgICAgICAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQ b2ludGVyKTsKLSsgICAgfQotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEJs b2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0VudHJ5TWFzayA9IHZhbHVl OyB9Ci1AQCAtNDEwLDcgKzQyNCw4IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0Qmxv Y2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7IGJsb2NrRW50cnlNYXNrCi0gdm9pZCBG dW5jdGlvbkVtaXRDb250ZXh0OjpTZXRJbnRlcm5hbE1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7 Ci0gICAgIFN0b3JlSW5zdCh2YWx1ZSwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gICAgIC8vIGts dWRnZSBzbyB0aGF0IF9fbWFzayByZXR1cm5zIHRoZSByaWdodCB2YWx1ZSBpbiBpc3BjIGNvZGUu Ci0tICAgIFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBp ZiAoZnVsbE1hc2tQb2ludGVyKQotKyAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1 bGxNYXNrUG9pbnRlcik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50 ZXJuYWxNYXNrQW5kKGxsdm06OlZhbHVlICpvbGRNYXNrLCBsbHZtOjpWYWx1ZSAqdGVzdCkgewot QEAgLTEyNjUsNyArMTI4MCw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3VycmVudExh bmVzUmV0dXJuZWQoRXhwciAqZXhwciwgYm9vbCBkb0NvaGVyZW5jZUNoZWNrCi0gICAgICAgICAv LyBsYW5lcyBoYXZlIHJldHVybmVkCi0gICAgICAgICBpZiAoZG9Db2hlcmVuY2VDaGVjaykgewot ICAgICAgICAgICAgIC8vIGlmIG5ld1JldHVybmVkTGFuZXMgPT0gZnVuY3Rpb25NYXNrVmFsdWUs IGdldCBvdXQgb2YgaGVyZSEKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NB bGxFcXVhbChmdW5jdGlvbk1hc2tWYWx1ZSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0rICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoR2V0RnVuY3Rpb25NYXNrKCksIG5l d1JldHVybmVkTGFuZXMpOwotICAgICAgICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJEb1JldHVy biA9IENyZWF0ZUJhc2ljQmxvY2soImRvX3JldHVybiIpOwotICAgICAgICAgICAgIGxsdm06OkJh c2ljQmxvY2sgKmJOb1JldHVybiA9IENyZWF0ZUJhc2ljQmxvY2soIm5vX3JldHVybiIpOwotICAg ICAgICAgICAgIEJyYW5jaEluc3QoYkRvUmV0dXJuLCBiTm9SZXR1cm4sIGNtcCk7Ci1kaWZmIC0t Z2l0IGEvdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2Z1 bGxfbWFzay5pc3BjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5hYzBi MGJjYTMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNw YwotQEAgLTAsMCArMSw2MyBAQAotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfRVhQT1JUIC0t ZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sg LS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19FWFBPUlQgJXMKLSsK LSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX1VOTUFTS0VEIC0tZW1pdC1sbHZtLXRleHQgLU8w IC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0Lmxs IC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19VTk1BU0tFRCAlcwotKwotKy8vIFJVTjogJXtpc3Bj fSAlcyAtRElTUENfTk9RVUFMSUYgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQu bGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1D SEVDS19JU1BDX05PUVVBTElGICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19UQVNL IC0tZW1pdC1sbHZtLXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hl Y2sgLS1pbnB1dC1maWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19UQVNLICVzCi0r Ci0rc3RydWN0IFBhcmFtZXRlcnMgewotKyAgICBmbG9hdCAqdm91dDsKLSsgICAgaW50IHBhcmFt OwotK307Ci0rCi0rI2lmZGVmIElTUENfRVhQT1JUCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6IGRl ZmluZSB2b2lkIEBzaW1wbGVfZXhwb3J0X19fCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6ICVmdWxs X21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQ6IGRlZmluZSB2b2lk IEBzaW1wbGVfZXhwb3J0KAotKy8vIENIRUNLX0lTUENfRVhQT1JULU5PVDogJWZ1bGxfbWFza19t ZW1vcnkgPSBhbGxvY2EKLStleHBvcnQgdm9pZCBzaW1wbGVfZXhwb3J0KHZvaWQgKnVuaWZvcm0g X3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3Jt KSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91 dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsjZW5k aWYKLSsjaWZkZWYgSVNQQ19VTk1BU0tFRAotKy8vIENIRUNLX0lTUENfVU5NQVNLRUQ6IGRlZmlu ZSB2b2lkIEBzaW1wbGVfdW5tYXNrZWQKLSsvLyBDSEVDS19JU1BDX1VOTUFTS0VELU5PVDogJWZ1 bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt1bm1hc2tlZCB2b2lkIHNpbXBsZV91bm1hc2tlZCh2 b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0 ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsg ICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRl eDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfTk9RVUFMSUYKLSsvLyBDSEVDS19JU1BDX05P UVVBTElGOiBkZWZpbmUgdm9pZCBAc2ltcGxlCi0rLy8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogJWZ1 bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt2b2lkIHNpbXBsZSh2b2lkICp1bmlmb3JtIF9wKSB7 Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7 Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJv Z3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0r I2lmZGVmIElTUENfVEFTSwotKwotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNp bXBsZV90YXNrCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLLU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBh bGxvY2EKLSsvLyBDSEVDS19JU1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50cnlfcG9p bnRfXwotKy8vIENIRUNLX0lTUENfVEFTSzogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsv LyBDSEVDS19JU1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfZW50cnlfcG9pbnQoCi0rLy8g Q0hFQ0tfSVNQQ19UQVNLLU5PVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSt0YXNrIHZv aWQgc2ltcGxlX3Rhc2sodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlm b3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4 ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291 bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotK2V4cG9ydCB2b2lkIHNpbXBsZV9lbnRyeV9wb2ludCh2 b2lkICp1bmlmb3JtIHBhcmFtZXRlcnMsIHVuaWZvcm0gaW50IGRpbTAsIHVuaWZvcm0gaW50IGRp bTEsIHVuaWZvcm0gaW50IGRpbTIpIHsKLSsgICAgbGF1bmNoW2RpbTAsIGRpbTEsIGRpbTJdIHNp bXBsZV90YXNrKHBhcmFtZXRlcnMpOwotK30KLSsjZW5kaWYKLVwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRj aCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGM4NDEzZDhiNzg4Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAs MCBAQAotRnJvbSBhZmFkMTQyMjdkOTIwNGEzYzhhNjI2Y2E2MDhmNWI0M2MzMjE4ZmU5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5 YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDQgTWF5IDIwMjEgMTE6NDM6NTIgLTA3MDAKLVN1 YmplY3Q6IFtQQVRDSF0gRml4ZWQgSVNQQyBnZW4gYnVpbGQgZm9yIExMVk0xMgotCi0tLS0KLSBz cmMvY3R4LmNwcCB8ICA0ICsrKysKLSBzcmMvb3B0LmNwcCB8IDQzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMv Y3R4LmNwcAotaW5kZXggMGM3MDUwNTkxLi5mN2RjMDY5MzkgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4 LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0zNzM4LDcgKzM3MzgsMTEgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZBbnkobGx2bTo6VmFsdWUgKnZhbHVl KSB7Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVk aWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqZGVmYXVsdHMpIHsKLSAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+ Z2V0VHlwZSgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0r ICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhl ZFZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIGxsdm06OlZlY3Rv clR5cGUgKnZ0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5 cGUoKSk7Ci0rI2VuZGlmCi0gICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSB7Ci0gI2lmIElTUENf TExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotZGlm ZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGNlYTRhZmEyMy4uNGUz M2Q2YjFhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAt MjkxNiw5ICsyOTE2LDEzIEBAIHN0YXRpYyBsbHZtOjpGdW5jdGlvbiAqbEdlblhNYXNrZWRJbnQ4 SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBpc1N0b3JlCi0gCi0gc3RhdGljIGxs dm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1 ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQoZy0+dGFyZ2V0 LT5pc0dlblhUYXJnZXQoKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MV8wCi0rICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdl dFR5cGUoKSkpOwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZt OjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsjZWxz ZQotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgp KSk7Ci0tCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gICAgIEFzc2Vy dChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAg ICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAq IE9XT1JEKTsKLSAKLUBAIC0yOTQyLDkgKzI5NDYsMTMgQEAgc3RhdGljIGxsdm06OkNhbGxJbnN0 ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZt OjoKLSB9Ci0gCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWExvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGxsdm06OlR5cGUgKnJldFR5cGUsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7 Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIEFzc2VydChs bHZtOjppc2E8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0rICAgIGxsdm06OkZp eGVkVmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVj dG9yVHlwZT4ocmV0VHlwZSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0tCi0gICAgIGxsdm06OlZlY3RvclR5cGUgKnJldFZlY1R5 cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZW5kaWYK LSAgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVu dHMoKSkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygp KTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDgg PD0gOCAqIE9XT1JEKTsKLUBAIC01NDg1LDggKzU0OTMsMTMgQEAgc3RhdGljIHZvaWQgbENyZWF0 ZUJsb2NrTERVc2UobGx2bTo6SW5zdHJ1Y3Rpb24gKmN1cnJJbnN0LCBzdGQ6OnZlY3RvcjxsbHZt OjpFeHQKLSAgICAgICAgIH0gZWxzZSBpZiAoYXV0byBnYXRoZXIgPSBsR2V0UHNldWRvR2F0aGVy KGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPih1aS0+Z2V0VXNlcigpKSkpIHsKLSAg ICAgICAgICAgICAvLyBDb2xsZWN0IGlkeHMgZnJvbSBnYXRoZXIgYW5kIGZpeCB1c2VycwotICAg ICAgICAgICAgIGxsdm06OlZhbHVlICpyZXMgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQoZ2F0aGVy LT5nZXRUeXBlKCkpOwotLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGVuZCA9IGxs dm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxl bWVudHMoKTsgaSA8IGVuZDsKLS0gICAgICAgICAgICAgICAgICsraSkgewotKyNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg aSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmVzLT5n ZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotKyAgICAgICAgICAgICAgICAg KytpKQotKyNlbHNlCi0rICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmVzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVt ZW50cygpOyBpIDwgZW5kOyArK2kpCi0rI2VuZGlmCi0rICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgICAvLyBHZXQgZWxlbWVudCB2aWEgSUVJCi0gICAgICAgICAgICAgICAgIHJlcyA9IGxs dm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUocmVzLCBFRUlzW3B0clVzZS5pZHhzW2N1cnJf aWR4KytdXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCBpKSwK LUBAIC01NTIyLDEwICs1NTM1LDExIEBAIHN0YXRpYyBib29sIGxWZWN0b3JpemVHRVBzKGxsdm06 OlZhbHVlICpwdHIsIHN0ZDo6dmVjdG9yPFB0clVzZT4gJnB0clVzZXMsIHN0ZDo6Ci0gCi0gICAg IC8vIEFkanVzdCB2YWx1ZXMgZm9yIHZlY3RvciBsb2FkCi0gI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMV8wCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih0eXBlKSkgewotKyAgICBpZiAoYXV0byB2ZWNUeSA9IGxs dm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpCi0gI2Vsc2UKLS0gICAg aWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih0eXBlKSkg ewotKyAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHR5cGUpKQotICNlbmRpZgotKyAgICB7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQg c2l6ZQotICAgICAgICAgdF9zaXplIC89IHZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotICAgICAg ICAgLy8gR2V0IHNpbmdsZSBlbGVtZW50IHR5cGUKLUBAIC02NDc3LDcgKzY0OTEsNyBAQCBsbHZt OjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhs bHZtOjpWYWx1ZSAqUHRyLCBsbAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgT2Zmc2V0cywKLSAgICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6 Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oT2Zmc2V0cy0+Z2V0VHlwZSgp KS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KE9mZnNldHMtPmdldFR5cGUo KSktPmdldE51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4dCIsIEluc2Vy dEJlZm9yZSk7Ci0gI2Vsc2UKLSAgICAgICAgIE9mZnNldHMsIGxsdm06OlZlY3RvclR5cGU6Omdl dChMTFZNVHlwZXM6OkludDY0VHlwZSwgT2Zmc2V0cy0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpKSwKLUBAIC02NDkyLDcgKzY1MDYsNyBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVz c1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBs bAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmSW5zZXJ0VmFsdWUgPQotICNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFs dWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLS0gICAgICAgICAgICAgICAgTExW TVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJl c3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6 OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNz VHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSAjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVu ZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUs IGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1AQCAtNjUw MSwxNyArNjUxNSwxNiBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVH YXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZl Y3Rvck51bUVsZW1lbnRzKCksCi0gI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTJfMAotLSAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRy ZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsgICAgICAgICAgICB7bGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1l bnRzKCksIGZhbHNlfSwKLSAjZWxzZQotLSAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpG aXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZSksCi0r ICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlKSwK LSAjZW5kaWYKLSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06 OlR5cGU6OmdldEludDMyVHkoSW5zZXJ0QmVmb3JlLT5nZXRDb250ZXh0KCkpKSk7Ci0gCi0gICAg ICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZTaHVmZmxlVmFsdWUgPQotICNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6Omdl dChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLS0gICAgICAgICAgICAgICAgTExWTVR5cGVz OjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBl KS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0 VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSkt PmdldE51bUVsZW1lbnRzKCkpKTsKLSAjZWxzZQotICAgICAgICAgICAgIGxsdm06OlVuZGVmVmFs dWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJl c3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0gI2VuZGlmCi1AQCAtNjU0Miw3ICs2 NTU1LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3Rv ckxvYWQobGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVlOwot ICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlw ZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVj dG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHJldFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsgICAgICAgIHJldFR5cGUgPQotKyAgICAg ICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9j YXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwot ICNlbHNlCi0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5 cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgotQEAgLTY2MDQs NyArNjYxOCw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NW ZWN0b3JTdG9yZShsbHZtOjpTdG9yZUluc3QgKlNJKSB7Ci0gICAgIGlmICh2YWxUeXBlLT5nZXRT Y2FsYXJUeXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9 IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6 OkludDY0VHlwZTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0g ICAgICAgIHZhbFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMo KSk7Ci0rICAgICAgICB2YWxUeXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5 cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+ KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgdmFsVHlwZSA9 IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2YWxUeXBlLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpKTsKLSAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDkucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2VhNjc4Mjg1ODIuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjEwOSArMCwwIEBACi1Gcm9tIDk3YjEzYzMyMTMyZTI3MDRhNWUzZTdiMmVhZTQ5ZDg1 NGQwODdlM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZh IDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAyMSAxMToz MTo1NSAtMDcwMAotU3ViamVjdDogW1BBVENIXSBVcGRhdGVkIGJ1aWx0aW5zLWNtKiBmb3Igc3dp dGNoIHRvIExMVk0xMgotCi0tLS0KLSBidWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCB8IDIzNCAr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMt Y20tNjQubGwgfCAyMzIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBm aWxlcyBjaGFuZ2VkLCAyMzMgaW5zZXJ0aW9ucygrKSwgMjMzIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwgYi9idWlsdGlucy9idWlsdGlucy1j bS0zMi5sbAotaW5kZXggMzJkZWJmMzJlLi40ODFiYmRjNDggMTAwNjQ0Ci0tLS0gYS9idWlsdGlu cy9idWlsdGlucy1jbS0zMi5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLUBA IC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2RUV2 diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50 IFs1IHggaThdIGMiJTA4WFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUg aW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNp Z25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNsYXJlIDwx IHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4sIGkzMiwg aTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwx IHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwy IHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMg ewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTY4MCw3 ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012 YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1Nf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBh bGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9f Y1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4 dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25l eHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAsNyArODkw LDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0r ZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4 IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwy IHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBh bGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAy Ci1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0 IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkzMiw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0rZGVmaW5l IGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9j U18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxp Z24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4 IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDgg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4Piwg PDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2 X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8 MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0 ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4Piwg YWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBp OD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFs bG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNp Z25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkx NiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAl MyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAg JTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcgQEAgZGVm aW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVF dTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54LnJkcmVn aW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikg IzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18o PDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+ LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsK LSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBp MTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xMTQz LDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0g YWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcgKzEzNTAs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZy ZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAj MTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2Piwg YWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTQxOSw3 ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAj MyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBp MTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0 LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2 PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1Nf KDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBp MTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0 Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2 PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTQ4 Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBp MTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0gICAlMyA9 IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFs aWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUwMSw3ICsx NTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2 PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotICAg JTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkx Nj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAgLTE1 MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwz MiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEz IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQK LUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAj MTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAsNyArMTcz MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4gQGxsdm0u Z2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIsIGkzMiwg aTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8 MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkz Mj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot ICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9p U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIg eCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9 IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxp Z24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9a TjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4p ICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdk ZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBp MzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4s IGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBp MzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMxX1MxX3Uy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0 IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWko aTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAt MjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQg ewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2Nh IDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0g ICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVm aW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBp MzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0g YWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9p U18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18o PDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8 NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5h bCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4 IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24g MzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4 IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5h bCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwx NiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBh bGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxs b2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf aVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMy X2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4Niw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHpl cm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0 YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4s IDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4Piwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYwLDcgKzI4 NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4 IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0g YWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZi VF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHgg aTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+ IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9TMV91Mgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIg eCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBA X1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0 LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAg ICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChp OCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18o PDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4Piwg PDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9o U18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBA IC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICszMTU4LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0rZGVm aW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi OF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDggeCBpOD4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4 IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4 IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAx NgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2 IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4 IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4 PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4 PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2 IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx NiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4 dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2 LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjc4LDcg KzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4p ICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyArMzI5NCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8 MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcgQEAgZGVm aW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVF RXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmlu ZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0 X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf dFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcgQEAgZGVm aW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMy RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6 ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgot ICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEg eCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+ KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgot QEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4s IDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzY3 OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBp MTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUz ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjkyLDcgKzM2 OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMx NiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMgPSBhbGxv Y2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyArMzcwNiw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMx NyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAgICUzID0g YWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBh bGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0zNzIwLDcg KzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAt MzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsK LSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4OTIsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9q U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxv Y2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5lIGludGVy bmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRf X2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19q UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwz MiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBh bGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBh bGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAgZGVmaW5l IGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVF dTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+ LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQg ewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2 NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHgg aTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAl MyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5Miw3ICs0 NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAj MTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24g MTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcgKzQ3MDYs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7 Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2Eg PDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgot ICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcyMCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxs b2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGln biA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0LDcgKzQ3 MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+ KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAl MyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAt NDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9f ZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcg ITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMy LCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxvY2EgaTgq LCBhbGlnbiA0Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMCA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLUBAIC00OTg4LDcgKzQ5ODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBA X1pON2RldGFpbHMxNl9jbV9wcmludF9mb3JtYXRJTGkxMjhFRUV2MTVjbV9zdXJmYWNlaW5kZXhq dQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkz MiwgaTMyLCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQg QF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBp MzIpICMyNiAhZGJnICExMTcgewotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTEx ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTEyID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAg LTUwNjksNyArNTA2OSw3IEBAIGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9seihp MzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0gICAlNjcgPSBsb2Fk IGk2NCwgaTY0KiAlMTMsIGFsaWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5Ci0gICAlNjggPSBs b2FkIDw1IHggaTMyPiwgPDUgeCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJnICExNjAsICF0YmFh ICE3Ci0gICBjYWxsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJDTXZiNV9p KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMjMsIGkzMiogZGVyZWZlcmVuY2VhYmxlKDQpICUxOSwg aTMyKiogZGVyZWZlcmVuY2VhYmxlKDQpICUxNCwgaTMyICU2NiwgaTY0ICU2NywgPDUgeCBpMzI+ ICU2OCksICFkYmcgITE2MQotLSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMjMpLCAh ZGJnICExNjIKLSsgICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf VDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSAgIGJyIGxhYmVs ICU3MCwgIWRiZyAhMTYzCi0gCi0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTYwCi1AQCAtNTE4Nyw3ICs1MTg3LDcgQEAgZGVmaW5l IGludGVybmFsIDw1IHggaTMyPiBAX1oxN2dldF9hdXhpbGlhcnlfc3RydigpICMyOCBjb21kYXQg IWRiZyAhMTc4IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVu Y29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFk YmcgITE5MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGlu Z0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0gICAlNCA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIs IGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIK LUBAIC01MTk2LDcgKzUxOTYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAgJTggPSBi aXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE5NgotICAgJTkg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE5NgotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlOCwgaTgq IGFsaWduIDMyICU5LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNv ZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0 ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgK LSsgICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0 VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAz MiAlNSksICFkYmcgITE5OAotICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxhYmVsICUxMSwgIWRi ZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjExOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTMKLUBAIC01MjA0LDcgKzUyMDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy MTNWYXJ5aQotICAgJTEzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTYgdG8gaTgq LCAhZGJnICEyMDEKLSAgICUxNCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyIHRv IGk4KiwgIWRiZyAhMjAxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICUxMywgaTgqIGFsaWduIDMyICUxNCwgaTMyIDY0LCBpMSBmYWxzZSksICFk YmcgITIwMSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNiksICFkYmcgITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotICAgYnIgbGFiZWwgJTE2 LCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlMTEsICUzCi1AQCAtNTI3OSw3ICs1Mjc5LDcgQEAgZGVmaW5l IGludGVybmFsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJqUlBLaml5dTJDTXZiNV9pKCVj bGFzcy5WYXJ5aW5nV3JpdGUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2 IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewot ICAgcmV0IGkzMiAtMSwgIWRiZyAhMjM3Ci0gfQotIAotQEAgLTg4NjAsNyArODg2MCw3IEBAIGRl Y2xhcmUgZHNvX2xvY2FsIHZvaWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJpbnNpY19pbXBsX3N2 bV9zY2F0dGVyX3dyaXRlSWlMaTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdlbnguc3ZtLnNjYXR0 ZXIudjFpMS52MWk2NC52MWkzMig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4sIDwxIHggaTMyPikg IzI3Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5j b2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcg ITE2NDUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAg JTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24g MQotQEAgLTg4NjksNyArODg2OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gICAlNyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY0NwotICAg JTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NDcK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTcs IGk4KiBhbGlnbiAzMiAlOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NDcsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTQs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0gICBy ZXQgaTEgJTksICFkYmcgITE2NDkKLSB9Ci0gCi1AQCAtODg3Nyw3ICs4ODc3LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZv cm1JMTNVbmlmb3JtV3JpdGUKLSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIG5vY2FwdHVyZSB3cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVhZG9ubHksIGkzMiwg aTEpICMzMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRj aEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAh ZGJnICExNjUwIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIy c3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUzID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIK LSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFs aWduIDEKLUBAIC04ODg2LDEyICs4ODg2LDEyIEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlCi0g ICAlNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY1 MgotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITE2NTIKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NTIsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUpLCAhZGJnICExNjUz Ci0gICByZXQgaTEgJTksICFkYmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewot K2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBh bGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24gMQotQEAg LTg5MTQsNyArODkxNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjIgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2NTcKLSAgICUyMyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1NwotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIsIGk4 KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl NiksICFkYmcgITE2NTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcg ITE2NTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlMwotQEAgLTg5MjIsNyArODkyMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNyB0byBpOCos ICFkYmcgITE2NjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMTY2 MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkxICUyOSwgbGFiZWwg JTYwLCBsYWJlbCAlMzAsICFkYmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04OTMwLDcgKzg5MzAs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTkgdG8gaTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMz LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUz NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwg YWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMx LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMCksICFkYmcgITE2 NjYKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITE2NjcKLSAKLSA7 IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlMzAKLUBAIC04OTM4LDcgKzg5MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAg JTM3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4KiwgIWRiZyAhMTY2 OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJn ICExNjY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWdu IDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2Njks ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSsgICUz OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKSBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwgbGFiZWwgJTYwLCBs YWJlbCAlNDAsICFkYmcgITE2NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC04OTQ2LDcgKzg5NDYsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdy aXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVt Y3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0MywgaTMy IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxICUxNCksICFkYmcgITE2NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIg JTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCksICFkYmcgITE2NzQK LSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2NzUKLSAKLSA7IDxs YWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAl NDAKLUBAIC04OTU0LDcgKzg5NTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQ3 ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMTY3Nwot ICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICEx Njc3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMy ICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzcsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSsgICU0OSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KSBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJl bCAlNTAsICFkYmcgITE2NzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC04OTYyLDcgKzg5NjIsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTE3IHRvIGk4KiwgIWRiZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1MywgaTMyIDY0 LCBpMSBmYWxzZSksICFkYmcgITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIg JTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx ICUxOCksICFkYmcgITE2ODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE3 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFkYmcgITE2ODIKLSAg IGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJl bD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAK LUBAIC04OTcwLDcgKzg5NzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTU3ID0g Yml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMTY4NQotICAg JTU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjg1 Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1 NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODUsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0rICAlNTkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICExNjgzCi0g Ci0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHBy ZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTg5NzksNyAr ODk3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNjg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMDUsNyArOTAw NSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNjk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMzEsNyArOTAzMSw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNTcsNyArOTA1Nyw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWoxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEx NzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLSAgICU0ID0gYWxs b2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTgg JTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwODMsNyArOTA4Myw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0 IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMDksNyArOTEwOSw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXgxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0ID0gYWxsb2NhIGkx LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4 KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMzUsNyArOTEzNSw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAl NSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNjEsNyArOTE2MSw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWQxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0rZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1 LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTk4NCw3ICs5OTg0LDcgQEAgZGVmaW5lIGludGVy bmFsIGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90eXBlX29jbElQdkVFTlNfMThTSEFERVJf UFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNTUgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIwNTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh ICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTEwMDA3LDcgKzEwMDA3 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA1NwotICAgJTIzID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDU3Ci0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUy MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl MjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEgJTYpLCAhZGJnICEyMDU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIx LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU2KSwgIWRiZyAhMjA1 OAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMjA1OQotIAotIDsg PGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICUzCi1AQCAtMTAwMTUsNyArMTAwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAg JTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTcgdG8gaTgqLCAhZGJnICEyMDYx Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITIwNjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2MSwg IXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSsgICUyOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIp IGFsaWduIDEgJTgpLCAhZGJnICEyMDYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwg JTMwLCAhZGJnICEyMDYzCi0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtMTAwMjMsNyArMTAwMjMsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTkgdG8gaTgqLCAhZGJnICEyMDY1Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpMzIgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA2NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lq MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl OSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl MTApLCAhZGJnICEyMDY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU5LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMCksICFkYmcgITIwNjYKLSAgIGJy IGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITIwNjcKLSAKLSA7IDxsYWJlbD46 MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBA IC0xMDAzMSw3ICsxMDAzMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICEyMDY5Ci0gICAl MzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjkK LSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTM3 LCBpOCogYWxpZ24gMzIgJTM4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2OSwgIXRiYWEu c3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3MAotKyAgJTM5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEgJTEyKSwgIWRiZyAhMjA3MAotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0 MCwgIWRiZyAhMjA3MQotIAotIDsgPGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEwMDM5LDcgKzEwMDM5LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxMyB0byBpOCosICFkYmcgITIwNzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICEyMDczLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx MywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl MTQpLCAhZGJnICEyMDc0Ci0rICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMywg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDc0Ci0gICBi ciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICEyMDc1Ci0gCi0gOyA8bGFiZWw+ OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1A QCAtMTAwNDcsNyArMTAwNDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQ3ID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMjA3NwotICAg JTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc3 Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0 NywgaTgqIGFsaWduIDMyICU0OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzcsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITIwNzgKLSsgICU0OSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICUxNiksICFkYmcgITIwNzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAl NTAsICFkYmcgITIwNzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0xMDA1NSw3ICsxMDA1NSw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlMTcgdG8gaTgqLCAhZGJnICEyMDgxCi0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpMzIgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA4MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lk MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEg JTE4KSwgIWRiZyAhMjA4MgotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4MgotICAg YnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAhMjA4MwotIAotIDsgPGxhYmVs Pjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAot QEAgLTEwMDYzLDcgKzEwMDYzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxOSB0byBpOCosICFkYmcgITIwODUKLSAg ICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4 NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl NTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDg1LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotKyAgJTU5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxICUyMCksICFkYmcgITIwODYKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMjA4Mwot IAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC0xMDA3Miw3 ICsxMDA3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ YjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMDg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDg4IHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDk4LDcg KzEwMDk4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lp MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITIwOTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwOTcgewot ICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxMjQsNyAr MTAxMjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjEwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEwNiB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE1MCw3ICsx MDE1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTE1IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTc2LDcgKzEw MTc2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMjQgewotICAg JTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBz dG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMDIsNyArMTAy MDIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjEzMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzMyB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIyOCw3ICsxMDIy OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTQyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQyIHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjU0LDcgKzEwMjU0 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLWRpZmYgLS1naXQgYS9idWls dGlucy9idWlsdGlucy1jbS02NC5sbCBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsCi1pbmRl eCAzOWEyZGQ4YmUuLjM3NWQwMWJlZCAxMDA2NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0aW5zLWNt LTY0LmxsCi0rKysgYi9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbAotQEAgLTU1Nyw3ICs1NTcs NyBAQCAkX1pOMTNWYXJ5aW5nV3JpdGVyMTJXcml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29tZGF0IGFu eQotIEAuc3RyLjEwID0gcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzggeCBpOF0gYyIl MDE2bGxYXDAwIiwgYWxpZ24gMQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBz aWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTgg c2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYxOCw3 ICs2MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIGRlY2xhcmUgPDEgeCBpOD4gQGxs dm0uZ2VueC5yZHJlZ2lvbmkudjFpOC52MWk4LmkxNig8MSB4IGk4PiwgaTMyLCBpMzIsIGkzMiwg aTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwx IHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtNjM0LDcgKzYzNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwy IHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtNjgwLDcgKzY4MCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGky RUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmlu ZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRf Y1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 NCB4IGk4PiwgYWxpZ24gNAotQEAgLTgxOCw3ICs4MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2 IHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fY1MxX1Mx X3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+ LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBp OD4sIGFsaWduIDMyCi1AQCAtODY0LDcgKzg2NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19jUzFfUzFfdTJD Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2ln bmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewot ICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTg5MCw3ICs4OTAsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhp OCBzaWduZXh0LCBpOCBzaWduZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8 MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBp OD4sIGFsaWduIDEKLUBAIC05MDQsNyArOTA0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8 MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMz IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4 IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC05MTgs NyArOTE4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC05MzIsNyArOTMyLDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1Nf KDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwg PDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4 PiwgPDggeCBpOD4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAl NCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFs aWduIDgKLUBAIC05NDYsNyArOTQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4 IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4Pikg IzkgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgot QEAgLTk2MCw3ICs5NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsK LSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4 IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC05 NzQsNyArOTc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQp ICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2Nh IGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9j YSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDU4LDcgKzEwNTgsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19z UzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMTY+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTE2 LnYxaTE2LmkxNig8MSB4IGkxNj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4s IDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewot ICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNzQs NyArMTA3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2 PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTExNDMsNyArMTE0Myw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMkVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQg eCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1 ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTEzNTAsNyArMTM1MCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVF dTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVm aW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot ICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNDE5LDcgKzE0MTksNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkzMkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZp bmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhp MTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLUBAIC0xNDQ1LDcgKzE0NDUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18o PDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LUBAIC0xNDU5LDcgKzE0NTksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+ LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsK LSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBp MTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xNDcz LDcgKzE0NzMsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0g YWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xNDg3LDcgKzE0ODcs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsK LStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLSAgICUzID0gYWxsb2NhIDw4 IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAg ICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012Yjhfc1NfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewot K2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0gICAlMyA9IGFsbG9j YSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24g MzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMTUxNSw3ICsxNTE1 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE1Mjks NyArMTUyOSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg aTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAl MyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTczMCw3ICsxNzMwLDcgQEAgZGVm aW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVF dTJDTXZiVF9faVMxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTMyPiBAbGx2bS5nZW54LnJkcmVn aW9uaS52MWkzMi52MWkzMi5pMTYoPDEgeCBpMzI+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikg IzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18o PDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBp MzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFs bG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotQEAgLTE3NDYsNyArMTc0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkz Mj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMx NSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwy IHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAt MTkzMiw3ICsxOTMyLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMx M19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQg eCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMy PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNDkw LDcgKzI0OTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxM19f aW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4 Ci1AQCAtMjY3Niw3ICsyNjc2LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdk ZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmlu ZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikg IzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBh bGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzAyLDcgKzI3 MDIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bWlpKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFf aVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3MTYsNyArMjcxNiw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18o PDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJu YWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIg eCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWdu IDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci1AQCAtMjczMCw3ICsyNzMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkz Mj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4s IDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAg ICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMy PiwgYWxpZ24gMTYKLUBAIC0yNzQ0LDcgKzI3NDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9p U18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDgg eCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQg PSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBh bGlnbiAzMgotQEAgLTI3NTgsNyArMjc1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNf KDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwg PDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0g ICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHgg aTMyPiwgYWxpZ24gNjQKLUBAIC0yNzcyLDcgKzI3NzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHgg aTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8 MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4 IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGln biAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjc4Niw3ICsyNzg2LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJf aVNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTgg emVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODQ0 LDcgKzI4NDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2lt cGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NjAsNyArMjg2MCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNf KDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLUBAIC0yOTA2LDcgKzI5MDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIg eCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19oUzFfUzFf dTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0 X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHgg aTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot QEAgLTMwNDQsNyArMzA0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRh aWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+ LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3 IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBA IC0zMDkwLDcgKzMwOTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWls czE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4 dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9l eHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMTYsNyArMzExNiw3IEBAIGRlZmluZSBkc29fbG9j YWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQs IGk4IHplcm9lCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4Piwg PDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi1AQCAtMzEzMCw3ICszMTMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTMxNDQsNyAr MzE0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQg ewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMTU4LDcgKzMxNTgsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9o U18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLStkZWZpbmUgaW50ZXJu YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4 IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAot ICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+ LCBhbGlnbiA4Ci1AQCAtMzE3Miw3ICszMTcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYg eCBpOD4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFs aWduIDE2Ci1AQCAtMzE4Niw3ICszMTg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBp OD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFs bG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi1AQCAtMzIwMCw3ICszMjAwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg emVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwg aTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewot ICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyNzgsNyArMzI3OCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTFFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzI5NCw3ICszMjk0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIx X3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zMzYwLDcgKzMzNjAsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9f dFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFs IDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHgg aTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotQEAgLTM1NTgsNyArMzU1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYg eCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX3RTMV9T MV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHgg aTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWdu IDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNjI0LDcgKzM2MjQsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJU X190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkx NiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAg LTM2NTAsNyArMzY1MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwx IHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY2NCw3 ICszNjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zNjc4LDcgKzM2Nzgs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM2OTIsNyArMzY5Miw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiNF90U18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi OF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkx Nj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMzcwNiw3ICszNzA2LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4 X3RTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLStkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDE2 IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0g ICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAgLTM3MjAsNyArMzcyMCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGln biA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNzM0LDcgKzM3 MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBh bGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM4OTIsNyArMzg5Miw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNN dmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18o PDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzkwOCw3ICszOTA4LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4 IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkz Mj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot ICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLUBAIC00MDU0LDcgKzQwNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBp MzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9falMxX1MxX3Uy QwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9q U18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQg eCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQg PSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBh bGlnbiAxNgotQEAgLTQ0OTIsNyArNDQ5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+ IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2pTMV9TMV91Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwg PDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIg eCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NjM4LDcgKzQ2MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19q UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBp MzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbWpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotQEAgLTQ2NjQsNyArNDY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMy PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY3OCw3ICs0Njc4 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUg ewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00NjkyLDcgKzQ2OTIsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjJfalNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVm aW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBp MzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUg PSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ3MDYsNyArNDcwNiw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi NF9qU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9q U18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4s IGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFs bG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtNDcyMCw3ICs0NzIwLDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pT Xyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2 X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHgg aTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAl NSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTQ3MzQsNyArNDczNCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2pTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24g MTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NzQ4LDcgKzQ3 NDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9j bShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotK2Rl ZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMy KiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0gICAlOCA9IGFsbG9jYSBpOCosIGFsaWduIDgK LSAgICU5ID0gYWxsb2NhIGk4KiwgYWxpZ24gOAotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24g NAotQEAgLTUwNzAsNyArNTA3MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmlu dF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzCi0gICAlNjcg PSBsb2FkIGk2NCwgaTY0KiAlMTMsIGFsaWduIDgsICFkYmcgITE1OSwgIXRiYWEgITE5Ci0gICAl NjggPSBsb2FkIDw1IHggaTMyPiwgPDUgeCBpMzI+KiAlMjEsIGFsaWduIDMyLCAhZGJnICExNjAs ICF0YmFhICE3Ci0gICBjYWxsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBLaml5dTJD TXZiNV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMjMsIGk2NCogZGVyZWZlcmVuY2VhYmxlKDgp ICUxOSwgaTMyKiogZGVyZWZlcmVuY2VhYmxlKDgpICUxNCwgaTMyICU2NiwgaTY0ICU2NywgPDUg eCBpMzI+ICU2OCksICFkYmcgITE2MQotLSAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJO U184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MjMpLCAhZGJnICExNjIKLSsgICU2OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMjMpLCAhZGJnICExNjIKLSAgIGJy IGxhYmVsICU3MCwgIWRiZyAhMTYzCi0gCi0gOyA8bGFiZWw+OjcwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTYwCi1AQCAtNTE4OCw3ICs1MTg4LDcgQEAg ZGVmaW5lIGludGVybmFsIDw1IHggaTMyPiBAX1oxN2dldF9hdXhpbGlhcnlfc3RydigpICMyOCBj b21kYXQgIWRiZyAhMTc4IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5l IGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29t ZGF0ICFkYmcgITE5MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhF bmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE5MSB7Ci0g ICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1X cml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxp Z24gMzIKLUBAIC01MTk3LDcgKzUxOTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aQotICAg JTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE5Ngot ICAgJTkgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE5 NgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAl OCwgaTgqIGFsaWduIDMyICU5LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTk2LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBz aWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUpLCAhZGJn ICExOTgKLSsgICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5j b2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4 dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBh bGlnbiAzMiAlNSksICFkYmcgITE5OAotICAgYnIgaTEgJTEwLCBsYWJlbCAlMTYsIGxhYmVsICUx MSwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjExOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC01MjA1LDcgKzUyMDUsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyMTNWYXJ5aQotICAgJTEzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTYg dG8gaTgqLCAhZGJnICEyMDEKLSAgICUxNCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUyIHRvIGk4KiwgIWRiZyAhMjAxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICUxMywgaTgqIGFsaWduIDMyICUxNCwgaTY0IDY0LCBpMSBmYWxz ZSksICFkYmcgITIwMSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxNSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotKyAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNiksICFkYmcgITIwMgotICAgYnIgbGFi ZWwgJTE2LCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTY6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMTEsICUzCi1AQCAtNTI4MCw3ICs1MjgwLDcgQEAg ZGVmaW5lIGludGVybmFsIHZvaWQgQF9aTjEzVmFyeWluZ1dyaXRlckMyRVJ5UlBLaml5dTJDTXZi NV9pKCVjbGFzcy5WYXJ5aW5nV3JpdGUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX19udW1fY29yZXMoKSAjMjkgIWRi ZyAhMjM2IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEy MzYgewotICAgcmV0IGkzMiAtMSwgIWRiZyAhMjM3Ci0gfQotIAotQEAgLTg4NzAsNyArODg3MCw3 IEBAIGRlY2xhcmUgZHNvX2xvY2FsIHZvaWQgQF9aTjdkZXRhaWxzMzdfX2NtX2ludHJpbnNpY19p bXBsX3N2bV9zY2F0dGVyX3dyaXRlSWlMaTFFCi0gZGVjbGFyZSB2b2lkIEBsbHZtLmdlbnguc3Zt LnNjYXR0ZXIudjFpMS52MWk2NC52MWkzMig8MSB4IGkxPiwgaTMyLCA8MSB4IGk2ND4sIDwxIHgg aTMyPikgIzI3Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dp dGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0 ICFkYmcgITE2NDUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VU XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NDUgewotICAgJTMgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwg YWxpZ24gMQotQEAgLTg4NzksNyArODg3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0g ICAlNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU0IHRvIGk4KiwgIWRiZyAhMTY0 NwotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITE2NDcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24g MzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NDcsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotKyAgJTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4 Ci0gICByZXQgaTEgJTksICFkYmcgITE2NDkKLSB9Ci0gCi1AQCAtODg4Nyw3ICs4ODg3LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUKLSBkZWNsYXJlIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pNjQoaTgqIG5vY2FwdHVyZSB3cml0ZW9ubHksIGk4KiBub2NhcHR1cmUgcmVhZG9ubHks IGk2NCwgaTEpICMzMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8y MnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1IGNv bWRhdCAhZGJnICExNjUwIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2Rp bmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjUwIHsKLSAgICUzID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxp Z24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIsIGFsaWduIDEKLUBAIC04ODk2LDEyICs4ODk2LDEyIEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dy aXRlCi0gICAlNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU0IHRvIGk4KiwgIWRi ZyAhMTY1MgotICAgJTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NTIKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCog YWxpZ24gMzIgJTcsIGk4KiBhbGlnbiAzMiAlOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NTIsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotKyAgJTkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTUpLCAhZGJn ICExNjUzCi0gICByZXQgaTEgJTksICFkYmcgITE2NTQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2 NTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2NTUgewotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAg JTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiwgYWxpZ24g MQotQEAgLTg5MjQsNyArODkyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMjIg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITE2NTcKLSAg ICUyMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1 NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAl MjIsIGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjU3LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotKyAgJTI0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlNiksICFkYmcgITE2NTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUs ICFkYmcgITE2NTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTg5MzIsNyArODkzMiw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNyB0 byBpOCosICFkYmcgITE2NjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICU4KSwgIWRi ZyAhMTY2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSAgIGJyIGkxICUyOSwg bGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITE2NjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC04OTQwLDcg Kzg5NDAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTMyID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTkgdG8gaTgqLCAhZGJnICExNjY1Ci0gICAlMzMgPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjUKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBpOCogYWxpZ24g MzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2NSwgIXRiYWEuc3RydWN0ICExOTcK LS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0rICAlMzQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxMCksICFk YmcgITE2NjYKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcgITE2NjcK LSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlMzAKLUBAIC04OTQ4LDcgKzg5NDgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTExIHRvIGk4KiwgIWRi ZyAhMTY2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgq IGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcg ITE2NjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITE2NzAK LSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKSBhbGlnbiAxICUxMiksICFkYmcgITE2NzAKLSAgIGJyIGkxICUzOSwgbGFiZWwg JTYwLCBsYWJlbCAlNDAsICFkYmcgITE2NzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC04OTU2LDcgKzg5NTYs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgJTQzID0gYml0Y2FzdCAlY2xh c3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjczCi0gICBjYWxsIHZvaWQgQGxs dm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0 MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl NDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxICUxNCksICFkYmcgITE2NzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl NDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxNCksICFkYmcg ITE2NzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITE2NzUKLSAK LSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJl ZHMgPSAlNDAKLUBAIC04OTY0LDcgKzg5NjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgot ICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE1IHRvIGk4KiwgIWRiZyAh MTY3NwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAh ZGJnICExNjc3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NzcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSsg ICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxICUxNiksICFkYmcgITE2NzgKLSAgIGJyIGkxICU0OSwgbGFiZWwgJTYw LCBsYWJlbCAlNTAsICFkYmcgITE2NzkKLSAKLSA7IDxsYWJlbD46NTA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC04OTcyLDcgKzg5NzIsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMTY4MQotICAgJTUzID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjgxCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1Mywg aTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxICUxOCksICFkYmcgITE2ODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUxOCksICFkYmcgITE2 ODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITE2ODMKLSAKLSA7 IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlNTAKLUBAIC04OTgwLDcgKzg5ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAg JTU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAhMTY4 NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJn ICExNjg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWdu IDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2ODUs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0rICAl NTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJnICEx NjgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAgLTg5 ODksNyArODk4OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNjg4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjg4 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwMTUs NyArOTAxNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ aTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNjk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjk3IHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNDEsNyAr OTA0MSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNzA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzA2IHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwNjcsNyArOTA2 Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzE1IHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkwOTMsNyArOTA5Myw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzI0IHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxMTksNyArOTExOSw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXgxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEx NzMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzMzIHsKLSAgICU0ID0gYWxs b2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTgg JTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNDUsNyArOTE0NSw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXkxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQy IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzQyIHsKLSAgICU0ID0gYWxsb2Nh IGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAs IGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTkxNzEsNyArOTE3MSw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1VuaWZvCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotICAgJTQgPSBhbGxvY2Eg aTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwg aTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAwMTMsNyArMTAwMTMsNyBAQCBkZWZp bmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVfb2NsSVB2RUVOU18x OFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA2MSB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRf VDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjA2MSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtMTAwMzYs NyArMTAwMzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIyID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJnICEyMDYzCi0gICAlMjMgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjMKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxp Z24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2MywgIXRiYWEuc3RydWN0ICEx OTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNjQKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTYpLCAh ZGJnICEyMDY0Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICEyMDY1 Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMKLUBAIC0xMDA0NCw3ICsxMDA0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNyB0byBpOCosICFk YmcgITIwNjcKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMjA2NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4 KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJn ICEyMDY3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUy NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMjA2OAot KyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjgKLSAgIGJyIGkxICUyOSwgbGFiZWwgJTYw LCBsYWJlbCAlMzAsICFkYmcgITIwNjkKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDA1Miw3ICsxMDA1Miw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNzEKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3MQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDcxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICUxMCksICFkYmcgITIwNzIKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3 MgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMjA3MwotIAotIDsg PGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICUzMAotQEAgLTEwMDYwLDcgKzEwMDYwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAg ICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBpOCosICFkYmcgITIw NzUKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMjA3NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc1 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDc2Ci0rICAl MzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDc2Ci0gICBiciBpMSAlMzksIGxhYmVsICU2MCwg bGFiZWwgJTQwLCAhZGJnICEyMDc3Ci0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwNjgsNyArMTAwNjgsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3OQotICAgJTQzID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc5Ci0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0Mywg aTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICUxNCksICFkYmcgITIwODAKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNCksICFkYmcgITIw ODAKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITIwODEKLSAKLSA7 IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlNDAKLUBAIC0xMDA3Niw3ICsxMDA3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0g ICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8gaTgqLCAhZGJnICEy MDgzCi0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITIwODMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxp Z24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4 MywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA4NAotKyAg JTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA4NAotICAgYnIgaTEgJTQ5LCBsYWJlbCAlNjAs IGxhYmVsICU1MCwgIWRiZyAhMjA4NQotIAotIDsgPGxhYmVsPjo1MDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDg0LDcgKzEwMDg0LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODcKLSAgICU1MyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4NwotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDg3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSAlMTgpLCAhZGJnICEyMDg4Ci0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUx LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTgpLCAhZGJnICEy MDg4Ci0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEyMDg5Ci0gCi0g OyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTUwCi1AQCAtMTAwOTIsNyArMTAwOTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgot ICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAh MjA5MQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAh ZGJnICEyMDkxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIw OTEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1Niwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICEyMDkyCi0r ICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA5MgotICAgYnIgbGFiZWwgJTYwLCAhZGJn ICEyMDg5Ci0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAg LTEwMTAxLDcgKzEwMTAxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIwOTQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIwOTQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt MTAxMjcsNyArMTAxMjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjEwMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MjEwMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0x MDE1Myw3ICsxMDE1Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTEyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEy MTEyIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEw MTc5LDcgKzEwMTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIx MjEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAy MDUsNyArMTAyMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjEzMCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEz MCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIz MSw3ICsxMDIzMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTM5IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTM5 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjU3 LDcgKzEwMjU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNDggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDgg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyODMs NyArMTAyODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3 IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9pc3BjL3RlbXBsYXRlIGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCmluZGV4IDlj M2FjYjQyYTljZi4uNjhmZWQ1YTRjNjU5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lzcGMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9pc3BjL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdpc3BjJwogcGtnbmFtZT1pc3BjCi12ZXJzaW9uPTEuMTUuMAotcmV2aXNp b249MgordmVyc2lvbj0xLjE3LjAKK3JldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRf c3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5B QkxFRD1PRkYiCitjb25maWd1cmVfYXJncz0iLURJU1BDX05PX0RVTVBTPU9OIC1EQVJNX0VOQUJM RUQ9T0ZGIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIgogaG9zdG1ha2VkZXBlbmRzPSJjbGFu ZyBjbGFuZy10b29scy1leHRyYSBweXRob24zIG00IGJpc29uIGZsZXggbGx2bSIKIG1ha2VkZXBl bmRzPSJuY3Vyc2VzLWRldmVsIG5jdXJzZXMtbGlidGluZm8tZGV2ZWwgemxpYi1kZXZlbCIKIHNo b3J0X2Rlc2M9IkNvbXBpbGVyIGZvciBoaWdoLXBlcmZvcm1hbmNlIFNJTUQgcHJvZ3JhbW1pbmcg b24gdGhlIENQVSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iQW5kcmVhIEJyYW5jYWxl b25pIDxhYmNAcG9tcGVsLm1lPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJo dHRwczovL2lzcGMuZ2l0aHViLmlvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vaXNw Yy9pc3BjL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MjY1OGZmMDBkYzA0 NWFjOWZjZWZiZjZiZDI2ZGZmYWY3MjNiMDU5YTk0MmEyN2RmOTFiYmI2MWJjNTAzYTI4NQorY2hl Y2tzdW09MzdmYjEwNTVkNmM2YjIzMmUxMTJkOGQ1MDE0NWQ3MjY4MjRlZDRkOGRhOTNhNzM5NjMx NWRjZWJhNmM3NmU2Mgogbm9jcm9zcz15ZXMKIG5vcGllPXllcwogCgpGcm9tIDRlZWY2OTIxM2Y2 M2U3N2U0YjU4MmE1ZjY1YzYxZjU1ZGU0ZjM3NDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDIxOjQ3OjI0ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAxNy8zMF0gemlnOiB1cGRhdGUgdG8gMC45LjEuCgotLS0KIC4uLi8wMDAxLXN0ZC5idWls ZC1maXgtaGFuZGxpbmctb2YtRGNwdS5wYXRjaCB8IDQ4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Y3BrZ3MvemlnL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIDIg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3ppZy9wYXRjaGVzLzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGlu Zy1vZi1EY3B1LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0 ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5wYXRjaCBiL3NyY3BrZ3MvemlnL3BhdGNoZXMv MDAwMS1zdGQuYnVpbGQtZml4LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDQxMDFmMjQ0NTliYi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv emlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1Gcm9tIDFlOGNkYWNlN2FkMzI0YTQyMjI4YWVi NWNkNmViOGRkMTU0Mjk0MTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJc2FhYyBG cmV1bmQgPGlmcmV1bmRAaWZyZXVuZC54eXo+Ci1EYXRlOiBUdWUsIDIxIFNlcCAyMDIxIDIxOjA2 OjEwICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN0ZC5idWlsZDogZml4IGhhbmRsaW5nIG9mIC1E Y3B1Ci0KLUN1cnJlbnRseSAtRGNwdSBpcyBjb21wbGV0ZWx5IGlnbm9yZWQgaWYgLUR0YXJnZXQg aXNuJ3QgcGFzc2VkIGFzIHdlbGwuCi1GdXJ0aGVyLCAtRGNwdT1iYXNlbGluZSBpcyBpZ25vcmVk IGV2ZW4gaWYgLUR0YXJnZXQ9bmF0aXZlIGlzIHBhc3NlZC4KLQotVGhpcyBwYXRjaCBmaXhlcyB0 aGVzZSAyIGlzc3VlcywgYWx3YXlzIHJlc3BlY3RpbmcgdGhlIC1EY3B1IG9wdGlvbiBpZgotcHJl c2VudC4KLS0tLQotIGxpYi9zdGQvYnVpbGQuemlnIHwgMTMgKysrKysrKy0tLS0tLQotIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9saWIvc3RkL2J1aWxkLnppZyBiL2xpYi9zdGQvYnVpbGQuemlnCi1pbmRleCA5YjdlYmIxZjQu LmUzOTg1MjlmOSAxMDA2NDQKLS0tLSBhL2xpYi9zdGQvYnVpbGQuemlnCi0rKysgYi9saWIvc3Rk L2J1aWxkLnppZwotQEAgLTY4NSw3ICs2ODUsMTEgQEAgcHViIGNvbnN0IEJ1aWxkZXIgPSBzdHJ1 Y3QgewotICAgICAgICAgKTsKLSAgICAgICAgIGNvbnN0IG1jcHUgPSBzZWxmLm9wdGlvbihbXWNv bnN0IHU4LCAiY3B1IiwgIlRhcmdldCBDUFUiKTsKLSAKLS0gICAgICAgIGNvbnN0IHRyaXBsZSA9 IG1heWJlX3RyaXBsZSBvcmVsc2UgcmV0dXJuIGFyZ3MuZGVmYXVsdF90YXJnZXQ7Ci0rICAgICAg ICBpZiAobWF5YmVfdHJpcGxlID09IG51bGwgYW5kIG1jcHUgPT0gbnVsbCkgewotKyAgICAgICAg ICAgIHJldHVybiBhcmdzLmRlZmF1bHRfdGFyZ2V0OwotKyAgICAgICAgfQotKwotKyAgICAgICAg Y29uc3QgdHJpcGxlID0gbWF5YmVfdHJpcGxlIG9yZWxzZSAibmF0aXZlIjsKLSAKLSAgICAgICAg IHZhciBkaWFnczogQ3Jvc3NUYXJnZXQuUGFyc2VPcHRpb25zLkRpYWdub3N0aWNzID0gLnt9Owot ICAgICAgICAgY29uc3Qgc2VsZWN0ZWRfdGFyZ2V0ID0gQ3Jvc3NUYXJnZXQucGFyc2UoLnsKLUBA IC0yNDUxLDExICsyNDU1LDggQEAgcHViIGNvbnN0IExpYkV4ZU9ialN0ZXAgPSBzdHJ1Y3Qgewot IAotICAgICAgICAgICAgIGlmIChwb3B1bGF0ZWRfY3B1X2ZlYXR1cmVzLmVxbChjcm9zcy5jcHUu ZmVhdHVyZXMpKSB7Ci0gICAgICAgICAgICAgICAgIC8vIFRoZSBDUFUgbmFtZSBhbG9uZSBpcyBz dWZmaWNpZW50LgotLSAgICAgICAgICAgICAgICAvLyBJZiBpdCBpcyB0aGUgYmFzZWxpbmUgQ1BV LCBubyBjb21tYW5kIGxpbmUgYXJncyBhcmUgcmVxdWlyZWQuCi0tICAgICAgICAgICAgICAgIGlm IChjcm9zcy5jcHUubW9kZWwgIT0gc3RkLlRhcmdldC5DcHUuYmFzZWxpbmUoY3Jvc3MuY3B1LmFy Y2gpLm1vZGVsKSB7Ci0tICAgICAgICAgICAgICAgICAgICB0cnkgemlnX2FyZ3MuYXBwZW5kKCIt bWNwdSIpOwotLSAgICAgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZChjcm9zcy5j cHUubW9kZWwubmFtZSk7Ci0tICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgdHJ5 IHppZ19hcmdzLmFwcGVuZCgiLW1jcHUiKTsKLSsgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdz LmFwcGVuZChjcm9zcy5jcHUubW9kZWwubmFtZSk7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAgICAgdmFyIG1jcHVfYnVmZmVyID0gc3RkLkFycmF5TGlzdCh1OCkuaW5pdChi dWlsZGVyLmFsbG9jYXRvcik7Ci0gCi0tLSAKLTIuMzMuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dz L3ppZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvemlnL3RlbXBsYXRlCmluZGV4IDcyOGM1YTY0ZTlkZi4u NDgzMmM4OTM4MTYwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ppZy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3ppZy90ZW1wbGF0ZQpAQCAtMSwxNyArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn emlnJwogcGtnbmFtZT16aWcKLXZlcnNpb249MC44LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249MC45 LjEKK3JldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIgogYnVpbGRfc3R5bGU9Y21h a2UKIG1ha2VfY21kPW1ha2UKLW1ha2VkZXBlbmRzPSJjbGFuZyBsbHZtMTIgbGxkLWRldmVsIgor bWFrZWRlcGVuZHM9ImNsYW5nIGxsdm0xMyBsbGQtZGV2ZWwiCiBzaG9ydF9kZXNjPSJQcm9ncmFt bWluZyBsYW5ndWFnZSBkZXNpZ25lZCBmb3Igcm9idXN0bmVzcywgb3B0aW1hbGl0eSwgYW5kIGNs YXJpdHkiCiBtYWludGFpbmVyPSJJc2FhYyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPiIK IGxpY2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwczovL3ppZ2xhbmcub3JnIgogZGlzdGZpbGVz PSJodHRwczovL3ppZ2xhbmcub3JnL2Rvd25sb2FkLyR7dmVyc2lvbn0vemlnLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09OGM0MjhlMTRhMGE4OWNiN2ExNWE2NzY4NDI0YTM3NDQyMjkyODU4 Y2RiNjk1ZTJlYjUwM2ZhM2M3YmY0N2YxYQorY2hlY2tzdW09MzhjZjRlODQ0ODFmNWZhY2M3NjZi YTcyNzgzZTc0NjJlMDhkNmQyOWE1ZDQ3ZTNiNzVjOGVlMzE0MjQ4NTIxMAogbm9waWU9eWVzCiBu b2Nyb3NzPXllcwogCgpGcm9tIGVhNzU2YzQ1NmMxMTEyN2JhYjYyNWYzZjI4NDBmMTUxMDY3NTVi ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIw Q2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IEZlYiAy MDIyIDIxOjUyOjA3ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOC8zMF0gYmVpZ25ldDogcmVtb3Zl IHBhY2thZ2UKCi0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaCAgICAg ICAgIHwgIDIyIC0KIC4uLjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRj aCB8IDEzNCAtLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCAgICAgICAg ICB8ICAzMyAtCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2ggICAgICAgICAg fCAgNTYgLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaCAgICAgICAgICB8 IDExMSAtLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaCAgICAgICAgICB8 IDM0NyAtLS0tLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2ggICAgICAg ICAgfCA5MzcgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZt MTIucGF0Y2ggICAgICAgICAgfCAxMTUgLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNs LnBhdGNoICAgICAgICAgICAgfCAgMTEgLQogc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgIHwgIDIyIC0KIHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSAtCiBzcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUg ICAgICAgICAgICAgfCAgIDEgKwogMTIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDE3 ODkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNo ZXMvY2xfdWludC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9iZWlnbmV0L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2NsX3VpbnQucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmJhMDBmMDRlOTUuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjIgKzAsMCBAQAotLS0tIGEvc3JjL2NsX2FwaV9rZXJuZWwuYwkyMDE3LTA5LTIy IDEwOjA1OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGIvc3JjL2NsX2FwaV9rZXJuZWwuYwkyMDIw LTAzLTI0IDE4OjI3OjQwLjE4NjQ4NTg4NyArMDEwMAotQEAgLTE1MSw3ICsxNTEsNyBAQAotICAg ICAgICAgZml4ZWRfbG9jYWxfc3pbMF0gPSAxNjsKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6WzFd ID0gMTsKLSAgICAgICB9IGVsc2UgewotLSAgICAgICAgdWludCBqLCBtYXhEaW1TaXplID0gNjQg LyogZnJvbSA2ND8gKi8sIG1heEdyb3VwU2l6ZSA9IDI1NjsgLy9NQVhfV09SS19HUk9VUF9TSVpF IG1heSB0b28gbGFyZ2UKLSsgICAgICAgIGNsX3VpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZy b20gNjQ/ICovLCBtYXhHcm91cFNpemUgPSAyNTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkg dG9vIGxhcmdlCi0gICAgICAgICBzaXplX3QgcmVhbEdyb3VwU2l6ZSA9IDE7Ci0gICAgICAgICBm b3IgKGkgPSAwOyBpIDwgd29ya19kaW07IGkrKykgewotICAgICAgICAgICBmb3IgKGogPSBtYXhE aW1TaXplOyBqID4gMTsgai0tKSB7Ci0tLS0gYS9zcmMvY2xfZW5xdWV1ZS5jCTIwMTctMDktMjIg MTA6MDU6MjIuMDAwMDAwMDAwICswMjAwCi0rKysgYi9zcmMvY2xfZW5xdWV1ZS5jCTIwMjAtMDMt MjQgMTg6MzA6MTIuMDMxNDc5ODMzICswMTAwCi1AQCAtNDk0LDcgKzQ5NCw3IEBACi0gY2xfaW50 IGNsX2VucXVldWVfc3ZtX2ZyZWUoZW5xdWV1ZV9kYXRhICpkYXRhLCBjbF9pbnQgc3RhdHVzKSB7 Ci0gICBpbnQgaTsKLSAgIHZvaWQgKipwb2ludGVycyA9IGRhdGEtPnBvaW50ZXJzOwotLSAgdWlu dCBudW1fc3ZtX3B0cnMgPSBkYXRhLT5zaXplOwotKyAgY2xfdWludCBudW1fc3ZtX3B0cnMgPSBk YXRhLT5zaXplOwotICAgY2xfaW50IGVyciA9IENMX1NVQ0NFU1M7Ci0gCi0gICBpZiAoc3RhdHVz ICE9IENMX0NPTVBMRVRFKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvZTFi MjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaCBiL3NyY3BrZ3MvYmVp Z25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZTllNmUyZjA5My4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1 NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAot RnJvbSBlMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogIlJlYmVjY2EgTi4gUGFsbWVyIiA8cmViZWNjYV9wYWxtZXJA em9oby5jb20+Ci1EYXRlOiBTYXQsIDIxIEp1bCAyMDE4IDIwOjA1OjU0ICswMTAwCi1TdWJqZWN0 OiBBZGQgcHJlbGltaW5hcnkgTExWTSA3IHN1cHBvcnQKLQotVGhpcyBpcyBwcmVsaW1pbmFyeSBi ZWNhdXNlIExMVk0gNyBoYXMgbm90IGJlZW4gcmVsZWFzZWQgeWV0OgotaXQgd2FzIHRlc3RlZCB3 aXRoIHRoZSBzbmFwc2hvdCBmcm9tIERlYmlhbiBleHBlcmltZW50YWwgKHN2bjMzNjg5NCkuCi0K LTEuQ2hhbmdlIGxpbmtpbmcgb3JkZXIsIGFzIGNsYW5nQ29kZUdlbiBub3cgbGlua3MgdG8gY2xh bmdGcm9udGVuZAotMi5QYXNzIHJlZmVyZW5jZXMgbm90IHBvaW50ZXJzIHRvIFdyaXRlQml0Y29k ZVRvRmlsZSBhbmQgQ2xvbmVNb2R1bGUKLTMuQWRkIHRoZSBoZWFkZXJzIHRoYXQgTG9vcFNpbXBs aWZ5SUQsIExDU1NBSUQgYW5kCi1zb21lIGNyZWF0ZSpQYXNzIGhhdmUgbW92ZWQgdG8KLTQuRGVm aW5lIG91ciBERUJVRyB3aGV0aGVyIG9yIG5vdCB3ZSBqdXN0IHVuZGVmaW5lZCBMTFZNJ3MKLSh0 aGVpcnMgaXMgbm93IExMVk1fREVCVUcsIGJ1dCB3ZSBuZXZlciBhY3R1YWxseSB1c2UgaXQpCi0K LVNpZ25lZC1vZmYtYnk6IFJlYmVjY2EgTi4gUGFsbWVyIDxyZWJlY2NhX3BhbG1lckB6b2hvLmNv bT4KLVJldmlld2VkLWJ5OiBZYW5nIFJvbmcgPHJvbmcuci55YW5nQGludGVsLmNvbT4KLS0tLQot IENNYWtlL0ZpbmRMTFZNLmNtYWtlICAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gYmFja2Vu ZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAgICAgICB8IDggKysrKysrKysKLSBiYWNrZW5k L3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwICAgICAgICAgIHwgNCArKysrCi0gYmFja2VuZC9zcmMv bGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcCB8IDIgKy0KLSBiYWNrZW5kL3NyYy9sbHZtL2xs dm1fYml0Y29kZV9saW5rLmNwcCAgIHwgNCArKysrCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2lu Y2x1ZGVzLmhwcCAgICAgICB8IDQgKysrKwotIDYgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtl IGIvQ01ha2UvRmluZExMVk0uY21ha2UKLWluZGV4IDU0NTdmMjQuLmY4ODI1ODkgMTAwNjQ0Ci0t LS0gYS9DTWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBA IC0xMTMsMTAgKzExMywxMCBAQCBtYWNybyhhZGRfb25lX2xpYiBuYW1lKQotIGVuZG1hY3JvKCkK LSAKLSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotK2FkZF9v bmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotIGFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikKLSBh ZGRfb25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLSBhZGRfb25lX2xpYigiY2xhbmdEcml2 ZXIiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotIGFkZF9vbmVfbGliKCJjbGFuZ1Nl bWEiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRlbmQiKQotIGFkZF9v bmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tlcnMiKQotZGlmZiAtLWdpdCBhL2JhY2tl bmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwIGIvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5f cHJvZ3JhbS5jcHAKLWluZGV4IDI3NGM5OWMuLjQxNTkyMzQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5k L3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9n ZW5fcHJvZ3JhbS5jcHAKLUBAIC00NTQsNyArNDU0LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICNp ZmRlZiBHQkVfQ09NUElMRVJfQVZBSUxBQkxFCi0gICAgICAgc3RkOjpzdHJpbmcgc3RyOwotICAg ICAgIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSBPUyhzdHIpOwotKyNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgPj0gNwotKyAgICAgIGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgqKChsbHZtOjpNb2R1 bGUqKXByb2ctPm1vZHVsZSksIE9TKTsKLSsjZWxzZQotICAgICAgIGxsdm06OldyaXRlQml0Y29k ZVRvRmlsZSgobGx2bTo6TW9kdWxlKilwcm9nLT5tb2R1bGUsIE9TKTsKLSsjZW5kaWYKLSAgICAg ICBzdGQ6OnN0cmluZyYgYmluX3N0ciA9IE9TLnN0cigpOwotICAgICAgIGludCBsbHN6ID0gYmlu X3N0ci5zaXplKCk7Ci0gICAgICAgKmJpbmFyeSA9IChjaGFyICopbWFsbG9jKHNpemVvZihjaGFy KSAqIChsbHN6KzEpICk7Ci1AQCAtNTQ1LDcgKzU0OSwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbW9kUmVmKTsKLSAgICAgICAgIHNy YyA9IGxsdm06OnVud3JhcChtb2RSZWYpOwotICAgICAgIH0KLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SID49IDcKLSsgICAgICBsbHZtOjpNb2R1bGUqIGNsb25lID0gbGx2bTo6Q2xvbmVNb2R1bGUo KnNyYykucmVsZWFzZSgpOwotKyNlbHNlCi0gICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9IGxs dm06OkNsb25lTW9kdWxlKHNyYykucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICAgIGlmIChMTFZN TGlua01vZHVsZXMyKHdyYXAoZHN0KSwgd3JhcChjbG9uZSkpKSB7Ci0gI2VsaWYgTExWTV9WRVJT SU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgICBpZiAoTExW TUxpbmtNb2R1bGVzKHdyYXAoZHN0KSwgd3JhcChzcmMpLCBMTFZNTGlua2VyUHJlc2VydmVTb3Vy Y2VfUmVtb3ZlZCwgJmVyck1zZykpIHsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNrZW5k L3Byb2dyYW0uY3BwIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotaW5kZXggYzM3 YzU5NS4uYjM2ZjdiNCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5j cHAKLSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLUBAIC03OTQsNyArNzk0 LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgIGxsdm06OnJhd19mZF9vc3RyZWFtIG9zdHJl YW0gKGR1bXBTUElSQmluYXJ5TmFtZS5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVyciwgbGx2bTo6c3lzOjpmczo6Rl9Ob25lKTsKLSAgICAgICBpZiAoIWVy cikKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SPDcKLSAgICAgICAgIGxsdm06OldyaXRlQml0Y29k ZVRvRmlsZSgqb3V0X21vZHVsZSwgb3N0cmVhbSk7Ci0rI2Vsc2UKLSsgICAgICAgIGxsdm06Oldy aXRlQml0Y29kZVRvRmlsZSgqKm91dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbmRpZgotICAgICB9 Ci0gI2VuZGlmCi0gICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xs dm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdl SW50ZWdlcnMuY3BwCi1pbmRleCA4NTE1ZGMxLi40YWVjNDRlIDEwMDY0NAotLS0tIGEvYmFja2Vu ZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotQEAgLTk5LDggKzk5LDggQEAgdXNpbmcgbmFtZXNw YWNlIGxsdm07Ci0gCi0gI2lmZGVmIERFQlVHCi0gICAjdW5kZWYgREVCVUcKLS0gICNkZWZpbmUg REVCVUcoLi4uKQotICNlbmRpZgotKyNkZWZpbmUgREVCVUcoLi4uKQotIC8vIEJyZWFrIGluc3Ry dWN0aW9ucyB1cCBpbnRvIG5vIGxhcmdlciB0aGFuIDY0LWJpdCBjaHVua3MuCi0gc3RhdGljIGNv bnN0IHVuc2lnbmVkIGtDaHVua0JpdHMgPSA2NDsKLSBzdGF0aWMgY29uc3QgdW5zaWduZWQga0No dW5rQnl0ZXMgPSBrQ2h1bmtCaXRzIC8gQ0hBUl9CSVQ7Ci1kaWZmIC0tZ2l0IGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0 Y29kZV9saW5rLmNwcAotaW5kZXggZWY1NmU0Yy4uNGMzZTIwZSAxMDA2NDQKLS0tLSBhL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fYml0Y29kZV9saW5rLmNwcAotQEAgLTM0MCw3ICszNDAsMTEgQEAgbmFtZXNwYWNlIGdi ZQotICAgICAvKiBXZSB1c2UgYmVpZ25ldCdzIGJpdGNvZGUgYXMgZHN0IGJlY2F1c2UgaXQgd2ls bCBoYXZlIGEgbG90IG9mCi0gICAgICAgIGxhenkgZnVuY3Rpb25zIHdoaWNoIHdpbGwgbm90IGJl IGxvYWRlZC4gKi8KLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05f TUlOT1IgPj0gMzkKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgbGx2bTo6TW9k dWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06OkNsb25lTW9kdWxlKCoobGx2bTo6TW9kdWxlKilt b2QpLnJlbGVhc2UoKTsKLSsjZWxzZQotICAgICBsbHZtOjpNb2R1bGUgKiBsaW5rZWRfbW9kdWxl ID0gbGx2bTo6Q2xvbmVNb2R1bGUoKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0rI2Vu ZGlmCi0gICAgIGlmKExMVk1MaW5rTW9kdWxlczIod3JhcChjbG9uZWRMaWIpLCB3cmFwKGxpbmtl ZF9tb2R1bGUpKSkgewotICNlbHNlCi0gICAgIGNoYXIqIGVycm9yTXNnOwotZGlmZiAtLWdpdCBh L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1faW5jbHVkZXMuaHBwCi1pbmRleCAxODQ1NTNhLi5mZmNjZjAyIDEwMDY0NAotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2luY2x1ZGVzLmhwcAotQEAgLTg5LDYgKzg5LDEwIEBACi0gI2luY2x1ZGUgImxsdm0vQ29k ZUdlbi9JbnRyaW5zaWNMb3dlcmluZy5oIgotIAotICNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMv U2NhbGFyLmgiCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rI2luY2x1ZGUgImxsdm0v VHJhbnNmb3Jtcy9VdGlscy5oIgotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvSW5zdENvbWJp bmUvSW5zdENvbWJpbmUuaCIKLSsjZW5kaWYKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0FzbUluZm8u aCIKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0NvbnRleHQuaCIKLSAjaW5jbHVkZSAibGx2bS9NQy9N Q0luc3RySW5mby5oIgotLS0gCi1jZ2l0IHYxLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzg5ZTY2YzgyZGYuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Tb3VyY2U6IEFyY2ggTGludXgKLVVwc3RyZWFtOiB1 bmtub3duCi1SZWFzb246IGZpeGVzIGxsdm02IGNvbXBpbGF0aW9uCi0KLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCTIwMTctMTAtMjQgMDk6MDQ6NDguMDAwMDAwMDAwICsw MzAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE4LTAzLTE2IDE2 OjA4OjU0LjY2OTk2MzgyNCArMDIwMAotQEAgLTMyMiw3ICszMjIsMTEgQEAgbmFtZXNwYWNlIGdi ZQotICAgICBEYXRhTGF5b3V0IERMKCZtb2QpOwotICAgICAKLSAgICAgZ2JlRGlhZ25vc3RpY0Nv bnRleHQgZGM7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA2Ci0rICAgIG1vZC5nZXRDb250 ZXh0KCkuc2V0RGlhZ25vc3RpY0hhbmRsZXJDYWxsQmFjaygmZ2JlRGlhZ25vc3RpY0hhbmRsZXIs JmRjKTsKLSsjZWxzZQotICAgICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5kbGVy KCZnYmVEaWFnbm9zdGljSGFuZGxlciwmZGMpOwotKyNlbmRpZgotIAotICNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNwotICAgICBtb2Quc2V0RGF0 YUxheW91dChETCk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdW5yb2xsLmNwcAkyMDE3 LTEwLTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX3Vucm9sbC5jcHAJMjAxOC0wMy0xNiAxNjowOTo0Ny43MzY0MDM1NTcgKzAyMDAKLUBAIC0y MDUsNyArMjA1LDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgIGlmIChwYXJlbnRUcmlw Q291bnQgIT0gMCAmJiBjdXJyVHJpcENvdW50ICogcGFyZW50VHJpcENvdW50ID4gMzIpIHsKLSAg ICAgICAgICAgICAvL0Rvbid0IGNoYW5nZSB0aGUgdW5yb2xsSUQgaWYgZG9lc24ndCBmb3JjZSB1 bnJvbGwuCi0gICAgICAgICAgICAgLy9zZXRVbnJvbGxJRChwYXJlbnRMLCBmYWxzZSk7Ci0tI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0rI2lm IExMVk1fVkVSU0lPTl9NQUpPUiA+PSA2Ci0rICAgICAgICAgICAgbG9vcEluZm8uZXJhc2UocGFy ZW50TCk7Ci0rI2VsaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gMzgKLSAgICAgICAgICAgICBsb29wSW5mby5tYXJrQXNSZW1vdmVkKHBhcmVudEwpOwot ICNlbHNlCi0gICAgICAgICAgICAgTFBNLmRlbGV0ZUxvb3BGcm9tUXVldWUocGFyZW50TCk7Ci1P bmx5IGluIEJlaWduZXQtMS4zLjItU291cmNlOiBidWlsZAotCmRpZmYgLS1naXQgYS9zcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9s bHZtMDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwYzVlN2E3YzRmNy4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLUZyb20gNzVjMTUyNTk5YTdjMTczOWU2ZGFk Y2RiOWIzNzdhY2Y3ZTQ0ZDljZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBC ZWljaCA8amJlaWNoQEZyZWVCU0Qub3JnPgotRGF0ZTogV2VkLCAzMCBKYW4gMjAxOSAxMjo0Mjoz NCArMDAwMAotU3ViamVjdDogW1BBVENIXSBsYW5nL2JlaWduZXQ6IHVuYnJlYWsgd2l0aCBsbHZt ODAKLQotUmVncmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9j b21taXQvNzIxZDk1NzEzYTllCi0KLXVuYWJsZSB0byBsb2FkIC91c3IvbG9jYWwvbGliL2JlaWdu ZXQvL2xpYmdiZWludGVycC5zbyB3aGljaCBpcyBwYXJ0IG9mIHRoZSBkcml2ZXIsIHBsZWFzZSBj aGVjayEKLWxkLWVsZi5zby4xOiAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRlcnAu c286IFVuZGVmaW5lZCBzeW1ib2wgIl9aTjRsbHZtMjREaXNhYmxlQUJJQnJlYWtpbmdDaGVja3NF IgotCi1SZWdyZXNzZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2Nv bW1pdC80YTJkNThlMTZhY2MKLQotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNw cDozMDc2OjU6IGVycm9yOgotICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJbnN0 JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSAgICBe Ci1iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwOjMwODM6NTogZXJyb3I6Ci0g ICAgICB1bmtub3duIHR5cGUgbmFtZSAnVGVybWluYXRvckluc3QnCi0gICAgVGVybWluYXRvcklu c3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotICAgIF4KLQotLS0tIGEvYmFja2VuZC9z cmMvQ01ha2VMaXN0cy50eHQJMjAxNy0wOS0yMiAwODowNToyMiBVVEMKLSsrKyBiL2JhY2tlbmQv c3JjL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTY4LDYgKzE2OCw3IEBAIGFkZF9kZXBlbmRlbmNpZXMo Z2JlIGJlaWduZXRfYml0Y29kZSkKLSBlbmRpZiAoTk9UIChVU0VfU1RBTkRBTE9ORV9HQkVfQ09N UElMRVIgU1RSRVFVQUwgInRydWUiKSkKLSAKLSBhZGRfbGlicmFyeShnYmVpbnRlcnAgU0hBUkVE IGdiZV9iaW5faW50ZXJwcmV0ZXIuY3BwKQotK3RhcmdldF9saW5rX2xpYnJhcmllcyhnYmVpbnRl cnAgJHtMTFZNX01PRFVMRV9MSUJTfSkKLSAKLSBpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZFUlNJ T05fRVFVQUwgMzQpCi0gICBmaW5kX2xpYnJhcnkoVEVSTUlORk8gTkFNRVMgdGluZm8gbmN1cnNl cykKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAxNy0xMC0y NCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5j cHAKLUBAIC0zMDczLDE0ICszMDczLDIyIEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAKLSAgIHN0YXRp YyB1bnNpZ25lZCBnZXRDaGlsZE5vKEJhc2ljQmxvY2sgKmJiKSB7Ci0rI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiA8IDgKLSAgICAgVGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRv cigpOwotKyNlbHNlCi0rICAgIEluc3RydWN0aW9uICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3Io KTsKLSsjZW5kaWYKLSAgICAgcmV0dXJuIHRlcm0tPmdldE51bVN1Y2Nlc3NvcnMoKTsKLSAgIH0K LSAKLSAgIC8vIHJldHVybiBOVUxMIGlmIGluZGV4IG91dC1yYW5nZSBvZiBjaGlsZHJlbiBudW1i ZXIKLSAgIHN0YXRpYyBCYXNpY0Jsb2NrICpnZXRDaGlsZFBvc3NpYmxlKEJhc2ljQmxvY2sgKmJi LCB1bnNpZ25lZCBpbmRleCkgewotIAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0gICAg IFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQotKyAg ICBJbnN0cnVjdGlvbiAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0gICAg IHVuc2lnbmVkIGNoaWxkTm8gPSB0ZXJtLT5nZXROdW1TdWNjZXNzb3JzKCk7Ci0gICAgIEJhc2lj QmxvY2sgKmNoaWxkID0gTlVMTDsKLSAgICAgaWYoaW5kZXggPCBjaGlsZE5vKSB7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggYi9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFj YWVjZWFiYjZkZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xs dm0wOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi1Tb3VyY2U6IEZyZWVC U0QgKyBxNjYKLQotTW9zdGx5IEZyZWVCU0Qgb3RoZXIgdGhhbiBGaW5kTExWTS5jbWFrZSBjaGFu Z2VzLgotTGlua2luZyBhZ2FpbnN0IGNsYW5nLWNwcCBkb2VzIG5vdCB3b3JrIGZvciB1cy4KLQot LS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1A QCAtMTQwLDYgKzE0MCw3IEBAIGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29yZSIp Ci0gYWRkX29uZV9saWIoImNsYW5nQW5hbHlzaXMiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0VkaXQi KQotIGFkZF9vbmVfbGliKCJjbGFuZ0FTVCIpCi0rYWRkX29uZV9saWIoImNsYW5nQVNUTWF0Y2hl cnMiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1BhcnNlIikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1h IikKLSBhZGRfb25lX2xpYigiY2xhbmdMZXgiKQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2ludHJpbnNpY19sb3dlcmluZy5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAtNzcsNyArNzcs MTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBhcmFt VHlzOwotICAgICAgICAgZm9yIChWYWx1ZSoqIEkgPSBBcmdCZWdpbjsgSSAhPSBBcmdFbmQ7ICsr SSkKLSAgICAgICAgICAgUGFyYW1UeXMucHVzaF9iYWNrKCgqSSktPmdldFR5cGUoKSk7Ci0rI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAg ICAgICBGdW5jdGlvbkNhbGxlZSBGQ2FjaGUgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKE5ld0Zu LAotKyNlbHNlCi0gICAgICAgICBDb25zdGFudCogRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRGdW5j dGlvbihOZXdGbiwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRnVuY3Rpb25UeXBlOjpnZXQoUmV0VHksIFBhcmFtVHlzLCBmYWxzZSkpOwotIAotICAg ICAgICAgSVJCdWlsZGVyPD4gQnVpbGRlcihDSS0+Z2V0UGFyZW50KCksIEJhc2ljQmxvY2s6Oml0 ZXJhdG9yKENJKSk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3Bw CTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2Ft cGxlcl9maXguY3BwCi1AQCAtODIsNyArODIsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAg ICAgIE1vZHVsZSAqTSA9IEktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7 Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUw Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkw Ci0rICAgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1 bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgw KS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0t PmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJ LT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICNlbHNlCi0gICAgICAgICAg IFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3Nh bXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0 cik7Ci0gI2VuZGlmCi1AQCAtMTI0LDcgKzEyOCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAg ICAgICAgTW9kdWxlICpNID0gSS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQo KTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g NTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g OTAKLSsgICAgICAgICAgRnVuY3Rpb25DYWxsZWUgc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0 RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5k KDApLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0g TS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHks IEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgICAg ICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xf c2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpLCBudWxs cHRyKTsKLSAjZW5kaWYKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3Bw CTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJv ZmlsaW5nLmNwcAotQEAgLTE2MywxMCArMTYzLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICAv LyBfX2dlbl9vY2xfc3RvcmVfdGltZXN0YW1wKGludCBudGgsIGludCB0eXBlKTsKLSAgICAgICBW YWx1ZSAqQXJnc1syXSA9IHtDb25zdGFudEludDo6Z2V0KGludFR5LCBwb2ludE51bSsrKSwgQ29u c3RhbnRJbnQ6OmdldChpbnRUeSwgcHJvZmlsaW5nVHlwZSl9OwotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgIGJ1aWxkZXItPkNy ZWF0ZUNhbGwobW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgICAgYnVp bGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0 RnVuY3Rpb24oCi0rI2VuZGlmCi0gICAgICAgICAgICAgICAiX19nZW5fb2NsX2NhbGNfdGltZXN0 YW1wIiwgVHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAg ICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSsjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAg ICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSks Ci0rI2Vsc2UKLSAgICAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+ Z2V0Q29udGV4dCgpKSkpLAotKyNlbmRpZgotICAgICAgICAgICAgICAgQXJyYXlSZWY8VmFsdWUq PihBcmdzKSk7Ci0gI2Vsc2UKLSAgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6 RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLUBAIC0xODUsMTAgKzE5Mywx OCBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIFZhbHVlICpBcmdzMlsyXSA9IHtwcm9maWxpbmdCdWYs IENvbnN0YW50SW50OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAKLSAjaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgYnVpbGRl ci0+Q3JlYXRlQ2FsbChtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vsc2UKLSAgICAg YnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5z ZXJ0RnVuY3Rpb24oCi0rI2VuZGlmCi0gICAgICAgICAgICAgIl9fZ2VuX29jbF9zdG9yZV9wcm9m aWxpbmciLCBUeXBlOjpnZXRWb2lkVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotICAgICAgICAg ICAgIHB0clR5LAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9N SU5PUiA+PSA5MAotKyAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+ Z2V0Q29udGV4dCgpKSksCi0rI2Vsc2UKLSAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50 MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICBBcnJh eVJlZjxWYWx1ZSo+KEFyZ3MyKSk7Ci0gI2Vsc2UKLSAgICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChj YXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0tLS0gYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMTctMTAtMjQgMDY6MDQ6 NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCi1A QCAtMzk4LDggKzM5OCwxMyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgICAgIHN0ZDo6 dmVjdG9yPFR5cGUgKj4gUGFyYW1UeXM7Ci0gICAgICAgICAgICAgICBmb3IgKFZhbHVlKiogaXRl ciA9IGFyZ3MuYmVnaW4oKTsgaXRlciAhPSBhcmdzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICAg ICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjaygoKml0ZXIpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZN X1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAg ICAgICAgQ2FsbEluc3QqIG5ld0NJID0gYnVpbGRlci5DcmVhdGVDYWxsKG1vZC0+Z2V0T3JJbnNl cnRGdW5jdGlvbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19nZW5fZW5xdWV1 ZV9rZXJuZWxfc2xtIiwgRnVuY3Rpb25UeXBlOjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxzZSkp LCBhcmdzKTsKLSsjZWxzZQotICAgICAgICAgICAgICAgQ2FsbEluc3QqIG5ld0NJID0gYnVpbGRl ci5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZC0+Z2V0T3JJbnNlcnRGdW5jdGlv bigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19nZW5fZW5xdWV1ZV9rZXJuZWxf c2xtIiwgRnVuY3Rpb25UeXBlOjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxzZSkpKSwgYXJncyk7 Ci0rI2VuZGlmCi0gICAgICAgICAgICAgICBDSS0+cmVwbGFjZUFsbFVzZXNXaXRoKG5ld0NJKTsK LSAgICAgICAgICAgICAgIGRlYWRJbnNuU2V0Lmluc2VydChDSSk7Ci0gICAgICAgICAgICAgfQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoIGIvc3JjcGtn cy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA4YWFmZTQ4YTI0MGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9sbHZtMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNDcgKzAsMCBAQAotZGlmZiAt LWdpdCBDTWFrZS9GaW5kTExWTS5jbWFrZSBDTWFrZS9GaW5kTExWTS5jbWFrZQotaW5kZXggMGE1 OWU0Ny4uNmU5MDkyMyAxMDA2NDQKLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9D TWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTEwNCwyOCArMTA0LDE2IEBAIHN0cmluZyhSRUdFWCBS RVBMQUNFICIgKlxuIiAiIiBMTFZNX1NZU1RFTV9MSUJTICR7TExWTV9TWVNURU1fTElCU19PUklH fSkKLSBlbmRpZiAoTExWTV9TWVNURU1fTElCU19PUklHKQotIGVuZGlmIChMTFZNX1ZFUlNJT05f Tk9ET1QgVkVSU0lPTl9HUkVBVEVSIDM0KQotIAotKyNzb21ldGhpbmcgaGFybWxlc3MgYmVjYXVz ZSB3aGl0ZXNwYWNlIGF0IHN0YXJ0IGlzIGFuIGVycm9yCi0rc2V0KENMQU5HX0xJQlJBUklFUyAi LWxkbCIpCi0gbWFjcm8oYWRkX29uZV9saWIgbmFtZSkKLSAgIEZJTkRfTElCUkFSWShDTEFOR19M SUIKLSAgICAgTkFNRVMgJHtuYW1lfQotICAgICBQQVRIUyAke0xMVk1fTElCUkFSWV9ESVJ9IE5P X0RFRkFVTFRfUEFUSCkKLS0gIHNldChDTEFOR19MSUJSQVJJRVMgJHtDTEFOR19MSUJSQVJJRVN9 ICR7Q0xBTkdfTElCfSkKLSsgIHNldChDTEFOR19MSUJSQVJJRVMgIiR7Q0xBTkdfTElCUkFSSUVT fSAke0NMQU5HX0xJQn0iKQotKyAgbWVzc2FnZShTVEFUVVMgImNsYW5nbGlicyBuYW1lICR7bmFt ZX0gdGhpcyAke0NMQU5HX0xJQn0gYWxsICR7Q0xBTkdfTElCUkFSSUVTfSAiKQotIAl1bnNldChD TEFOR19MSUIgQ0FDSEUpCi0gZW5kbWFjcm8oKQotIAotICNBc3N1bWUgY2xhbmcgbGliIHBhdGgg c2FtZSBhcyBsbHZtIGxpYiBwYXRoCi0tYWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0tYWRk X29uZV9saWIoImNsYW5nRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlcmlhbGl6YXRp b24iKQotLWFkZF9vbmVfbGliKCJjbGFuZ0RyaXZlciIpCi0tYWRkX29uZV9saWIoImNsYW5nU2Vt YSIpCi0tYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJGcm9udGVuZCIpCi0tYWRkX29u ZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJDaGVja2VycyIpCi0tYWRkX29uZV9saWIoImNsYW5n U3RhdGljQW5hbHl6ZXJDb3JlIikKLS1hZGRfb25lX2xpYigiY2xhbmdBbmFseXNpcyIpCi0tYWRk X29uZV9saWIoImNsYW5nRWRpdCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUIikKLS1hZGRfb25l X2xpYigiY2xhbmdBU1RNYXRjaGVycyIpCi0tYWRkX29uZV9saWIoImNsYW5nUGFyc2UiKQotLWFk ZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0xleCIpCi0tYWRkX29u ZV9saWIoImNsYW5nQmFzaWMiKQotK2FkZF9vbmVfbGliKCJjbGFuZy1jcHAiKQotZGlmZiAtLWdp dCBDTWFrZUxpc3RzLnR4dCBDTWFrZUxpc3RzLnR4dAotaW5kZXggYzExYWNiYi4uMDhmNDI3ZCAx MDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4dAotQEAgLTc5 LDcgKzc5LDcgQEAgZWxzZWlmIChDT01QSUxFUiBTVFJFUVVBTCAiQ0xBTkciKQotIGVsc2VpZiAo Q09NUElMRVIgU1RSRVFVQUwgIklDQyIpCi0gICBzZXQgKENNQUtFX0NfQ1hYX0ZMQUdTICIke0NN QUtFX0NfQ1hYX0ZMQUdTfSAgLXdkMjkyOCAtV2FsbCAtZlBJQyAtZnN0cmljdC1hbGlhc2luZyAt ZnAtbW9kZWwgZmFzdCAtbXNzZTQuMSAtV2wsLUUiKQotIGVuZGlmICgpCi0tc2V0IChDTUFLRV9D WFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtc3RkPWMr KzB4IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIpCi0rc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01B S0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtV25vLWludmFsaWQtb2Zmc2V0b2Yi KQotIHNldCAoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZM QUdTfSIpCi0gc2V0IChDTUFLRV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAtREdC RV9ERUJVRz0xIikKLSBzZXQgKENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1n IC1ER0JFX0RFQlVHPTEiKQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0u Y3BwIGJhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLWluZGV4IGIzNmY3YjQuLmU2NjYw MzEgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9i YWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1AQCAtNjk0LDkgKzY5NCw5IEBAIG5hbWVz cGFjZSBnYmUgewotICNlbmRpZgotICAgICAgICAgICAgICAgICApOwotIAotKyAgICBsbHZtOjpj bDo6UmVzZXRBbGxPcHRpb25PY2N1cnJlbmNlcygpOwotICAgICBjbGFuZzo6Q29tcGlsZXJJbnZv Y2F0aW9uOjpDcmVhdGVGcm9tQXJncygqQ0ksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZhcmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29uc3Qg Y2hhcio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEaWFncyk7Ci0gICAgIC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW5zdGFuY2UKLSAgICAg Y2xhbmc6OkNvbXBpbGVySW5zdGFuY2UgQ2xhbmc7Ci1AQCAtMTI0Miw4ICsxMjQyLDcgQEAgRVhU RU5EX1FVT1RFOgotICAgICAgIC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW52b2NhdGlvbgotICAg ICAgIHN0ZDo6dW5pcXVlX3B0cjxjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uPiBDSShuZXcgY2xh bmc6OkNvbXBpbGVySW52b2NhdGlvbik7Ci0gICAgICAgcmV0dXJuIGNsYW5nOjpDb21waWxlcklu dm9jYXRpb246OkNyZWF0ZUZyb21BcmdzKCpDSSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0sCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdICsgYXJncy5z aXplKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYW5nOjpBcnJheVJlZjxjb25zdCBjaGFyKj4oYXJncyksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpYWdzKTsKLSAgICAg fQotICNlbmRpZgotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQu Y3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLWluZGV4IGM2ZmMzMGQu LjgyNDQxZDggMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQu Y3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtNTc1 LDEwICs1NzUsMTIgQEAgbmFtZXNwYWNlIGdiZQotICAgICAgICAgaGFzX2Vycm9ycyhmYWxzZSks Ci0gICAgICAgICBsZWdhY3lNb2RlKHRydWUpCi0gICAgIHsKLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gMzcKLSAgICAgICBpbml0aWFsaXplTG9vcEluZm9XcmFwcGVyUGFzc1Bhc3MoKlBhc3NS ZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZUxv b3BJbmZvUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0g I2VuZGlmCi0gICAgICAgcGFzcyA9IFBBU1NfRU1JVF9SRUdJU1RFUlM7Ci0gICAgIH0KLWRpZmYg LS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcCBiYWNrZW5kL3NyYy9s bHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi1pbmRleCBiNDcxNWIxLi44ZTc0ZjdhIDEwMDY0NAot LS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotKysrIGIvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotQEAgLTEzMCwxMCArMTMwLDEwIEBAIG5h bWVzcGFjZSBnYmUKLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlR2VuUGFzcyhpcjo6VW5p dCAmdW5pdCk7Ci0gCi0gICAvKiEgUmVtb3ZlIHRoZSBHRVAgaW5zdHJ1Y3Rpb25zICovCi0tICBs bHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAm dW5pdCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3Qg aXI6OlVuaXQgJnVuaXQpOwotIAotICAgLyohIE1lcmdlIGxvYWQvc3RvcmUgaWYgcG9zc2libGUg Ki8KLS0gIGxsdm06OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25Q YXNzKCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlv blBhc3MoKTsKLSAKLSAgIC8qISBTY2FsYXJpemUgYWxsIHZlY3RvciBvcCBpbnN0cnVjdGlvbnMg Ki8KLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyogY3JlYXRlU2NhbGFyaXplUGFzcygpOwotQEAgLTE0 MSw3ICsxNDEsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICBsbHZtOjpNb2R1bGVQYXNzKiBjcmVhdGVC YXJyaWVyTm9kdXBQYXNzKGJvb2wpOwotIAotICAgLyohIENvbnZlcnQgdGhlIEludHJpbnNpYyBj YWxsIHRvIGdlbiBmdW5jdGlvbiAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUlu dHJpbnNpY0xvd2VyaW5nUGFzcygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVJbnRy aW5zaWNMb3dlcmluZ1Bhc3MoKTsKLSAKLSAgIC8qISBQYXNzZXIgdGhlIHByaW50ZiBmdW5jdGlv biBjYWxsLiAqLwotICAgbGx2bTo6RnVuY3Rpb25QYXNzKiBjcmVhdGVQcmludGZQYXJzZXJQYXNz KGlyOjpVbml0ICZ1bml0KTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJp bnNpY19sb3dlcmluZy5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmlu Zy5jcHAKLWluZGV4IDk0ZjBjZTYuLmI1NTM5ZTkgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLUBAIC0yOSwxMiArMjksMTIgQEAKLSB1c2luZyBu YW1lc3BhY2UgbGx2bTsKLSAKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gICAgY2xhc3MgSW5zdHJpbnNp Y0xvd2VyaW5nIDogcHVibGljIEJhc2ljQmxvY2tQYXNzCi0rICAgIGNsYXNzIEluc3RyaW5zaWNM b3dlcmluZyA6IHB1YmxpYyBGdW5jdGlvblBhc3MKLSAgICAgewotICAgICBwdWJsaWM6Ci0gICAg ICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAgICAgSW5zdHJpbnNpY0xvd2VyaW5nKCkgOgotLSAgICAg ICAgQmFzaWNCbG9ja1Bhc3MoSUQpIHt9Ci0rICAgICAgICBGdW5jdGlvblBhc3MoSUQpIHt9Ci0g Ci0gICAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7 Ci0gCi1AQCAtOTMsOSArOTMsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgIENJLT5lcmFz ZUZyb21QYXJlbnQoKTsKLSAgICAgICAgIHJldHVybiBOZXdDSTsKLSAgICAgICB9Ci0tICAgICAg dmlydHVhbCBib29sIHJ1bk9uQmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikKLSsgICAgICB2aXJ0 dWFsIGJvb2wgcnVuT25GdW5jdGlvbihGdW5jdGlvbiAmRikKLSAgICAgICB7Ci0tICAgICAgICBi b29sIGNoYW5nZWRCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6 IEYpIHsKLSAgICAgICAgIE1vZHVsZSAqTSA9IEJCLmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKTsK LSAKLSAgICAgICAgIERhdGFMYXlvdXQgVEQoTSk7Ci1AQCAtMTU5LDEzICsxNTksMTQgQEAgbmFt ZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0t ICAgICAgICByZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJu IHRydWU7Ci0gICAgICAgfQotICAgICB9OwotIAotICAgICBjaGFyIEluc3RyaW5zaWNMb3dlcmlu Zzo6SUQgPSAwOwotIAotLSAgICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJp bmdQYXNzKCkgewotKyAgICBGdW5jdGlvblBhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFz cygpIHsKLSAgICAgICByZXR1cm4gbmV3IEluc3RyaW5zaWNMb3dlcmluZygpOwotICAgICB9Ci0g fSAvLyBlbmQgbmFtZXNwYWNlCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fk c3RvcmVfb3B0aW1pemF0aW9uLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29w dGltaXphdGlvbi5jcHAKLWluZGV4IDVhYTM4YmUuLmUzMTQzMDIgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotQEAgLTI2LDEzICsy NiwxMyBAQAotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIG5hbWVzcGFjZSBnYmUgewotLSAg Y2xhc3MgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uIDogcHVibGljIEJhc2ljQmxvY2tQYXNzIHsK LSsgIGNsYXNzIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBGdW5jdGlvblBhc3Mg ewotIAotICAgcHVibGljOgotICAgICBzdGF0aWMgY2hhciBJRDsKLSAgICAgU2NhbGFyRXZvbHV0 aW9uICpTRTsKLSAgICAgY29uc3QgRGF0YUxheW91dCAqVEQ7Ci0tICAgIEdlbkxvYWRTdG9yZU9w dGltaXphdGlvbigpIDogQmFzaWNCbG9ja1Bhc3MoSUQpIHt9Ci0rICAgIEdlbkxvYWRTdG9yZU9w dGltaXphdGlvbigpIDogRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICB2b2lkIGdldEFuYWx5 c2lzVXNhZ2UoQW5hbHlzaXNVc2FnZSAmQVUpIGNvbnN0IHsKLSAjaWYgTExWTV9WRVJTSU9OX01B Sk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLUBAIC00NSw3ICs0NSw5IEBAIG5h bWVzcGFjZSBnYmUgewotICAgICAgIEFVLnNldFByZXNlcnZlc0NGRygpOwotICAgICB9Ci0gCi0t ICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpIHsKLSsgICAg dmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpIHsKLSsgICAgICAgIGJvb2wg Y2hhbmdlZEFueUJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxvY2sgJkJCIDog RikgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSAzOAotICAgICAgIFNFID0gJmdldEFuYWx5c2lzPFNjYWxhckV2b2x1dGlvbldyYXBwZXJQYXNz PigpLmdldFNFKCk7Ci0gI2Vsc2UKLUBAIC01OSw3ICs2MSw5IEBAIG5hbWVzcGFjZSBnYmUgewot ICAgICAgICNlbHNlCi0gICAgICAgICBURCA9IGdldEFuYWx5c2lzSWZBdmFpbGFibGU8RGF0YUxh eW91dD4oKTsKLSAgICAgICAjZW5kaWYKLS0gICAgICByZXR1cm4gb3B0aW1pemVMb2FkU3RvcmUo QkIpOwotKyAgICAgICAgICAgY2hhbmdlZEFueUJsb2NrID0gb3B0aW1pemVMb2FkU3RvcmUoQkIp IHwgY2hhbmdlZEFueUJsb2NrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIGNoYW5nZWRB bnlCbG9jazsKLSAgICAgfQotICAgICBUeXBlICAgICpnZXRWYWx1ZVR5cGUoVmFsdWUgKmluc24p OwotICAgICBWYWx1ZSAgICpnZXRQb2ludGVyT3BlcmFuZChWYWx1ZSAqSSk7Ci1AQCAtMTQ4LDcg KzE1Miw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgIHZhbHVlcy5wdXNoX2JhY2sobWVyZ2Vk W2ldKTsKLSAgICAgfQotICAgICBMb2FkSW5zdCAqbGQgPSBjYXN0PExvYWRJbnN0PihtZXJnZWRb MF0pOwotLSAgICB1bnNpZ25lZCBhbGlnbiA9IGxkLT5nZXRBbGlnbm1lbnQoKTsKLSsgICAgTWF5 YmVBbGlnbiBhbGlnbiA9IGxkLT5nZXRBbGlnbigpOwotICAgICB1bnNpZ25lZCBhZGRyU3BhY2Ug PSBsZC0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotICAgICAvLyBpbnNlcnQgYmVmb3JlIGZp cnN0IGxvYWQKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChsZCk7Ci1AQCAtMjMxLDcgKzIz NSw3IEBAIG5hbWVzcGFjZSBnYmUgewotIAotICAgICB1bnNpZ25lZCBhZGRyU3BhY2UgPSBzdC0+ Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotIAotLSAgICB1bnNpZ25lZCBhbGlnbiA9IHN0LT5n ZXRBbGlnbm1lbnQoKTsKLSsgICAgTWF5YmVBbGlnbiBhbGlnbiA9IHN0LT5nZXRBbGlnbigpOwot ICAgICAvLyBpbnNlcnQgYmVmb3JlIHRoZSBsYXN0IHN0b3JlCi0gICAgIEJ1aWxkZXIuU2V0SW5z ZXJ0UG9pbnQobWVyZ2VkW3NpemUtMV0pOwotIAotQEAgLTMyNSw3ICszMjksNyBAQCBuYW1lc3Bh Y2UgZ2JlIHsKLSAgICAgcmV0dXJuIGNoYW5nZWQ7Ci0gICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFz cyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpIHsKLSsgIEZ1bmN0aW9uUGFzcyAq Y3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpIHsKLSAgICAgcmV0dXJuIG5ldyBHZW5M b2FkU3RvcmVPcHRpbWl6YXRpb24oKTsKLSAgIH0KLSB9OwotZGlmZiAtLWdpdCBiYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fcGFzc2VzLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAot aW5kZXggMTA3NTJhMy4uYjhmMjI4MiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9wYXNzZXMuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotQEAg LTM3LDcgKzM3LDcgQEAKLSAjaW5jbHVkZSAic3lzL21hcC5ocHAiCi0gCi0gdXNpbmcgbmFtZXNw YWNlIGxsdm07Ci0tCi0rdGVtcGxhdGUgY2xhc3MgY2ZnOjpVcGRhdGU8QmFzaWNCbG9jayAqPjsK LSBuYW1lc3BhY2UgZ2JlCi0gewotICAgYm9vbCBpc0tlcm5lbEZ1bmN0aW9uKGNvbnN0IGxsdm06 OkZ1bmN0aW9uICZGKSB7Ci1AQCAtMjE5LDEzICsyMTksMTMgQEAgbmFtZXNwYWNlIGdiZQotICAg ICByZXR1cm4gb2Zmc2V0OwotICAgfQotIAotLSAgY2xhc3MgR2VuUmVtb3ZlR0VQUGFzc3MgOiBw dWJsaWMgQmFzaWNCbG9ja1Bhc3MKLSsgIGNsYXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGlj IEZ1bmN0aW9uUGFzcwotICAgewotIAotICAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNoYXIgSUQ7 Ci0gICAgIEdlblJlbW92ZUdFUFBhc3NzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSA6Ci0tICAgICAg QmFzaWNCbG9ja1Bhc3MoSUQpLAotKyAgICAgIEZ1bmN0aW9uUGFzcyhJRCksCi0gICAgICAgdW5p dCh1bml0KSB7fQotICAgICBjb25zdCBpcjo6VW5pdCAmdW5pdDsKLSAgICAgdm9pZCBnZXRBbmFs eXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci1AQCAtMjQyLDE2ICsyNDIsMTgg QEAgbmFtZXNwYWNlIGdiZQotIAotICAgICBib29sIHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKEdl dEVsZW1lbnRQdHJJbnN0KiBHRVBJbnN0KTsKLSAKLS0gICAgdmlydHVhbCBib29sIHJ1bk9uQmFz aWNCbG9jayhCYXNpY0Jsb2NrICZCQikKLSsgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24o RnVuY3Rpb24gJkYpCi0gICAgIHsKLS0gICAgICBib29sIGNoYW5nZWRCbG9jayA9IGZhbHNlOwot KyAgICAgIGJvb2wgY2hhbmdlZEFueUJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2lj QmxvY2sgJkJCIDogRikgewotICAgICAgIGlwbGlzdDxJbnN0cnVjdGlvbj46Oml0ZXJhdG9yIEkg PSBCQi5nZXRJbnN0TGlzdCgpLmJlZ2luKCk7Ci0gICAgICAgZm9yIChhdXRvIG5leHRJID0gSSwg RSA9IC0tQkIuZ2V0SW5zdExpc3QoKS5lbmQoKTsgSSAhPSBFOyBJID0gbmV4dEkpIHsKLSAgICAg ICAgIGlwbGlzdDxJbnN0cnVjdGlvbj46Oml0ZXJhdG9yIEkgPSBuZXh0SSsrOwotICAgICAgICAg aWYoR2V0RWxlbWVudFB0ckluc3QqIGdlcCA9IGR5bl9jYXN0PEdldEVsZW1lbnRQdHJJbnN0Pigm KkkpKQotLSAgICAgICAgICBjaGFuZ2VkQmxvY2sgPSAoc2ltcGxpZnlHRVBJbnN0cnVjdGlvbnMo Z2VwKSB8fCBjaGFuZ2VkQmxvY2spOwotKyAgICAgICAgICBjaGFuZ2VkQW55QmxvY2sgPSAoc2lt cGxpZnlHRVBJbnN0cnVjdGlvbnMoZ2VwKSB8IGNoYW5nZWRBbnlCbG9jayk7Ci0gICAgICAgfQot LSAgICAgIHJldHVybiBjaGFuZ2VkQmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgcmV0dXJuIGNo YW5nZWRBbnlCbG9jazsKLSAgICAgfQotICAgfTsKLSAKLUBAIC0zNjcsNyArMzY5LDcgQEAgbmFt ZXNwYWNlIGdiZQotICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAKLS0gIEJhc2ljQmxvY2tQYXNz ICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSB7Ci0rICBGdW5jdGlv blBhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIHsKLSAgICAg cmV0dXJuIG5ldyBHZW5SZW1vdmVHRVBQYXNzcyh1bml0KTsKLSAgIH0KLSB9IC8qIG5hbWVzcGFj ZSBnYmUgKi8KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNw cCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi1pbmRleCAyYTA5N2M4Li44 NjNiZTZkIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNw cAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTMzLDEw ICszMywxMiBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgIGNsYXNzIFNhbXBsZXJGaXggOiBwdWJsaWMg RnVuY3Rpb25QYXNzIHsKLSAgIHB1YmxpYzoKLSAgICAgU2FtcGxlckZpeCgpIDogRnVuY3Rpb25Q YXNzKElEKSB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5pdGlhbGl6 ZURvbWluYXRvclRyZWVXcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lz dHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNzKCpQYXNz UmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAgICAgfQot IAotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcCBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotaW5kZXggZTlhMmE2Ni4uZTlkMmVlNCAxMDA2 NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi0rKysgYi9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotQEAgLTk2LDEwICs5NiwxMiBAQCBuYW1l c3BhY2UgZ2JlIHsKLSAKLSAgICAgU2NhbGFyaXplKCkgOiBGdW5jdGlvblBhc3MoSUQpCi0gICAg IHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9S ICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUKLSAgICAgICBpbml0aWFsaXplRG9taW5h dG9yVHJlZVdyYXBwZXJQYXNzUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7 Ci0gI2Vsc2UKLSAgICAgICBpbml0aWFsaXplRG9taW5hdG9yVHJlZVBhc3MoKlBhc3NSZWdpc3Ry eTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICB9Ci0gCi1kaWZm IC0tZ2l0IHV0ZXN0cy9DTWFrZUxpc3RzLnR4dCB1dGVzdHMvQ01ha2VMaXN0cy50eHQKLWluZGV4 IDMwMGQ4N2EuLjY0MTc5YzcgMTAwNjQ0Ci0tLS0gYS91dGVzdHMvQ01ha2VMaXN0cy50eHQKLSsr KyBiL3V0ZXN0cy9DTWFrZUxpc3RzLnR4dAotQEAgLTI2LDggKzI2LDggQEAgaWYgKE5PVCBOT1Rf QlVJTERfU1RBTkRfQUxPTkVfVVRFU1QpCi0gICAjIFRocmVhZHMKLSAgIEZpbmRfUGFja2FnZShU aHJlYWRzKQotIAotLSAgc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAk e0NNQUtFX0NfQ1hYX0ZMQUdTfSAtc3RkPWMrKzB4IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIpCi0t ICBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFH U30iKQotKyAgc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtF X0NfQ1hYX0ZMQUdTfSAtV25vLWludmFsaWQtb2Zmc2V0b2YgLWZmbG9hdC1zdG9yZSAtZm5vLXN0 cmljdC1hbGlhc2luZyIpCi0rICBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30g JHtDTUFLRV9DX0NYWF9GTEFHU30gLWZmbG9hdC1zdG9yZSAtZm5vLXN0cmljdC1hbGlhc2luZyIp ICNjb21waWxlcl97ZGVncmVlcyxyYWRpYW5zLGZ1bmN0aW9uX2FyZ3VtZW50Mn0gdXNlIGVxdWFs aXR5IGNvbXBhcmlzb24gb2YgZmxvYXRzLCBjb21waWxlcl9sb25nX2JpdGNhc3QgdXNlcyBhbGlh c2luZwotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAtREdC RV9ERUJVRz0xIikKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZPICItTzIg LWcgLURHQkVfREVCVUc9MSIpCi0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19NSU5TSVpFUkVMICAg ICAiLU9zIC1ETkRFQlVHIC1ER0JFX0RFQlVHPTAiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEx LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzNhNDI3ODk0M2MuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw5MzcgKzAsMCBAQAotU291cmNlOiBTbmVrdHJvbgotCi1UaGVyZSB3ZXJl IGEgZmV3IGNoYW5nZXMgcmVxdWlyZWQgZm9yIExMVk0gMTE6Ci0qIGxsdm06OlN0cmluZ1JlZiBy ZXF1aXJlcyAuc3RyKCksIGltcGxpY2l0IGNvbnZlcnNpb24gd2FzIHJlbW92ZWQKLSogbGx2bTo6 Q2FsbFNpdGUgd2FzIHJlbW92ZWQsIGJ1dCB0aGUgcmVxdWlyZWQgbWV0aG9kcyBhcmUgYXZhaWxh YmxlIG9uIGxsdm06OkNhbGxJbnN0Ci0qIFZlY3RvclR5SUQgd2FzIHNwbGl0IGludG8gRml4ZWRW ZWN0b3JUeUlEIGFuZCBTY2FsYWJsZVZlY3RvclR5SUQsIEZpeGVkVmVjdG9yVHlJRCB3YXMgdXNl ZAotKiBDYWxsSW5zdDo6Z2V0Q2FsbGVkVmFsdWUoKSB3YXMgcmVuYW1lZCB0byBDYWxsSW5zdDo6 Z2V0Q2FsbGVkT3BlcmFuZCgpCi0qIEltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBNYXliZUFsaWdu IHRvIEFsaWduIHdhcyByZW1vdmVkLCBzbyBNYXliZUFsaWduOjp2YWx1ZU9yT25lIHdhcyB1c2Vk IGluc3RlYWQuCi0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAky MDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9TdHJpcEF0dHJpYnV0ZXMuY3BwCTIwMjAtMTEtMDkgMTk6MDQ6MTkuNjQxODk3MTQxICswMTAw Ci1AQCAtMTA3LDkgKzEwNyw4IEBACi0gICAgICAgIEJCICE9IEU7ICsrQkIpIHsKLSAgICAgZm9y IChCYXNpY0Jsb2NrOjppdGVyYXRvciBJbnN0ID0gQkItPmJlZ2luKCksIEUgPSBCQi0+ZW5kKCk7 Ci0gICAgICAgICAgSW5zdCAhPSBFOyArK0luc3QpIHsKLS0gICAgICBDYWxsU2l0ZSBDYWxsKCYq SW5zdCk7Ci0tICAgICAgaWYgKENhbGwpCi0tICAgICAgICBDYWxsLnNldENhbGxpbmdDb252KENh bGxpbmdDb252OjpDKTsKLSsgICAgICBpZiAoQ2FsbEluc3QqIGNhbGxJbnN0ID0gZHluX2Nhc3Q8 Q2FsbEluc3Q+KCYqSW5zdCkpCi0rICAgICAgICBjYWxsSW5zdC0+c2V0Q2FsbGluZ0NvbnYoQ2Fs bGluZ0NvbnY6OkMpOwotICAgICB9Ci0gICB9Ci0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9iaXRjb2RlX2xpbmsuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE3 OjA0OjA5LjYzMzc1MzQyOCArMDEwMAotQEAgLTk4LDcgKzk4LDcgQEAKLSAgICAgICAgIGlmIChj YWxsRnVuYyAmJiBjYWxsRnVuYy0+Z2V0SW50cmluc2ljSUQoKSAhPSAwKQotICAgICAgICAgICBj b250aW51ZTsKLQotLSAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVk VmFsdWUoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICAgICAgc3RkOjpz dHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5zdHJpcFBvaW50ZXJDYXN0 cygpLT5nZXROYW1lKCkuc3RyKCk7Ci0KLSAgICAgICAgIGlmICghTUZTLmluc2VydChmbk5hbWUp LnNlY29uZCkgewotICAgICAgICAgICBjb250aW51ZTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAx MDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAyMC0x MS0wOSAxOTowMTo0OS4yMDE5MTUwMDggKzAxMDAKLUBAIC00NSw3ICs0NSw3IEBACi0gICAgICAg cmV0dXJuIE5VTEw7Ci0KLSAgICAgLyogVGhpcyBpcyBhIGZha2UsIHRvIGNoZWNrIHRoZSBmdW5j dGlvbiBiaXRjYXN0IGlzIGZvciBibG9jayBvciBub3QgKi8KLS0gICAgc3RkOjpzdHJpbmcgZm5O YW1lID0gRm4tPmdldE5hbWUoKTsKLSsgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdldE5h bWUoKS5zdHIoKTsKLSAgICAgaWYoZm5OYW1lLmZpbmQoIl9pbnZva2UiKSA9PSBzdGQ6OnN0cmlu Zzo6bnBvcykKLSAgICAgICByZXR1cm4gTlVMTDsKLQotQEAgLTExOSwxOCArMTE5LDE4IEBACi0g ICAgICAgUGFyYW1UeXMucHVzaF9iYWNrKHR5KTsKLSAgICAgfQotICAgICBGdW5jdGlvblR5cGUq IE5ld0ZUID0gRnVuY3Rpb25UeXBlOjpnZXQoRm4tPmdldFJldHVyblR5cGUoKSwgUGFyYW1UeXMs IGZhbHNlKTsKLS0gICAgRnVuY3Rpb24qIE5ld0ZuID0gRnVuY3Rpb246OkNyZWF0ZShOZXdGVCwg RnVuY3Rpb246OkV4dGVybmFsTGlua2FnZSwgRm4tPmdldE5hbWUoKSk7Ci0rICAgIEZ1bmN0aW9u KiBOZXdGbiA9IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExpbmth Z2UsIEZuLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICBTbWFsbFZlY3RvcjxSZXR1cm5JbnN0Kiwg OD4gUmV0dXJuczsKLQotICAgICBGdW5jdGlvbjo6YXJnX2l0ZXJhdG9yIE5ld0ZuQXJnSXQgPSBO ZXdGbi0+YXJnX2JlZ2luKCk7Ci0gICAgIGZvciAoRnVuY3Rpb246OmFyZ19pdGVyYXRvciBJID0g Rm4tPmFyZ19iZWdpbigpLCBFID0gRm4tPmFyZ19lbmQoKTsgSSAhPSBFOyArK0kpIHsKLS0gICAg ICBzdGQ6OnN0cmluZyBBcmdOYW1lID0gSS0+Z2V0TmFtZSgpOwotKyAgICAgIHN0ZDo6c3RyaW5n IEFyZ05hbWUgPSBJLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgTmV3Rm5BcmdJdC0+c2V0TmFt ZShBcmdOYW1lKTsKLSAgICAgICBWTWFwWyYqSV0gPSAmKCpOZXdGbkFyZ0l0KyspOwotICAgICB9 Ci0gICAgIENsb25lRnVuY3Rpb25JbnRvKE5ld0ZuLCBGbiwgVk1hcCwgLypNb2R1bGVMZXZlbENo YW5nZXM9Ki90cnVlLCBSZXR1cm5zKTsKLQotLSAgICBGbi0+c2V0TmFtZSgiX19kIiArIEZuLT5n ZXROYW1lKCkpOwotKyAgICBGbi0+c2V0TmFtZSgiX19kIiArIEZuLT5nZXROYW1lKCkuc3RyKCkp OwotICAgICBtb2QtPmdldEZ1bmN0aW9uTGlzdCgpLnB1c2hfYmFjayhOZXdGbik7Ci0gICAgIC8v bW9kLT5nZXRPckluc2VydEZ1bmN0aW9uKE5ld0ZuLT5nZXROYW1lKCksIE5ld0ZuLT5nZXRGdW5j dGlvblR5cGUoKSwKLSAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgTmV3Rm4tPmdldEF0 dHJpYnV0ZXMoKSk7Ci1AQCAtMTQ3LDcgKzE0Nyw3IEBACi0gICAgICAgYXJnVHlwZU5hbWVzLnB1 c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICJjaGFyKiIpKTsKLSAgICAgICBh cmdCYXNlVHlwZU5hbWVzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICJj aGFyKiIpKTsKLSAgICAgICBhcmdUeXBlUXVhbHMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpn ZXQoQ29udGV4dCwgIiIpKTsKLS0gICAgICBhcmdOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJp bmc6OmdldChDb250ZXh0LCBJLT5nZXROYW1lKCkpKTsKLSsgICAgICBhcmdOYW1lcy5wdXNoX2Jh Y2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCBJLT5nZXROYW1lKCkuc3RyKCkpKTsKLSAg ICAgfQotCi0gICAgIC8vSWYgcnVuIHRvIGhlcmUsIGxsdm0gdmVyc2lvbiBhbHdheXMgPiAzLjks IGFkZCB0aGUgdmVyc2lvbiBjaGVjayBqdXN0IGZvciBidWlsZC4KLUBAIC0xOTgsNyArMTk4LDcg QEAKLSAgICAgICAgICAgICogaW52b2tlIHBvaW50ZXIgdG8gc3RvcmUgdGhlIGluZGV4IGluIHRo ZSB1bml0J3MgYmxvY2sgZnVuY3Rpb25zIGluZGV4LiovCi0gICAgICAgICAgIEZ1bmN0aW9uICpG biA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0KLS0gICAgICAgICAg c3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdldE5hbWUoKTsKLSsgICAgICAgICAgc3RkOjpzdHJp bmcgZm5OYW1lID0gRm4tPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgaW50IGluZGV4ID0g LTE7Ci0gICAgICAgICAgIGZvcihzaXplX3QgaT0wOyBpPHVuaXQuYmxvY2tGdW5jcy5zaXplKCk7 IGkrKykgewotICAgICAgICAgICAgIGlmKHVuaXQuYmxvY2tGdW5jc1tpXSA9PSBmbk5hbWUpIHsK LUBAIC0yNDEsNyArMjQxLDcgQEAKLSAgICAgICAgICAgICAvL3VubmFtZWQgY2FsbCBmdW5jdGlv biwgcGFyc2UgdGhlIHVzZSB0byBmaW5kIHRoZSBkZWZpbmUgb2YgY2FsbGVkIGZ1bmN0aW9uCi0g ICAgICAgICAgICAgU21hbGxWZWN0b3I8VmFsdWUqLCAxNj4gYXJncyhDSS0+b3BfYmVnaW4oKSwg Q0ktPm9wX2VuZCgpLTEpOwotCi0tICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2FsbGVk VmFsdWUoKTsKLSsgICAgICAgICAgICBWYWx1ZSAqdiA9IENJLT5nZXRDYWxsZWRPcGVyYW5kKCk7 Ci0gICAgICAgICAgICAgQml0Q2FzdEluc3QqIGJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+KHYp OwotICAgICAgICAgICAgIGlmKGJ0ID09IE5VTEwpCi0gICAgICAgICAgICAgICBjb250aW51ZTsK LUBAIC0zMTYsNyArMzE2LDcgQEAKLSAgICAgICAgICAgICAgICAgICBDb25zdGFudEV4cHIgKmV4 cHIgPSBkeW5fY2FzdDxDb25zdGFudEV4cHI+KGMtPmdldE9wZXJhbmQoMykpOwotICAgICAgICAg ICAgICAgICAgIEJpdENhc3RJbnN0ICpidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0PihleHByLT5n ZXRBc0luc3RydWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uKiBmID0gZHlu X2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgICAgICAgICAgICBi bG9ja3Nbdl0gPSBmLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0g Zi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9 Ci0KLUBAIC0zMzIsNyArMzMyLDcgQEAKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg ICAvL2hhbmRsZSBlbnF1ZXVlX2tlcm5lbCBmdW5jdGlvbiBjYWxsCi0gICAgICAgICAgICAgRnVu Y3Rpb24gKmZuID0gQ0ktPmdldENhbGxlZEZ1bmN0aW9uKCk7Ci0tICAgICAgICAgICAgaWYgKGZu LT5nZXROYW1lKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykK LSsgICAgICAgICAgICBpZiAoZm4tPmdldE5hbWUoKS5zdHIoKS5maW5kKCJlbnF1ZXVlX2tlcm5l bCIpID09IHN0ZDo6c3RyaW5nOjpucG9zKQotICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAg ICAgICAgICAgICAvL2Jsb2NrIHBhcmFtZXRlcidzIGluZGV4LCAzIG9yIDYKLUBAIC0zNjEsNyAr MzYxLDcgQEAKLSAgICAgICAgICAgICAgICAgICBDb25zdGFudEV4cHIgKmV4cHIgPSBkeW5fY2Fz dDxDb25zdGFudEV4cHI+KGMtPmdldE9wZXJhbmQoMykpOwotICAgICAgICAgICAgICAgICAgIEJp dENhc3RJbnN0ICpidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0PihleHByLT5nZXRBc0luc3RydWN0 aW9uKCkpOwotICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uKiBmID0gZHluX2Nhc3Q8RnVuY3Rp b24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBm LT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgp LnN0cigpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgfSBlbHNlIGlmKGlzYTxBbGxvY2FJbnN0PihibG9jaykpIHsKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAyMC0x MS0wOSAxODozMzo1MC45MTkxMTQzMjcgKzAxMDAKLUBAIC0zNzYsNyArMzc2LDcgQEAKLSAgICAg ICAgICAgR0JFX0FTU0VSVChpbmRleCA9PSAwKTsKLSAgICAgICAgICAgcmV0dXJuIHRoaXMtPl9u ZXdTY2FsYXIodmFsdWUsIGtleSwgdHlwZSwgaW5kZXgsIHVuaWZvcm0pOwotICAgICAgICAgICBi cmVhazsKLS0gICAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICAgIGNhc2UgVHlw ZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgICAgewotICAgICAgICAgICBhdXRvIHZlY3RvclR5 cGUgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotICAgICAgICAgICBhdXRvIGVsZW1lbnRUeXBl ID0gdmVjdG9yVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLUBAIC03NDMsMjAgKzc0MywyMCBAQAot ICN1bmRlZiBERUNMX1ZJU0lUX0ZOCi0KLSAgICAgLy8gRW1pdCByb3VuZGluZyBpbnN0cnVjdGlv bnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdFJvdW5kaW5nQ2FsbElu c3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpOwotKyAgICB2 b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSk7 Ci0gICAgIC8vIEVtaXQgdW5hcnkgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlv bgotLSAgICB2b2lkIGVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1Ms IGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSsgICAgdm9p ZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpU eXBlID0gaXI6OlRZUEVfRkxPQVQpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9ucyBm cm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0QXRvbWljSW5zdChDYWxsSW5z dCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6QXRvbWljT3BzIG9wY29kZSk7Ci0rICAgIHZvaWQgZW1p dEF0b21pY0luc3QoQ2FsbEluc3QgJkksIGlyOjpBdG9taWNPcHMgb3Bjb2RlKTsKLSAgICAgLy8g RW1pdCB3b3JrZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZvaWQgZW1pdFdvcmtHcm91cEluc3Qo Q2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotKyAg ICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9w Y29kZSk7Ci0gICAgIC8vIEVtaXQgc3ViZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZvaWQgZW1p dFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3Bz IG9wY29kZSk7Ci0rICAgIHZvaWQgZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6Oldv cmtHcm91cE9wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9ucwot LSAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRl ICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpUWVBF X1UzMik7Ci0tICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJ LCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUg PSBpcjo6VFlQRV9VMzIpOwotKyAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2Fs bEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBpcjo6 VFlQRV9VMzIpOwotKyAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5z dCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpUWVBF X1UzMik7Ci0KLS0gICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkpOwotKyAgICB1aW50OF90IGFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkp OwotICAgICB1aW50OF90IGdldEltYWdlSUQoQ2FsbEluc3QgJkkpOwotCi0gICAgIC8vIFRoZXNl IGluc3RydWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBhdCBhbGwKLUBAIC0xMzIwLDEzICsxMzIw LDEzIEBACi0gI2VuZGlmCi0KLSAgICAgICBpZih0eXBlTmFtZU5vZGUpIHsKLS0gICAgICAgIGxs dm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5k KG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0 PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCku c3RyKCk7Ci0gICAgICAgfQotICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpIHsKLS0gICAgICAg IGxsdm1JbmZvLnR5cGVCYXNlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUt PmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICBsbHZtSW5mby50eXBl QmFzZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9w SUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgIH0KLS0gICAgICBsbHZtSW5mby50eXBl TmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKTsKLS0gICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5nPih0 eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgbGx2 bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQo b3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0rICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAo Y2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpLnN0cigpOwotICAgICAgIGJvb2wgaXNJbWFnZSA9IGxsdm1JbmZvLmlzSW1hZ2VUeXBlKCk7 Ci0gICAgICAgYm9vbCBpc1BpcGUgPSBsbHZtSW5mby5pc1BpcGVUeXBlKCk7Ci0gICAgICAgaWYg KEktPmdldFR5cGUoKS0+aXNQb2ludGVyVHkoKSB8fCBpc0ltYWdlIHx8IGlzUGlwZSkgewotQEAg LTE1MzEsNyArMTUzMSw3IEBACi0gICAgICAgICAgICAgRWx0VHkgPSBnZXRFbHRUeXBlKEVsdFR5 LCBUeXBlSW5kZXgpOwotICAgICAgICAgfQotCi0tICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1 bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpKTsKLSsg ICAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFu dChwb2ludGVyLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICAgICAgdW5zaWduZWQgaW50IGRlZk9m ZnNldCA9IGNjLmdldE9mZnNldCgpOwotICAgICAgICAgcmVsb2NzLnB1c2hfYmFjayhpcjo6UmVs b2NFbnRyeShvZmZzZXQsIGRlZk9mZnNldCArIGNvbnN0YW50T2Zmc2V0KSk7Ci0KLUBAIC0xNTQ2 LDcgKzE1NDYsNyBAQAotICAgICAgIHJldHVybjsKLSAgICAgfQotICAgICBpZiAoaXNhPEdsb2Jh bFZhcmlhYmxlPihjKSkgewotLSAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29uc3Rh bnRTZXQoKS5nZXRDb25zdGFudChjLT5nZXROYW1lKCkpOwotKyAgICAgIGlyOjpDb25zdGFudCBj YyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudChjLT5nZXROYW1lKCkuc3RyKCkp OwotICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLQotICAg ICAgIHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQpKTsK LUBAIC0xNjA5LDcgKzE2MDksNyBAQAotICAgICAgICAgICB9Ci0gICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgfQotLSAgICAgIGNhc2UgVHlwZTo6VHlwZUlEOjpWZWN0b3JUeUlEOgotKyAgICAg IGNhc2UgVHlwZTo6VHlwZUlEOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgICB7Ci0gICAgICAg ICAgIGNvbnN0IENvbnN0YW50RGF0YVNlcXVlbnRpYWwgKmNkcyA9IGR5bl9jYXN0PENvbnN0YW50 RGF0YVNlcXVlbnRpYWw+KGMpOwotICAgICAgICAgICBjb25zdCBWZWN0b3JUeXBlICp2ZWNUeSA9 IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci1AQCAtMTkzNiw3ICsxOTM2LDcgQEAKLSAgICAgICBj YXNlIFR5cGU6OlBvaW50ZXJUeUlEOgotICAgICAgICAgcmVnVHJhbnNsYXRvci5uZXdTY2FsYXIo dmFsdWUsIGtleSwgMCwgdW5pZm9ybSk7Ci0gICAgICAgICBicmVhazsKLS0gICAgICBjYXNlIFR5 cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAg ICAgewotICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsK LSAgICAgICAgIGNvbnN0IHVpbnQzMl90IGVsZW1OdW0gPSB2ZWN0b3JUeXBlLT5nZXROdW1FbGVt ZW50cygpOwotQEAgLTIzOTUsNyArMjM5NSw3IEBACi0gI2VuZGlmCi0gICAgICAgICB9Ci0gICAg ICAgICBpZih0eXBlTmFtZU5vZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAo Y2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpOwotKyAgICAgICAgICBsbHZtSW5mby50eXBlTmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBl TmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAg ICAgIC8vTExWTSAzLjkgaW1hZ2UncyB0eXBlIG5hbWUgaW5jbHVkZSBhY2Nlc3MgcXVhbCwgZG9u J3QgbWF0Y2ggT3BlbkNMIHNwZWMsIGVyYXNlIHRoZW0uCi0gICAgICAgICAgIHN0ZDo6dmVjdG9y PHN0ZDo6c3RyaW5nPiBmaWx0ZXJzID0geyJfX3JlYWRfb25seSAiLCAiX193cml0ZV9vbmx5ICJ9 OwotICAgICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7IGkr KykgewotQEAgLTI0MDYsMTYgKzI0MDYsMTYgQEAKLSAgICAgICAgICAgfQotICAgICAgICAgfQot ICAgICAgICAgaWYodHlwZUJhc2VOYW1lTm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVC YXNlTmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9w SUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAo Y2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRT dHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmKGFjY2Vzc1F1YWxOb2RlKSB7 Ci0tICAgICAgICAgIGxsdm1JbmZvLmFjY2Vzc1F1YWwgPSAoY2FzdDxNRFN0cmluZz4oYWNjZXNz UXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxs dm1JbmZvLmFjY2Vzc1F1YWwgPSAoY2FzdDxNRFN0cmluZz4oYWNjZXNzUXVhbE5vZGUtPmdldE9w ZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBp Zih0eXBlUXVhbE5vZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxN RFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwot KyAgICAgICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5nPih0eXBlUXVhbE5v ZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0g ICAgICAgICBpZihhcmdOYW1lTm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLmFyZ05hbWUgPSAo Y2FzdDxNRFN0cmluZz4oYXJnTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5n KCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLmFyZ05hbWUgPSAoY2FzdDxNRFN0cmluZz4oYXJnTmFt ZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9 Ci0KLSAgICAgICAgIC8vIGZ1bmN0aW9uIGFyZ3VtZW50cyBhcmUgdW5pZm9ybSB2YWx1ZXMuCi1A QCAtMzAxMCw3ICszMDEwLDcgQEAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHRoaXMt Pm5ld1JlZ2lzdGVyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdikpOwotICAgICAgICAg ICBpcjo6UmVnaXN0ZXIgcmVnID0gcmVnVHJhbnNsYXRvci5nZXRTY2FsYXIoY29uc3RfY2FzdDxH bG9iYWxWYXJpYWJsZSo+KCZ2KSwgMCk7Ci0tICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0g dW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpKTsKLSsgICAgICAg ICAgaXI6OkNvbnN0YW50ICZjb24gPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQo di5nZXROYW1lKCkuc3RyKCkpOwotICAgICAgICAgICBpZiAoIWxlZ2FjeU1vZGUpIHsKLSAgICAg ICAgICAgICBpcjo6UmVnaXN0ZXIgcmVnbG9hZCA9IGN0eC5yZWcoZ2V0RmFtaWx5KGdldFR5cGUo Y3R4LCB2LmdldFR5cGUoKSkpKTsKLSAgICAgICAgICAgICBjdHguTE9BREkoZ2V0VHlwZShjdHgs IHYuZ2V0VHlwZSgpKSwgcmVnbG9hZCwgY3R4Lm5ld0ludGVnZXJJbW1lZGlhdGUoY29uLmdldE9m ZnNldCgpLCBnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7Ci1AQCAtMzIxMiw3ICszMjEyLDcg QEAKLSAgICAgICAgIEdCRV9BU1NFUlRNKGZhbHNlLCAiVW5zdXBwb3J0ZWQgY2FsbGluZyBjb252 ZW50aW9uIik7Ci0gICAgIH0KLQotLSAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKSk7 Ci0rICAgIGN0eC5zdGFydEZ1bmN0aW9uKEYuZ2V0TmFtZSgpLnN0cigpKTsKLQotICAgICBpcjo6 RnVuY3Rpb24gJmZuID0gY3R4LmdldEZ1bmN0aW9uKCk7Ci0gICAgIHRoaXMtPnJlZ1RyYW5zbGF0 b3IuY2xlYXIoKTsKLUBAIC0zODEwLDkgKzM4MTAsOSBAQAotCi0gICB2b2lkIEdlbldyaXRlcjo6 cmVnQWxsb2NhdGVDYWxsSW5zdChDYWxsSW5zdCAmSSkgewotICAgICBWYWx1ZSAqZHN0ID0gJkk7 Ci0tICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxlZFZhbHVlKCk7Ci0rICAgIFZhbHVlICpD YWxsZWUgPSBJLmdldENhbGxlZE9wZXJhbmQoKTsKLSAgICAgR0JFX0FTU0VSVChjdHguZ2V0RnVu Y3Rpb24oKS5nZXRQcm9maWxlKCkgPT0gaXI6OlBST0ZJTEVfT0NMKTsKLS0gICAgR0JFX0FTU0VS VChpc2E8SW5saW5lQXNtPihJLmdldENhbGxlZFZhbHVlKCkpID09IGZhbHNlKTsKLSsgICAgR0JF X0FTU0VSVChpc2E8SW5saW5lQXNtPihJLmdldENhbGxlZE9wZXJhbmQoKSkgPT0gZmFsc2UpOwot ICAgICBpZihJLmdldE51bUFyZ09wZXJhbmRzKCkpIEdCRV9BU1NFUlQoSS5oYXNTdHJ1Y3RSZXRB dHRyKCkgPT0gZmFsc2UpOwotCi0gICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBhIHNtYWxsIG51bWJl ciBvZiBpbnRyaW5zaWNzIHJpZ2h0IG5vdwotQEAgLTM4NzAsNyArMzg3MCw3IEBACi0gICAgICAg fQotICAgICB9Ci0gICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGFu ZCBoYW5kbGUgaXQKLS0gICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJp cFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICBh dXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLSAgICAgc3dp dGNoIChnZW5JbnRyaW5zaWNJRCkgewotICAgICAgIGNhc2UgR0VOX09DTF9HRVRfR1JPVVBfSUQw OgotQEAgLTQxNjYsNyArNDE2Niw3IEBACi0gICAgIH07Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3Jp dGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6 T3Bjb2RlIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRSb3VuZGluZ0NhbGxJbnN0 KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSkgewotICAgICBpZiAoSS5nZXRUeXBlKCkt PmlzSGFsZlR5KCkpIHsKLSAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0 UmVnaXN0ZXIoSS5nZXRPcGVyYW5kKDApKTsKLSAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3Jj RmxvYXQgPSBjdHgucmVnKGlyOjpGQU1JTFlfRFdPUkQpOwotQEAgLTQxNzcsMTQgKzQxNzcsMTQg QEAKLSAgICAgICBjdHguRjMyVE8xNihpcjo6VFlQRV9VMTYsIGlyOjpUWVBFX0ZMT0FULCBkc3Qs IGRzdEZsb2F0KTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBHQkVfQVNTRVJUKEkuZ2V0VHlwZSgp LT5pc0Zsb2F0VHkoKSk7Ci0tICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxvcGNv ZGUpOwotKyAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksb3Bjb2RlKTsKLSAgICAgfQot ICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkks IENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAg Q2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgdm9pZCBHZW5X cml0ZXI6OmVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSwg aXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2lu KCk7Ci0gI2lmIEdCRV9ERUJVRwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1Mu YXJnX2VuZCgpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNl bmRpZiAvKiBHQkVfREVCVUcgKi8KLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0gICAgIGNv bnN0IGlyOjpSZWdpc3RlciBzcmMgPSB0aGlzLT5nZXRSZWdpc3RlcigqQUkpOwotQEAgLTQyOTMs OSArNDI5Myw5IEBACi0gICAgIHRoaXMtPmVtaXRBdG9taWNJbnN0SGVscGVyKG9wY29kZSwgdHlw ZSwgZHN0LCBsbHZtUHRyLCBwYXlsb2FkVHVwbGUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRl cjo6ZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09w cyBvcGNvZGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdp bigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAg dm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3Bz IG9wY29kZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0r ICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQo QUkgIT0gQUUpOwotICAgICBWYWx1ZSAqbGx2bVB0ciA9ICpBSTsKLSAgICAgaXI6OkFkZHJlc3NT cGFjZSBhZGRyU3BhY2UgPSBhZGRyZXNzU3BhY2VMTFZNVG9HZW4obGx2bVB0ci0+Z2V0VHlwZSgp LT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCkpOwotQEAgLTQzNDgsNyArNDM0OCw3IEBACi0gICAg IH0KLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0rICB2b2lkIEdl bldyaXRlcjo6ZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMg b3Bjb2RlKSB7Ci0gICAgIGlyOjpGdW5jdGlvbiAmZiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0g ICAgIGlmIChmLmdldHdnQnJvYWRjYXN0U0xNKCkgPCAwICYmIG9wY29kZSA9PSBpcjo6V09SS0dS T1VQX09QX0JST0FEQ0FTVCkgewotQEAgLTQzNzgsOCArNDM3OCw4IEBACi0gICAgICAgR0JFX0FT U0VSVChmLmdldHRpZE1hcFNMTSgpID49IDApOwotICAgICB9Ci0KLS0gICAgQ2FsbFNpdGU6OmFy Z19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJh dG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJn X2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAg IEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9V UF9PUF9BTEwgfHwgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQU5ZKSB7Ci1AQCAtNDM5MSwx NCArNDM5MSwxNCBAQAotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJh eVR1cGxlKCZzcmNbMF0sIDMpOwotICAgICAgIGN0eC5XT1JLR1JPVVAob3Bjb2RlLCAodWludDMy X3QpZi5nZXR0aWRNYXBTTE0oKSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMywgaXI6OlRZ UEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9B RENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAgICBpbnQg YXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4g c3JjKGFyZ051bSk7Ci0gICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykgewot ICAgICAgICAgc3JjW2ldID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKihBSSsrKSk7Ci0gICAgICAgfQot ICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0s IGFyZ051bSk7Ci0gICAgICAgY3R4LldPUktHUk9VUChpcjo6V09SS0dST1VQX09QX0JST0FEQ0FT VCwgKHVpbnQzMl90KWYuZ2V0d2dCcm9hZGNhc3RTTE0oKSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNU dXBsZSwgYXJnTnVtLAotLSAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpDUy5hcmdfYmVnaW4oKSkt PmdldFR5cGUoKSkpOwotKyAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpJLmFyZ19iZWdpbigpKS0+ Z2V0VHlwZSgpKSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgQ29uc3RhbnRJbnQgKnNpZ24gPSBk eW5fY2FzdDxDb25zdGFudEludD4oQUkpOwotICAgICAgIEdCRV9BU1NFUlQoc2lnbik7Ci1AQCAt NDQyMyw5ICs0NDIzLDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0KLS0g IHZvaWQgR2VuV3JpdGVyOjplbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAm Q1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0U3ViR3JvdXBJbnN0KENhbGxJ bnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdf ZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGlmIChvcGNvZGUgPT0g aXI6OldPUktHUk9VUF9PUF9BTEwgfHwgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQU5ZKSB7 Ci1AQCAtNDQzNSw3ICs0NDM1LDcgQEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUg PSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAxKTsKLSAgICAgICBjdHguU1VCR1JPVVAob3Bjb2Rl LCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCAxLCBpcjo6VFlQRV9TMzIpOwotICAgICB9IGVs c2UgaWYgKG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCkgewotLSAgICAgIGlu dCBhcmdOdW0gPSBDUy5hcmdfc2l6ZSgpOwotKyAgICAgIGludCBhcmdOdW0gPSBJLmFyZ19zaXpl KCk7Ci0gICAgICAgR0JFX0FTU0VSVChhcmdOdW0gPT0gMik7Ci0gICAgICAgc3RkOjp2ZWN0b3I8 aXI6OlJlZ2lzdGVyPiBzcmMoYXJnTnVtKTsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFy Z051bTsgaSsrKSB7Ci1AQCAtNDQ0Myw3ICs0NDQzLDcgQEAKLSAgICAgICB9Ci0gICAgICAgY29u c3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgYXJnTnVtKTsK LSAgICAgICBjdHguU1VCR1JPVVAoaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsIGdldFJlZ2lz dGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgqQ1Mu YXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgqSS5h cmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0YW50 SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNTRVJU KHNpZ24pOwotQEAgLTQ0NjYsOSArNDQ2Niw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUp OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChD YWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUs IGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFy Z19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgp OwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3Qg JkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAg ICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0 ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0g ICAgIFZhbHVlICpsbHZtUHRyID0gKihBSSsrKTsKLUBAIC00NTIyLDkgKzQ1MjIsOSBAQAotICAg ICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRC bG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlz V3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNpdGU6 OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0 ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19z aXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdf YmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAg R0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgY29uc3QgdWludDhfdCBpbWFnZUlEID0gZ2V0 SW1hZ2VJRChJKTsKLUBAIC00NTU3LDcgKzQ1NTcsNyBAQAotCi0gICAvKiBhcHBlbmQgYSBuZXcg c2FtcGxlci4gc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IHJlZmVyZW5jZSB0bwotICAgICog YSBzYW1wbGVyX3QgdmFsdWUuICovCi0tICB1aW50OF90IEdlbldyaXRlcjo6YXBwZW5kU2FtcGxl cihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKSB7Ci0rICB1aW50OF90IEdlbldyaXRlcjo6YXBw ZW5kU2FtcGxlcihVc2VyOjpvcF9pdGVyYXRvciBBSSkgewotICNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICBDYWxsSW5zdCAqVEMgPSBk eW5fY2FzdDxDYWxsSW5zdD4oKkFJKTsKLSAgICAgQ29uc3RhbnQgKkNQViA9IFRDID8gZHluX2Nh c3Q8Q29uc3RhbnQ+KFRDLT5nZXRPcGVyYW5kKDApKSA6IE5VTEw7Ci1AQCAtNDU5NSwxMCArNDU5 NSw5IEBACi0gICAgICAgICBjb25zdCBpcjo6RnVuY3Rpb24gJmZuID0gY3R4LmdldEZ1bmN0aW9u KCk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBD YWxsU2l0ZSBDUygmSSk7Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1Mu YXJnX2JlZ2luKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2lu KCk7Ci0gI2lmIEdCRV9ERUJVRwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5k KCk7Ci0gI2VuZGlmIC8qIEdCRV9ERUJVRyAqLwotICAgICAgICAgc3dpdGNoIChGLT5nZXRJbnRy aW5zaWNJRCgpKSB7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzdGFja3NhdmU6Ci1AQCAt NDc2NCwxNyArNDc2MywxNyBAQAotICAgICAgICAgICAgIGN0eC5NQUQoc3JjVHlwZSwgZHN0LCBz cmMwLCBzcmMxLCBzcmMyKTsKLSAgICAgICAgICAgfQotICAgICAgICAgICBicmVhazsKLS0gICAg ICAgICAgY2FzZSBJbnRyaW5zaWM6OnNxcnQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Ms aXI6Ok9QX1NRUik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Y2VpbDogdGhp cy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5EVSk7IGJyZWFrOwotLSAgICAg ICAgICBjYXNlIEludHJpbnNpYzo6dHJ1bmM6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEks Q1MsaXI6Ok9QX1JORFopOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnJpbnQ6 IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JOREUpOyBicmVhazsKLS0g ICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmZsb29yOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5z dChJLENTLGlyOjpPUF9STkREKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpz aW46IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1NJTik7IGJyZWFrOwotLSAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6Y29zOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENT LGlyOjpPUF9DT1MpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmxvZzI6IHRo aXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0xPRyk7IGJyZWFrOwotLSAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6ZXhwMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6 T1BfRVhQKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlzLT5l bWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9TUVIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJ bnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JORFUp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0Um91 bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRaKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50 cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRFKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJvdW5k aW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5ERCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJp bnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9TSU4pOyBicmVhazsK LSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3Qo SSxpcjo6T1BfQ09TKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpsb2cyOiB0 aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9MT0cpOyBicmVhazsKLSsgICAgICAgICAg Y2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0VY UCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6YnN3YXA6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQlNXQVAsIGdldFVuc2lnbmVk VHlwZShjdHgsIEkuZ2V0VHlwZSgpKSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRV bmFyeUNhbGxJbnN0KEksaXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5 cGUoKSkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnBvdzoKLSAgICAgICAg ICAgewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMwID0gdGhpcy0+Z2V0UmVn aXN0ZXIoKkFJKTsgKytBSTsKLUBAIC00Nzk0LDIxICs0NzkzLDIwIEBACi0gICAgICAgICB9Ci0g ICAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVkIGZ1 bmN0aW9uIGFuZCBoYW5kbGUgaXQKLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxl ZFZhbHVlKCk7Ci0tICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0 cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgICAgIFZhbHVlICpDYWxsZWUgPSBJ LmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9 IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAg YXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAg ICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUygm SSk7Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7 Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0gI2lmIEdC RV9ERUJVRwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQo KTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gI2VuZGlm IC8qIEdCRV9ERUJVRyAqLwotCi0gICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0t ICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkg6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Ms aXI6Ok9QX0ZCSCwgaXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09D TF9GQkw6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0ZCTCwgaXI6OlRZUEVf VTMyKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9DQklUOiB0aGlzLT5lbWl0VW5h cnlDYWxsSW5zdChJLENTLGlyOjpPUF9DQklULCBnZXRVbnNpZ25lZFR5cGUoY3R4LCAoKkFJKS0+ Z2V0VHlwZSgpKSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5l bWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpP UF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQ0JJ VDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRUeXBl KGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X0FCUzoKLSAgICAgICAgICAgewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMg PSB0aGlzLT5nZXRSZWdpc3RlcigqQUkpOwotQEAgLTQ5MTUsOCArNDkxMyw4IEBACi0gICAgICAg ICAgICAgY3R4LlJFR0lPTihkc3QsIHNyYywgeC5nZXRJbnRlZ2VyVmFsdWUoKSk7Ci0gICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1JTUTog dGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0tICAgICAg ICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9Q X1JDUCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfUlNROiB0aGlzLT5lbWl0VW5h cnlDYWxsSW5zdChJLGlyOjpPUF9SU1EpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NM X1JDUDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUkNQKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9GT1JDRV9TSU1EODogY3R4LnNldFNpbWRXaWR0aCg4KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9GT1JDRV9TSU1EMTY6IGN0eC5zZXRTaW1kV2lk dGgoMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0xCQVJSSUVSOiBjdHguU1lO Qyhpcjo6c3luY0xvY2FsQmFycmllcik7IGJyZWFrOwotQEAgLTQ5NDcsMzEgKzQ5NDUsMzEgQEAK LSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0FERDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQUREMTogdGhp cy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FERCk7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6 OkFUT01JQ19PUF9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19T VUIwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1NVQjE6IHRoaXMtPmVtaXRBdG9t aWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9TVUIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1Bf U1VCKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMDoKLS0gICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BTkQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfQU5EKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfQU5EMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMDoKLS0gICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19P UF9PUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX09SKTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfWE9SMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19Y T1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfWE9SKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0lu c3QoSSxpcjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1hDSEcwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcxOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfWENIRyk7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGly OjpBVE9NSUNfT1BfWENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X0lOQzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU5DMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0lOQyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19P UF9JTkMpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMwOgotLSAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0RFQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEks Q1MsaXI6OkFUT01JQ19PUF9ERUMpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19ERUMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1JTjA6Ci0tICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfVU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFU T01JQ19PUF9VTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1J TjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9VTUlOKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDA6Ci0tICAgICAgICAgIGNhc2UgR0VO X09DTF9BVE9NSUNfVU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19P UF9VTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDE6IHRo aXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9VTUFYKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9B VE9NSUNfSU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTUlO KTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjE6IHRoaXMtPmVt aXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9JTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfSU1BWDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf SU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTUFYKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1BWDE6IHRoaXMtPmVtaXRBdG9t aWNJbnN0KEksaXI6OkFUT01JQ19PUF9JTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9BVE9NSUNfQ01QWENIRzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQ01Q WENIRzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9DTVBYQ0hHKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQ01QWENIRzE6IHRoaXMtPmVt aXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9DTVBYQ0hHKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9HRVRfSU1BR0VfV0lEVEg6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9H RVRfSU1BR0VfSEVJR0hUOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0RFUFRI OgotQEAgLTU0MjksNDggKzU0MjcsNDggQEAKLSAgICAgICAgICAgICBjdHguV0FJVCgpOwotICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9X T1JLX0dST1VQX0FMTDogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JP VVBfT1BfQUxMKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FO WTogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQU5ZKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FMTDogdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTEwpOyBicmVhazsKLSsgICAgICAg ICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQU5ZOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf V09SS19HUk9VUF9CUk9BRENBU1Q6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cElu c3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1Qp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX0FERDoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1JFRFVDRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JP VVBfT1BfUkVEVUNFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19H Uk9VUF9SRURVQ0VfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEks IENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVf QUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09S S0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUFYOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQ X09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dy b3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUlOOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VY Q0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5z dChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfQUREOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lW RV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBp cjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09S S0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRX b3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQ X09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CUk9BRENBU1Q6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBD UywgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX0FERDoKLS0gICAgICAg ICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVD RV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX1JFRFVDRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9N QVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUlO OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JP VVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91 cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9FWENMVVNJVkVfQUREOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZF X0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6 OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9V UF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJf R1JPVVBfU0NBTl9FWENMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NB Tl9JTkNMVVNJVkVfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg Q1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAg IHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQURE KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJ VkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpX T1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUlOOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBf T1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91 cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9MUlA6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBp cjo6UmVnaXN0ZXIgZHN0ICA9IHRoaXMtPmdldFJlZ2lzdGVyKCZJKTsKLUBAIC01NDg0LDY5ICs1 NDgyLDY5IEBACi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTToKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMSk7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDEp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJ X01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBD UywgZmFsc2UsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KEksIGZhbHNlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNODoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgOCk7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwg ZmFsc2UsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19XUklURV9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVt SW5zdChJLCBDUywgdHJ1ZSwgMSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMik7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01FTTQ6 Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1 ZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X0JMT0NLX1dSSVRFX1VJX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U6Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMSk7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxz ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JF QURfVUlfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBDUywgZmFsc2UsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFNDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0KTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNl LCA0KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVB RF9VSV9JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJ bnN0KEksIENTLCBmYWxzZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMSk7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAx KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VUlfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgdHJ1ZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgNCk7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA0KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlf SU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJ LCBDUywgdHJ1ZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCB0cnVlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2Us IDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1JFQURfVVNfTUVNMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfUkVBRF9VU19NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1l bUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA0LCBpcjo6VFlQRV9V MTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFE X1VTX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBDUywgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01F TToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0 cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTI6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMiwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCB0cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU00OgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRy dWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNl LCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2Us IDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1JFQURfVVNfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwg NCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JP VVBfQkxPQ0tfUkVBRF9VU19JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA4 LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9CTE9DS19XUklURV9VU19JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19XUklURV9VU19JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxP Q0tfV1JJVEVfVVNfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDQsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NL X1dSSVRFX1VTX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJ bWFnZUluc3QoSSwgQ1MsIHRydWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9QSVBFOgotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfTUFLRV9SSUQ6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRf UklEOgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAkyMDIwLTExLTA5 IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2lu Y2x1ZGVzLmhwcAkyMDIwLTExLTA5IDE5OjAwOjA5Ljk1NTkyNjc5NSArMDEwMAotQEAgLTEwMyw3 ICsxMDMsNiBAQAotCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDM1Ci0gI2luY2x1ZGUgImxsdm0vSVIvTWFuZ2xlci5oIgotLSNpbmNsdWRlICJs bHZtL0lSL0NhbGxTaXRlLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvQ0ZHLmgiCi0gI2luY2x1ZGUg Imxsdm0vSVIvSW5zdFZpc2l0b3IuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9JUlByaW50aW5nUGFz c2VzLmgiCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlv bi5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAkyMDIwLTExLTA5IDE5OjEw OjM3LjE0MTg1MjMwOCArMDEwMAotQEAgLTE2MCw3ICsxNjAsNyBAQAotICAgICBWYWx1ZSAqdmVj UHRyID0gQnVpbGRlci5DcmVhdGVCaXRDYXN0KGxkLT5nZXRQb2ludGVyT3BlcmFuZCgpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludGVyVHlwZTo6Z2V0KHZl Y1R5LCBhZGRyU3BhY2UpKTsKLSAgICAgTG9hZEluc3QgKnZlY1ZhbHVlID0gQnVpbGRlci5DcmVh dGVMb2FkKHZlY1B0cik7Ci0tICAgIHZlY1ZhbHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAg ICB2ZWNWYWx1ZS0+c2V0QWxpZ25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7Ci0KLSAgICAgZm9y ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgIFZhbHVlICpTID0gQnVp bGRlci5DcmVhdGVFeHRyYWN0RWxlbWVudCh2ZWNWYWx1ZSwgQnVpbGRlci5nZXRJbnQzMihpKSk7 Ci1AQCAtMjUxLDcgKzI1MSw3IEBACi0gICAgICAgcmV0dXJuOwotICAgICBWYWx1ZSAqbmV3UHRy ID0gQnVpbGRlci5DcmVhdGVCaXRDYXN0KHN0UG9pbnRlciwgUG9pbnRlclR5cGU6OmdldCh2ZWNU eSwgYWRkclNwYWNlKSk7Ci0gICAgIFN0b3JlSW5zdCAqbmV3U1QgPSBCdWlsZGVyLkNyZWF0ZVN0 b3JlKHBhcmVudCwgbmV3UHRyKTsKLS0gICAgbmV3U1QtPnNldEFsaWdubWVudChhbGlnbik7Ci0r ICAgIG5ld1NULT5zZXRBbGlnbm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsKLSAgIH0KLQotICAg Ly8gRmluZCB0aGUgc2FmZSBpdGVyYXRvciB3ZSBjYW4gcG9pbnQgdG8uIElmIHJlb3JkZXIgaGFw cGVucywgd2UgbmVlZCB0bwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAJ MjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkgMTg6NDg6NTUuOTk3MDA2ODM3ICswMTAwCi1A QCAtOTUsNyArOTUsNyBAQAotICAgewotICAgICBzd2l0Y2ggKFR5LT5nZXRUeXBlSUQoKSkgewot ICAgICAgIGNhc2UgVHlwZTo6Vm9pZFR5SUQ6IE5PVF9TVVBQT1JURUQ7Ci0tICAgICAgY2FzZSBU eXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAg ICAgIHsKLSAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JUeXBl PihUeSk7Ci0gICAgICAgICB1aW50MzJfdCBlbGVtTnVtID0gVmVjVHktPmdldE51bUVsZW1lbnRz KCk7Ci1AQCAtMTM4LDcgKzEzOCw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpIYWxmVHlJRDogICAg cmV0dXJuIDE2OwotICAgICAgIGNhc2UgVHlwZTo6RmxvYXRUeUlEOiAgIHJldHVybiAzMjsKLSAg ICAgICBjYXNlIFR5cGU6OkRvdWJsZVR5SUQ6ICByZXR1cm4gNjQ7Ci0tICAgICAgY2FzZSBUeXBl OjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAg IHsKLSAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JUeXBlPihU eSk7Ci0gICAgICAgICB1aW50MzJfdCBudW1FbGVtID0gVmVjVHktPmdldE51bUVsZW1lbnRzKCk7 Ci1AQCAtMTg0LDEwICsxODQsMTIgQEAKLSAgICAgVHlwZSAqZWxlbWVudFR5cGUgPSBOVUxMOwot ICAgICBpZiAoUG9pbnRlclR5cGUqIHB0clR5cGUgPSBkeW5fY2FzdDxQb2ludGVyVHlwZT4oZWx0 VHkpKQotICAgICAgIGVsZW1lbnRUeXBlID0gcHRyVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLS0g ICAgZWxzZSBpZihTZXF1ZW50aWFsVHlwZSAqIHNlcVR5cGUgPSBkeW5fY2FzdDxTZXF1ZW50aWFs VHlwZT4oZWx0VHkpKQotLSAgICAgIGVsZW1lbnRUeXBlID0gc2VxVHlwZS0+Z2V0RWxlbWVudFR5 cGUoKTsKLS0gICAgZWxzZSBpZihDb21wb3NpdGVUeXBlICogY29tcFR5PSBkeW5fY2FzdDxDb21w b3NpdGVUeXBlPihlbHRUeSkpCi0tICAgICAgZWxlbWVudFR5cGUgPSBjb21wVHktPmdldFR5cGVB dEluZGV4KGluZGV4KTsKLSsgICAgZWxzZSBpZiAoQXJyYXlUeXBlICogYXJyVHlwZSA9IGR5bl9j YXN0PEFycmF5VHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gYXJyVHlwZS0+Z2V0 RWxlbWVudFR5cGUoKTsKLSsgICAgZWxzZSBpZihWZWN0b3JUeXBlICogdmVjVHlwZSA9IGR5bl9j YXN0PFZlY3RvclR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IHZlY1R5cGUtPmdl dEVsZW1lbnRUeXBlKCk7Ci0rICAgIGVsc2UgaWYoU3RydWN0VHlwZSAqIHN0cnVjdFR5cGUgPSBk eW5fY2FzdDxTdHJ1Y3RUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSBzdHJ1Y3RU eXBlLT5nZXRUeXBlQXRJbmRleChpbmRleCk7Ci0gICAgIEdCRV9BU1NFUlQoZWxlbWVudFR5cGUp OwotICAgICByZXR1cm4gZWxlbWVudFR5cGU7Ci0gICB9Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZt L2xsdm1fcHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAx MDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAkyMDIwLTEx LTA5IDE4OjU3OjUyLjYxODk0MzEwNSArMDEwMAotQEAgLTMyMyw4ICszMjMsNyBAQAotCi0gICBi b29sIFByaW50ZlBhcnNlcjo6cGFyc2VPbmVQcmludGZJbnN0cnVjdGlvbihDYWxsSW5zdCAqIGNh bGwpCi0gICB7Ci0tICAgIENhbGxTaXRlIENTKGNhbGwpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0 ZXJhdG9yIENJX0ZNVCA9IENTLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBD SV9GTVQgPSBjYWxsLT5hcmdfYmVnaW4oKTsKLSAgICAgaW50IHBhcmFtX251bSA9IDA7Ci0KLSAg ICAgbGx2bTo6Q29uc3RhbnQqIGFyZzAgPSBkeW5fY2FzdDxsbHZtOjpDb25zdGFudEV4cHI+KCpD SV9GTVQpOwotQEAgLTM0MSw3ICszNDAsNyBAQAotICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg fQotCi0tICAgIHN0ZDo6c3RyaW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpOwotKyAg ICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKS5zdHIoKTsKLSAgICAg aWYgKGZtdC5zaXplKCkgPT0gMCkKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0KLUBAIC00MzcsOCAr NDM2LDggQEAKLSAgICAgICAgIGlmICggY2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0gMCkK LSAgICAgICAgICAgY29udGludWU7Ci0KLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5n ZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2Fs bGVlLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVk T3BlcmFuZCgpOwotKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5n ZXROYW1lKCkuc3RyKCk7Ci0KLSAgICAgICAgIGlmIChmbk5hbWUgIT0gIl9fZ2VuX29jbF9wcmlu dGZfc3R1YiIgJiYgZm5OYW1lICE9ICJfX2dlbl9vY2xfcHV0c19zdHViIikKLSAgICAgICAgICAg Y29udGludWU7Ci1AQCAtNTgyLDcgKzU4MSw3IEBACi0gICAgICAgICAgICAgaWYgKCFmbXRfYXJn IHx8ICFmbXRfYXJnLT5pc0NTdHJpbmcoKSkgewotICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9IGZtdF9hcmct PmdldEFzQ1N0cmluZygpOwotKyAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0gZm10X2FyZy0+ Z2V0QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg ICAgIH0KLSAgICAgICAgICAgY2FzZSBQUklOVEZfQ09OVkVSU0lPTl9QOiB7Ci1AQCAtNTk1LDEw ICs1OTQsMTAgQEAKLQotICAgICAgICAgYnJlYWs7Ci0KLS0gICAgICBjYXNlIFR5cGU6OlZlY3Rv clR5SUQ6IHsKLS0gICAgICAgIFR5cGUqIHZlY3RfdHlwZSA9IGFyZy0+Z2V0VHlwZSgpOwotLSAg ICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCk7 Ci0tICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMo KTsKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDogewotKyAgICAgICAgVmVjdG9y VHlwZSogdmVjdF90eXBlID0gZHluX2Nhc3Q8VmVjdG9yVHlwZT4oYXJnLT5nZXRUeXBlKCkpOwot KyAgICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0r ICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLSAgICAg ICAgIGJvb2wgc2lnbiA9IGZhbHNlOwotCi0gICAgICAgICBpZiAodmVjX251bSAhPSBzbG90LnN0 YXRlLnZlY3Rvcl9uKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNw cAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0wOSAxODo1OTo1MC4xMjA5MjkxNTAgKzAx MDAKLUBAIC0zNSw3ICszNSw2IEBACi0gI2luY2x1ZGUgImxsdm0vSVIvSVJCdWlsZGVyLmgiCi0K LSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUK LS0jaW5jbHVkZSAibGx2bS9JUi9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NGRy5o IgotICNlbHNlCi0gI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9DYWxsU2l0ZS5oIgotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgy Mzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNw cAkyMDIwLTExLTA5IDE3OjAxOjA5LjQwNzc3NDgzMiArMDEwMAotQEAgLTQ1LDggKzQ1LDggQEAK LSAgICAgYm9vbCB2aXNpdENhbGxJbnN0KENhbGxJbnN0ICpJKSB7Ci0gICAgICAgaWYoIUkpCi0g ICAgICAgICByZXR1cm4gZmFsc2U7Ci0tICAgICAgVmFsdWUgKkNhbGxlZSA9IEktPmdldENhbGxl ZFZhbHVlKCk7Ci0tICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXRO YW1lKCk7Ci0rICAgICAgVmFsdWUgKkNhbGxlZSA9IEktPmdldENhbGxlZE9wZXJhbmQoKTsKLSsg ICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKS5zdHIoKTsK LSAgICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICBUeXBlICpib29sVHkgPSBJbnRl Z2VyVHlwZTo6Z2V0KEktPmdldENvbnRleHQoKSwgMSk7Ci0gICAgICAgVHlwZSAqaTMyVHkgPSBJ bnRlZ2VyVHlwZTo6Z2V0KEktPmdldENvbnRleHQoKSwgMzIpOwotQEAgLTU5LDcgKzU5LDcgQEAK LSAgICAgICAgIFZhbHVlICpuZWVkRml4VmFsOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAx MCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBk eW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAm JiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVf c2FtcGxlcl9pbml0aWFsaXplciIpKQotKyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2Fs bGVkT3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0 aWFsaXplciIpKQotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kg PSBkeW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAg IHVpbnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7Ci1AQCAtMTEzLDcgKzEx Myw3IEBACi0gICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAgI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICBDYWxsSW5zdCAq aW5pdCA9IGR5bl9jYXN0PENhbGxJbnN0PihJLT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgIGlm IChpbml0ICYmIGluaXQtPmdldENhbGxlZFZhbHVlKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3Ry YW5zbGF0ZV9zYW1wbGVyX2luaXRpYWxpemVyIikpCi0rICAgICAgICBpZiAoaW5pdCAmJiBpbml0 LT5nZXRDYWxsZWRPcGVyYW5kKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1w bGVyX2luaXRpYWxpemVyIikpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0YW50 SW50ICpjaSA9IGR5bl9jYXN0PENvbnN0YW50SW50Pihpbml0LT5nZXRPcGVyYW5kKDApKTsKLSAg ICAgICAgICAgdWludDMyX3Qgc2FtcGxlckludCA9IGNpLT5nZXRaRXh0VmFsdWUoKTsKLS0tLSBh L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAu ODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNw cAkyMDIwLTExLTA5IDE4OjUxOjE2Ljg4ODk5MDEwNCArMDEwMAotQEAgLTE3OCw3ICsxNzgsNyBA QAotICAgICAgIGlmKCF0eXBlKQotICAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgc3dpdGNo KHR5cGUtPmdldFR5cGVJRCgpKSB7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAg ICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIGNhc2UgVHlwZTo6QXJyYXlU eUlEOgotICAgICAgICAgcmV0dXJuIEdldEJhc2ljVHlwZSh0eXBlLT5nZXRDb250YWluZWRUeXBl KDApKTsKLSAgICAgICBkZWZhdWx0OgotQEAgLTE4OCw3ICsxODgsNyBAQAotICAgICB9Ci0KLSAg ICAgaW50IEdldENvbXBvbmVudENvdW50KGNvbnN0IFR5cGUqIHR5cGUpICB7Ci0tICAgICAgaWYg KHR5cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6VmVjdG9yVHlJRCkKLSsgICAgICBp ZiAodHlwZSAmJiB0eXBlLT5nZXRUeXBlSUQoKSA9PSBUeXBlOjpGaXhlZFZlY3RvclR5SUQpCi0g ICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8VmVjdG9yVHlwZT4odHlwZSktPmdldE51bUVs ZW1lbnRzKCk7Ci0gICAgICAgZWxzZQotICAgICAgICAgcmV0dXJuIDE7Ci1AQCAtNjUyLDEzICs2 NTIsMTIgQEAKLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgICAgfSBlbHNlIHsK LS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAg ICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7Ci0rICAgICAg ICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAgICAgY29u c3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAg ICBhdXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLQotICAg ICAgICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxTaXRlIENT KGNhbGwpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSSA9IENTLmFyZ19iZWdp bigpICsgMTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIENJID0gY2FsbC0+YXJnX2JlZ2lu KCkgKyAxOwotCi0gICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9OT1RfRk9VTkQ6Ci1AQCAtNzI5LDcgKzcyOCw3IEBACi0gICAgICAgICAg ICAgZXh0cmFjdEZyb21WZWN0b3IoY2FsbCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9QUklOVEY6Ci0tICAgICAgICAgICAgZm9yICg7IENJICE9IENTLmFy Z19lbmQoKTsgKytDSSkKLSsgICAgICAgICAgICBmb3IgKDsgQ0kgIT0gY2FsbC0+YXJnX2VuZCgp OyArK0NJKQotICAgICAgICAgICAgICAgaWYgKCgqQ0kpLT5nZXRUeXBlKCktPmlzVmVjdG9yVHko KSkKLSAgICAgICAgICAgICAgICAgKkNJID0gSW5zZXJ0VG9WZWN0b3IoY2FsbCwgKkNJKTsKLSAg ICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xs dm0xMi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY4YWIwMDVjMTQ4Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTE1ICswLDAgQEAKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVn ZXJzLmNwcCBiYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1pbmRleCA4 NTE1ZGMxMy4uMjcwODAzODAgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExh cmdlSW50ZWdlcnMuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdl cnMuY3BwCi1AQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyBWYWx1ZSAqYnVpbGRWZWN0b3JPclNj YWxhcihDb252ZXJzaW9uU3RhdGUgJlN0YXRlLCBJUkJ1aWxkZXI8PiAmSVJCLCBTbWFsCi0gICAg IC8vIHNwbGl0ZWQsIHRoYXQncyB3aHkgdGhlc2UgdGVtcG9yYXJ5IHZhbHVlcyBzaG91bGQgYmUg ZXJhc2VkLgotICAgICBib29sIEtlZXBJbnNlcnQgPSBpc0xlZ2FsQml0U2l6ZShFbGVtVHktPmdl dFByaW1pdGl2ZVNpemVJbkJpdHMoKSAqIEVsZW1Obyk7Ci0gICAgIGZvciAodW5zaWduZWQgaSA9 IDA7IGkgPCBFbGVtTm87ICsraSkgewotLSAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBV bmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAg VmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQo RWxlbVR5LCBFbGVtTm8sIGZhbHNlKSk7Ci0gICAgICAgVmFsdWUgKmlkeCA9IENvbnN0YW50SW50 OjpnZXQoSW50VHksIGkpOwotICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50KHRt cCwgRWxlbWVudHNbaV0sIGlkeCk7Ci0gICAgICAgaWYgKCFLZWVwSW5zZXJ0ICYmICFpc2E8Q29u c3RhbnQ+KHZlYykpIHsKLUBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIHZvaWQgdW5pZnlFbGVt ZW50VHlwZShJUkJ1aWxkZXI8PiAmSVJCLCBTbWFsbFZlY3RvcjxWYWx1ZSAqLCAxNj4gJlNyYywg U20KLSAgICAgICBhc3NlcnQoKFNpemUgJSBNaW5XaWR0aCkgPT0gMCk7Ci0gCi0gICAgICAgaWYg KFNpemUgPiBNaW5XaWR0aCkgewotLSAgICAgICAgVmVjdG9yVHlwZSAqVmVjVHkgPSBWZWN0b3JU eXBlOjpnZXQoRWxlbVR5LCBTaXplL01pbldpZHRoKTsKLSsgICAgICAgIFZlY3RvclR5cGUgKlZl Y1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCwgZmFsc2UpOwotICAg ICAgICAgVmFsdWUgKkNhc3RlZCA9IElSQi5DcmVhdGVCaXRDYXN0KFNyY1tpXSwgVmVjVHkpOwot ICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IFNpemUvTWluV2lkdGg7IGorKykKLSAg ICAgICAgICAgRHN0LnB1c2hfYmFjayhJUkIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQoQ2FzdGVkLCBD b25zdGFudEludDo6Z2V0KEludFR5LCBqKSkpOwotQEAgLTQ2Miw3ICs0NjIsNyBAQCBzdGF0aWMg dm9pZCBjb252ZXJ0SW5zdHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24gKkluc3QsIENvbnZlcnNpb25TdGF0 ZSAmU3RhdGUsCi0gICAgICAgdW5zaWduZWQgRWxlbU5vID0gVW5pZmllZC5zaXplKCk7Ci0gICAg ICAgVHlwZSAqRWxlbVR5ID0gVW5pZmllZFswXS0+Z2V0VHlwZSgpOwotICAgICAgIGZvciAodW5z aWduZWQgaSA9IDA7IGkgPCBFbGVtTm87ICsraSkgewotLSAgICAgICAgVmFsdWUgKnRtcCA9IHZl YyA/IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8p KTsKLSsgICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVj dG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAgICAgVmFsdWUgKmlk eCA9IENvbnN0YW50SW50OjpnZXQoSW50VHksIGkpOwotICAgICAgICAgdmVjID0gSVJCLkNyZWF0 ZUluc2VydEVsZW1lbnQodG1wLCBVbmlmaWVkW2ldLCBpZHgpOwotICAgICAgIH0KLWRpZmYgLS1n aXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9sbHZt L2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1pbmRleCBjOTNkODljYy4uNjRkNWIwZTUgMTAwNjQ0Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi0rKysgYi9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA0LDcgKzMwNCw3IEBAIG5hbWVz cGFjZSBnYmUKLSAgICAgICBUWVBFU0laRVZFQyhsb25nLDgpCi0gICAgICAgVFlQRVNJWkVWRUMo dW5zaWduZWQgbG9uZyw4KQotICAgICAgIGVsc2V7Ci0tICAgICAgICBTdHJ1Y3RUeXBlICpTdHJU eSA9IE0tPmdldFR5cGVCeU5hbWUoInN0cnVjdC4iK25hbWUpOwotKyAgICAgICAgU3RydWN0VHlw ZSAqU3RyVHkgPSBTdHJ1Y3RUeXBlOjpnZXRUeXBlQnlOYW1lKE0tPmdldENvbnRleHQoKSwgInN0 cnVjdC4iK25hbWUpOwotICAgICAgICAgaWYoU3RyVHkpCi0gICAgICAgICAgIHJldHVybiBnZXRU eXBlQnl0ZVNpemUodW5pdCxTdHJUeSk7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBiYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlZi4uNmI1YzFiYWQg MTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlv bi5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9u LmNwcAotQEAgLTE1Miw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgdW5zaWduZWQg YWRkclNwYWNlID0gbGQtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5zZXJ0 IGJlZm9yZSBmaXJzdCBsb2FkCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwotLSAg ICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChsZC0+Z2V0VHlwZSgpLCBzaXpl KTsKLSsgICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdldFR5cGUo KSwgc2l6ZSwgZmFsc2UpOwotICAgICBWYWx1ZSAqdmVjUHRyID0gQnVpbGRlci5DcmVhdGVCaXRD YXN0KGxkLT5nZXRQb2ludGVyT3BlcmFuZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQb2ludGVyVHlwZTo6Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsKLSAgICAg TG9hZEluc3QgKnZlY1ZhbHVlID0gQnVpbGRlci5DcmVhdGVMb2FkKHZlY1B0cik7Ci1AQCAtMjM2 LDcgKzIzNiw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50 KG1lcmdlZFtzaXplLTFdKTsKLSAKLSAgICAgVHlwZSAqZGF0YVR5ID0gc3QtPmdldFZhbHVlT3Bl cmFuZCgpLT5nZXRUeXBlKCk7Ci0tICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6 Z2V0KGRhdGFUeSwgc2l6ZSk7Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6 Z2V0KGRhdGFUeSwgc2l6ZSwgZmFsc2UpOwotICAgICBWYWx1ZSAqIHBhcmVudCA9IFVuZGVmVmFs dWU6OmdldCh2ZWNUeSk7Ci0gICAgIGZvcih1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykg ewotICAgICAgIHBhcmVudCA9IEJ1aWxkZXIuQ3JlYXRlSW5zZXJ0RWxlbWVudChwYXJlbnQsIHZh bHVlc1tpXSwgQ29uc3RhbnRJbnQ6OmdldChJbnRlZ2VyVHlwZTo6Z2V0KHN0LT5nZXRDb250ZXh0 KCksIDMyKSwgaSkpOwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3Bh cnNlci5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi1pbmRleCA2 YmI3YzUyYS4uYWY0NTljZDIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJp bnRmX3BhcnNlci5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2Vy LmNwcAotQEAgLTYzMCw3ICs2MzAsNyBAQCBlcnJvcjoKLSAgICAgICAgICAgICBpZiAoZWx0X3R5 cGUgIT0gZWx0X2RzdF90eXBlKSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkgPSBOVUxMOwot ICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKyspIHsKLS0gICAg ICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9y VHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVjX251bSkpOwotKyAgICAgICAgICAgICAgICBWYWx1 ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoZWx0X2Rz dF90eXBlLCB2ZWNfbnVtLCBmYWxzZSkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3YgPSBD b25zdGFudEludDo6Z2V0KFR5cGU6OmdldEludDMyVHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSks IGkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqb3JnID0gYnVpbGRlci0+Q3JlYXRlRXh0cmFj dEVsZW1lbnQoYXJnLCBjdik7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdnQgPSBidWlsZGVy LT5DcmVhdGVJbnRDYXN0KG9yZywgZWx0X2RzdF90eXBlLCBzaWduKTsKLUBAIC02NTgsNyArNjU4 LDcgQEAgZXJyb3I6Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlLT5nZXRUeXBlSUQoKSAhPSBU eXBlOjpGbG9hdFR5SUQpIHsKLSAgICAgICAgICAgICAgIFZhbHVlICpJSSA9IE5VTEw7Ci0gICAg ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlY19udW07IGkrKykgewotLSAgICAgICAg ICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBl OjpnZXQoVHlwZTo6Z2V0RmxvYXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgdmVjX251bSkp OwotKyAgICAgICAgICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6Omdl dChWZWN0b3JUeXBlOjpnZXQoVHlwZTo6Z2V0RmxvYXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgp KSwgdmVjX251bSwgZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3Rh bnRJbnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsK LSAgICAgICAgICAgICAgICAgVmFsdWUgKm9yZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVt ZW50KGFyZywgY3YpOwotICAgICAgICAgICAgICAgICBWYWx1ZSogY3Z0ICA9IGJ1aWxkZXItPkNy ZWF0ZUZQQ2FzdChvcmcsIFR5cGU6OmdldEZsb2F0VHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKTsK LWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAgYmFja2VuZC9zcmMv bGx2bS9sbHZtX3RvX2dlbi5jcHAKLWluZGV4IDdmN2RlZmZlLi45ZThjY2M2NyAxMDA2NDQKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fdG9fZ2VuLmNwcAotQEAgLTM1OCw3ICszNTgsNyBAQCBuYW1lc3BhY2UgZ2JlCi0g ICAgIHBhc3Nlcy5hZGQoY3JlYXRlU2NhbGFyUmVwbEFnZ3JlZ2F0ZXNQYXNzKDY0LCB0cnVlLCAt MSwgLTEsIDY0KSk7Ci0gI2VuZGlmCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlTG9hZFN0b3JlT3B0 aW1pemF0aW9uUGFzcygpKTsKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0 aW9uUGFzcygpKTsKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25Q YXNzKCkpOwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVByb21vdGVNZW1vcnlUb1JlZ2lzdGVyUGFz cygpKTsKLSAgICAgaWYob3B0TGV2ZWwgPiAwKQotICAgICAgIHBhc3Nlcy5hZGQoY3JlYXRlR1ZO UGFzcygpKTsgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSByZWR1bmRhbmNpZXMKLUBAIC0zNjcs MTEgKzM2NywxMSBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlU2NhbGFy aXplUGFzcygpKTsgICAgICAgICAgICAgLy8gRXhwYW5kIGFsbCB2ZWN0b3Igb3BzCi0gICAgIHBh c3Nlcy5hZGQoY3JlYXRlRXhwYW5kTGFyZ2VJbnRlZ2Vyc1Bhc3MoKSk7ICAgLy8gbGVnYWxpemUg bGFyZ2UgaW50ZWdlciBvcGVyYXRpb24KLSAgICAgcGFzc2VzLmFkZChjcmVhdGVJbnN0cnVjdGlv bkNvbWJpbmluZ1Bhc3MoKSk7ICAvLyBsZWdhbGl6ZSB3aWxsIGdlbmVyYXRlIHNvbWUgc2lsbHkg aW5zdHJ1Y3Rpb25zCi0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBh c3MoKSk7ICAgLy8gcHJvcGFnYXRlIGNvbnN0YW50IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6ZQot KyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7ICAgLy8g cHJvcGFnYXRlIGNvbnN0YW50IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6ZQotICAgICBwYXNzZXMu YWRkKGNyZWF0ZUV4cGFuZENvbnN0YW50RXhwclBhc3MoKSk7ICAgIC8vIGNvbnN0YW50IHByb3Ag bWF5IGdlbmVyYXRlIENvbnN0YW50RXhwcgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVByb21vdGVJ bnRlZ2Vyc1Bhc3MoKSk7ICAgICAgIC8vIGFsaWduIGludGVnZXIgc2l6ZSB0byBwb3dlciBvZiB0 d28KLSAgICAgcGFzc2VzLmFkZChjcmVhdGVSZW1vdmVHRVBQYXNzKHVuaXQpKTsgICAgICAgICAv LyBDb25zdGFudCBwcm9wIG1heSBnZW5lcmF0ZSBnZXAKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVE ZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVj dGlvbnMKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZURlYWRJbnN0RWxpbWluYXRpb25QYXNzKCkp OyAgIC8vIFJlbW92ZSBzaW1wbGlmaWVkIGluc3RydWN0aW9ucwotICAgICBwYXNzZXMuYWRkKGNy ZWF0ZUNGR1NpbXBsaWZpY2F0aW9uUGFzcygpKTsgICAgIC8vIE1lcmdlICYgcmVtb3ZlIEJCcwot ICAgICBwYXNzZXMuYWRkKGNyZWF0ZUxvd2VyU3dpdGNoUGFzcygpKTsgICAgICAgICAgIC8vIHNp bXBsaWZ5IGNmZyB3aWxsIGdlbmVyYXRlIHN3aXRjaC1jYXNlIGluc3RydWN0aW9uCi0gICAgIGlm IChwcm9maWxpbmcpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wu cGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjZWZhZmJiNjU1ODguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA QAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW4vZ2VuX21lc2FfZGlzYXNtLmMKLSsrKyBi L2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuL2dlbl9tZXNhX2Rpc2FzbS5jCi1AQCAtMTEzNyw3ICsx MTM3LDcgQEAgc3RhdGljIHVpbnQzMl90IF9fY29udl9oYWxmX3RvX2Zsb2F0KHVpbnQxNl90IGgp Ci0gICAgICAgLy8gQWRqdXN0IG1hbnRpc3NhIHNvIGl0J3Mgbm9ybWFsaXplZCAoYW5kIGtlZXAK LSAgICAgICAvLyB0cmFjayBvZiBleHBvbmVudCBhZGp1c3RtZW50KQotICAgICAgIGludCBlID0g LTE7Ci0tICAgICAgdWludCBtID0gaS5tYW50aXNzYTsKLSsgICAgICB1bnNpZ25lZCBpbnQgbSA9 IGkubWFudGlzc2E7Ci0gICAgICAgZG8gewotICAgICAgICAgZSsrOwotICAgICAgICAgbSA8PD0g MTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmVpZ25l dC90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNlNmJiYjdhZTI0Li4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlCisrKyAvZGV2L251bGwK QEAgLTEsMjIgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmVpZ25ldCcKLXBrZ25hbWU9 YmVpZ25ldAotdmVyc2lvbj0xLjMuMgotcmV2aXNpb249MTAKLWFyY2hzPSJpNjg2KiB4ODZfNjQq Igotd3Jrc3JjPSJCZWlnbmV0LSR7dmVyc2lvbn0tU291cmNlIgotYnVpbGRfc3R5bGU9Y21ha2UK LWhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgbGx2bSBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9Ik1l c2FMaWItZGV2ZWwgbGliZWRpdC1kZXZlbCBsaWJmZmktZGV2ZWwgb2NsLWljZC1kZXZlbCB6bGli LWRldmVsCi0gbGliWGZpeGVzLWRldmVsIgotZGVwZW5kcz0ib2NsLWljZCIKLXNob3J0X2Rlc2M9 IkJlaWduZXQgR1BHUFUgU3lzdGVtIGZvciBJbnRlbCBHUFVzIgotbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgot aG9tZXBhZ2U9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3dpa2kvU29mdHdhcmUvQmVpZ25l dC8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8vMDEub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvJHtwa2du YW1lfS0ke3ZlcnNpb259LXNvdXJjZS50YXIuZ3oiCi1jaGVja3N1bT1jNTU1ZWRiYTE0OWRlMjMy NDM5NjVhNzAzZjM5Zjc5ZmEwNmYxNWJjZmY1YTM3NjJiNTU0NGIwOTI1MDEwYjQzCi0KLXBvc3Rf aW5zdGFsbCgpIHsKLQkjIHJlbW92ZSBDTCBoZWFkZXJzLCB3ZSBkbyB1c2Ugb3BlbmNsLWhlYWRl cnMgaW5zdGVhZC4KLQlybSAtciAke0RFU1RESVJ9L3Vzci9pbmNsdWRlCi19CmRpZmYgLS1naXQg YS9zcmNwa2dzL2JlaWduZXQvdXBkYXRlIGIvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZQpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E0MWUwYWZlNjBjLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9iZWlnbmV0L3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXNpdGU9 Imh0dHBzOi8vMDEub3JnL2JlaWduZXQvZG93bmxvYWRzIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9y ZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBs YXRlCmluZGV4IGRmMjY0YzlkNzUwMS4uOTA1OWNjMDgzNDlkIDEwMDY0NAotLS0gYS9zcmNwa2dz L3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2Vz L3RlbXBsYXRlCkBAIC0yMyw2ICsyMyw3IEBAIHJlcGxhY2VzPSIKICBhdG9tPD0xLjQ0LjBfMQog IGF2b2dhZHJvLWRldmVsPD0xLjIuMF84CiAgYXZvZ2Fkcm88PTEuMi4wXzgKKyBiZWlnbmV0PD0x LjMuMgogIGJva2tlbjw9MS44XzMKICBib21pPD0wLjkuMTFfMTcKICBidXJwLWNsaWVudDw9MS40 LjQwXzEzCgpGcm9tIDAwZjZiNjk2ZTg3ZmUwYjliZTllOTBlOTY5MzRiYWE5YzU1MzQwMDUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVl aXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IEZlYiAyMDIyIDIy OjAwOjU0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOS8zMF0gbGx2bTEzOiB1cGRhdGUgdG8gMTMu MC4xLgoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgICB8IDIgKy0KIHNyY3BrZ3MvbGx2bTEz L3RlbXBsYXRlIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGx2bS90ZW1wbGF0ZQppbmRleCBiY2ZlZTgyMDk4ZmYuLjk2ZDE4ZjczMGZjYSAxMDA2NDQK LS0tIGEvc3JjcGtncy9sbHZtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQpA QCAtNCw4ICs0LDggQEAgdmVyc2lvbj0xMy4wLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l dGEKIGRlcGVuZHM9Imxsdm0xMyIKLXJlcGxhY2VzPSJsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0x MD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBz aG9ydF9kZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmciCityZXBsYWNlcz0ibGx2bTEyPj0wIGxsdm0xMT49 MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45 Pj0wIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0x My90ZW1wbGF0ZQppbmRleCBiZmM5MTA1NmQyNzcuLjhlNjczNzAxZmI5YiAxMDA2NDQKLS0tIGEv c3JjcGtncy9sbHZtMTMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTMvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsbHZtMTMnCiBwa2duYW1lPWxsdm0x MwotdmVyc2lvbj0xMy4wLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MTMuMC4xCityZXZpc2lvbj0x CiB3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZt CiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMzUsNyArMzUsNyBAQCBtYWludGFpbmVyPSJxNjYgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPiIKIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0 cHM6Ly93d3cubGx2bS5vcmciCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xs dm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9q ZWN0LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNoZWNrc3VtPTYwNzVhZDMwZjFhYzBlMTVmMDdj MWJmMDYyYzFlMTI2OGMyNDFkNjc0ZjExYmQzMmNkZjBlMDQwYzcxZjJiZjMKK2NoZWNrc3VtPTMy NjMzNWE4MzBmMmUzMmQwNmQwYTM2MzkzYjU0NTVkMTdkYzczZTBiZDEyMTEwNjUyMjdlZTAxNGY5 MmNiZjgKIGxpYjMyZGlzYWJsZWQ9eWVzCiBweXRob25fdmVyc2lvbj0zCiAKCkZyb20gMWRjNDY0 MDQyMDVlOWVhZTc2NDNkNjgzZTkzMWFlZjRmOTdiNmQ5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4KRGF0ZTogV2VkLCAy IE1hciAyMDIyIDIwOjQ5OjM3ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMC8zMF0gcml2ZXI6IHVw ZGF0ZSB0byAwLjEuMwoKLS0tCiAuLi5hYmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0 aWxlLnBhdGNoIHwgMTggKysrKysrKysrLS0tLS0tLS0tCiBzcmNwa2dzL3JpdmVyL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxMSBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JpdmVy L3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1yaXZlcnRpbGUucGF0 Y2ggYi9zcmNwa2dzL3JpdmVyL3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZl cmN0bC1yaXZlcnRpbGUucGF0Y2gKaW5kZXggZWNjNjgzMDJkYjA5Li45ZGEwZTVkNWQwNDMgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3Mvcml2ZXIvcGF0Y2hlcy8wMDAxLUVuYWJsZS1QSUUtZm9yLXJpdmVy LXJpdmVyY3RsLXJpdmVydGlsZS5wYXRjaAorKysgYi9zcmNwa2dzL3JpdmVyL3BhdGNoZXMvMDAw MS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1yaXZlcnRpbGUucGF0Y2gKQEAgLTEwLDMz ICsxMCwzMyBAQCBidWlsZCBzeXN0ZW0uIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ppZ2xhbmcv emlnL2lzc3Vlcy83MjAxCiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQogCiBkaWZm IC0tZ2l0IGEvYnVpbGQuemlnIGIvYnVpbGQuemlnCi1pbmRleCBkNTYxZjQ5Li44YWM5YTRlIDEw MDY0NAoraW5kZXggOTgyOTYzMy4uMTgwMTc5ZiAxMDA2NDQKIC0tLSBhL2J1aWxkLnppZwogKysr IGIvYnVpbGQuemlnCi1AQCAtODUsNiArODUsNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWls ZGVyKSAhdm9pZCB7CitAQCAtODksNiArODksNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWls ZGVyKSAhdm9pZCB7CiAgICAgICAgICBjb25zdCByaXZlciA9IGIuYWRkRXhlY3V0YWJsZSgicml2 ZXIiLCAicml2ZXIvbWFpbi56aWciKTsKICAgICAgICAgIHJpdmVyLnNldFRhcmdldCh0YXJnZXQp OwogICAgICAgICAgcml2ZXIuc2V0QnVpbGRNb2RlKG1vZGUpOwogKyAgICAgICAgcml2ZXIucGll ID0gdHJ1ZTsKLSAgICAgICAgIHJpdmVyLmFkZEJ1aWxkT3B0aW9uKGJvb2wsICJ4d2F5bGFuZCIs IHh3YXlsYW5kKTsKLSAgICAgICAgIHJpdmVyLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25zdCB1OCwg InZlcnNpb24iLCBmdWxsX3ZlcnNpb24pOworICAgICAgICAgcml2ZXIuYWRkT3B0aW9ucygiYnVp bGRfb3B0aW9ucyIsIG9wdGlvbnMpOwogIAotQEAgLTk3LDYgKzk4LDcgQEAgcHViIGZuIGJ1aWxk KGI6ICp6YnMuQnVpbGRlcikgIXZvaWQgeworICAgICAgICAgYWRkU2VydmVyRGVwcyhyaXZlciwg c2Nhbm5lcik7CitAQCAtMTAwLDYgKzEwMSw3IEBAIHB1YiBmbiBidWlsZChiOiAqemJzLkJ1aWxk ZXIpICF2b2lkIHsKICAgICAgICAgIGNvbnN0IHJpdmVyY3RsID0gYi5hZGRFeGVjdXRhYmxlKCJy aXZlcmN0bCIsICJyaXZlcmN0bC9tYWluLnppZyIpOwogICAgICAgICAgcml2ZXJjdGwuc2V0VGFy Z2V0KHRhcmdldCk7CiAgICAgICAgICByaXZlcmN0bC5zZXRCdWlsZE1vZGUobW9kZSk7CiArICAg ICAgICByaXZlcmN0bC5waWUgPSB0cnVlOwotICAgICAgICAgcml2ZXJjdGwuYWRkQnVpbGRPcHRp b24oWzowXWNvbnN0IHU4LCAidmVyc2lvbiIsIGZ1bGxfdmVyc2lvbik7CisgICAgICAgICByaXZl cmN0bC5hZGRPcHRpb25zKCJidWlsZF9vcHRpb25zIiwgb3B0aW9ucyk7CiAgCiAgICAgICAgICBy aXZlcmN0bC5zdGVwLmRlcGVuZE9uKCZzY2FubmVyLnN0ZXApOwotQEAgLTExNCw2ICsxMTYsNyBA QCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7CitAQCAtMTIwLDYgKzEyMiw3 IEBAIHB1YiBmbiBidWlsZChiOiAqemJzLkJ1aWxkZXIpICF2b2lkIHsKICAgICAgICAgIGNvbnN0 IHJpdmVydGlsZSA9IGIuYWRkRXhlY3V0YWJsZSgicml2ZXJ0aWxlIiwgInJpdmVydGlsZS9tYWlu LnppZyIpOwogICAgICAgICAgcml2ZXJ0aWxlLnNldFRhcmdldCh0YXJnZXQpOwogICAgICAgICAg cml2ZXJ0aWxlLnNldEJ1aWxkTW9kZShtb2RlKTsKICsgICAgICAgIHJpdmVydGlsZS5waWUgPSB0 cnVlOwotICAgICAgICAgcml2ZXJ0aWxlLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25zdCB1OCwgInZl cnNpb24iLCBmdWxsX3ZlcnNpb24pOworICAgICAgICAgcml2ZXJ0aWxlLmFkZE9wdGlvbnMoImJ1 aWxkX29wdGlvbnMiLCBvcHRpb25zKTsKICAKICAgICAgICAgIHJpdmVydGlsZS5zdGVwLmRlcGVu ZE9uKCZzY2FubmVyLnN0ZXApOwogLS0gCi0yLjMzLjEKKzIuMzUuMQogCmRpZmYgLS1naXQgYS9z cmNwa2dzL3JpdmVyL3RlbXBsYXRlIGIvc3JjcGtncy9yaXZlci90ZW1wbGF0ZQppbmRleCA5Y2Yz YWJlNGI4NWIuLmFlMDlhZTU0YjM0ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9yaXZlci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3JpdmVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncml2ZXInCiBwa2duYW1lPXJpdmVyCi12ZXJzaW9uPTAuMS4xCit2ZXJzaW9u PTAuMS4zCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT16aWctYnVpbGQKIGNvbmZpZ3VyZV9hcmdz PSIkKHZvcHRfaWYgeHdheWxhbmQgLUR4d2F5bGFuZCkiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50 YWluZXI9IklzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+IgogbGljZW5zZT0iR1BM LTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vcml2ZXJ3bS9yaXZl ciIKIGRpc3RmaWxlcz0iJHtob21lcGFnZX0vcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0v cml2ZXItJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0yYTBiY2Q0NjcwZWQ5ZWJkMzljMjc5 ZjJiZjEwODAzZmM2NWM5ZjNlZTIzMDdjZTQwNzI4ZGYyM2NlOTE0ZDE4CitjaGVja3N1bT1mNjM0 NDRjMzAwYWI1NTRlZjNjYTBkOTA0YTZiMTI0YTgzMmM4Mzk3ZDQ3NGVmMDY3YmRkZTkxMWM5ODFj NzlmCiAKIGJ1aWxkX29wdGlvbnM9Inh3YXlsYW5kIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJ4 d2F5bGFuZCIKCkZyb20gMGJiYzZhNmIwOGJkMWQ5NTg4NTY5OWY2YmRjZDE1ODgyMThkMjhhOCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJl dW5kLmNvbT4KRGF0ZTogV2VkLCAyIE1hciAyMDIyIDIwOjUwOjE3ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAyMS8zMF0gcnVuZGlyZDogcmVtb3ZlIHBhY2thZ2UKCiAgICBUaGlzIGhhcyBiZWVuIGRl cHJlY2F0ZWQgYnkgdXBzdHJlYW0gd2hpY2ggcmVjb21tZW5kcyB1c2luZwogICAgZHVtYl9ydW50 aW1lX2RpciAoYWxyZWFkeSBwYWNrYWdlZCBmb3Igdm9pZCkgaW5zdGVhZC4KCiAgICBSZW1vdmlu ZyBub3cgc2luY2UgcnVuZGlyZCAwLjIuMCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHppZyAwLjkg YW5kCiAgICB0aGVyZSB3b24ndCBiZSBhbnkgbmV3IHJ1bmRpcmQgcmVsZWFzZXMuCi0tLQogc3Jj cGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIHwgIDEgKwogc3JjcGtncy9ydW5kaXJkL2Zp bGVzL3J1bmRpcmQvcnVuIHwgIDIgLS0KIHNyY3BrZ3MvcnVuZGlyZC90ZW1wbGF0ZSAgICAgICAg ICB8IDE3IC0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxOSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3J1bmRpcmQvZmls ZXMvcnVuZGlyZC9ydW4KIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3J1bmRpcmQvdGVtcGxh dGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgYi9zcmNw a2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKaW5kZXggOTA1OWNjMDgzNDlkLi40ZjI0YzUy MzJkZDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKQEAgLTM2MCw2ICszNjAsNyBAQCBy ZXBsYWNlcz0iCiAgcmt0LXN0YWdlMS1jb3Jlb3M8PTEuMzAuMF8zCiAgcmt0LXN0YWdlMS1mbHk8 PTEuMzAuMF8zCiAgcmt0PD0xLjMwLjBfMworIHJ1bmRpcmQ8PTAuMi4wXzEKICBzY2FudGFpbG9y PD0wLjkuMTIuMV8yCiAgc2VhaG9yc2Utc2hhcmluZzw9My44LjBfNAogIHNlcmllc3BsPD0yLjMu NV8yCmRpZmYgLS1naXQgYS9zcmNwa2dzL3J1bmRpcmQvZmlsZXMvcnVuZGlyZC9ydW4gYi9zcmNw a2dzL3J1bmRpcmQvZmlsZXMvcnVuZGlyZC9ydW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGU0YWFlOGM4M2I0Yi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcnVuZGlyZC9maWxl cy9ydW5kaXJkL3J1bgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotIyEvYmluL3NoCi1l eGVjIHJ1bmRpcmQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVuZGlyZC90ZW1wbGF0ZSBiL3NyY3Br Z3MvcnVuZGlyZC90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZmODk3 YWJkNDU2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRlCisrKyAv ZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAncnVuZGlyZCcK LXBrZ25hbWU9cnVuZGlyZAotdmVyc2lvbj0wLjIuMAotcmV2aXNpb249MQotYnVpbGRfc3R5bGU9 emlnLWJ1aWxkCi1tYWtlZGVwZW5kcz0icGFtLWRldmVsIgotc2hvcnRfZGVzYz0iU2ltcGxlIGRh ZW1vbiArIFBBTSBtb2R1bGUgcHJvdmlkaW5nIGFuIFhER19SVU5USU1FX0RJUiIKLW1haW50YWlu ZXI9IklzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+IgotbGljZW5zZT0iR1BMLTMu MC1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vaWZyZXVuZC9ydW5kaXJk IgotZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKLWNo ZWNrc3VtPTFkZWEyMDdmMzkzODhlOGMyYzI3NWI4YTlhYWRhMDE2NmQxZjU4N2E4MDZmMmU1ZTQ0 ODZkOTgyNTllMjNlNGMKLQotcG9zdF9pbnN0YWxsKCkgewotCXZzdiBydW5kaXJkCi0JdmRvYyBS RUFETUUubWQKLX0KCkZyb20gMWJiMmZkMTJkZjQzMTVmYmU5MmVjZmU0YWVjZjdmNWY3MjdiODUz YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBD ZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAy MiAxMTo1NTo0NiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzBdIGJjYzogcmVidWlsZCBmb3Ig bGx2bTEzCgotLS0KIHNyY3BrZ3MvYmNjL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iY2Mv dGVtcGxhdGUgYi9zcmNwa2dzL2JjYy90ZW1wbGF0ZQppbmRleCA1NDUwOWI2M2Q1YTcuLjJjZmEw YTI5NzdkMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iY2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9i Y2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiY2MnCiBw a2duYW1lPWJjYwogdmVyc2lvbj0wLjI0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIHdya3Ny Yz0iYmNjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFJFVklTSU9OPSR7 dmVyc2lvbn0gLURFTkFCTEVfTExWTV9TSEFSRUQ9MSIKCkZyb20gMWI3YjRjOGYxOTQ5YzJhNWEz YThkZWUzZTY3MmEwZmI4NWIwZDZkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9V VEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgNCBNYXIgMjAyMiAxMTo1NjozMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjMv MzBdIGdub21lLWJ1aWxkZXI6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2dub21l LWJ1aWxkZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOTM1NTliMjE3NzRmLi41 YTVhNTE4OTNhZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1nbm9tZS1idWlsZGVyCiB2 ZXJzaW9uPTQxLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1EaGVscD10cnVlIC1EbmV0d29ya190 ZXN0cz1mYWxzZSIKCkZyb20gYTM3YjZkMjY1MGYxODI2NmNiYTg0NTNmZDhiZDAwOTAyZDNmYmE5 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBD ZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAy MiAxMTo1Njo1OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMzBdIGxkYzogcmVidWlsZCBmb3Ig bGx2bTEzCgotLS0KIHNyY3BrZ3MvbGRjL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGRjL3RlbXBsYXRlIGIvc3JjcGtncy9sZGMvdGVtcGxhdGUKaW5kZXggYTI3MjgwZGRlM2I4Li44 MDU5NzhhODFmZDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbGRjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGRj JwogcGtnbmFtZT1sZGMKIHZlcnNpb249MS4yOC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3 cmtzcmM9ImxkYy0ke3ZlcnNpb259LXNyYyIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVf YXJncz0iCkBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIKICAtREJBU0hfQ09NUExF VElPTl9DT01QTEVUSU9OU0RJUj0vdXNyL3NoYXJlL2Jhc2gtY29tcGxldGlvbgogIC1EQ19TWVNU RU1fTElCUz0ndW53aW5kO207cHRocmVhZDtydDtkbCciCiBjb25mX2ZpbGVzPSIvZXRjL2xkYzIu Y29uZiIKLWhvc3RtYWtlZGVwZW5kcz0iZG1kIGxsdm0xMiBwZXJsIHBrZy1jb25maWciCitob3N0 bWFrZWRlcGVuZHM9ImRtZCBsbHZtIHBlcmwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJsaWJj dXJsLWRldmVsIGxpYmZmaS1kZXZlbCBuY3Vyc2VzLWRldmVsIHpsaWItZGV2ZWwKICBsbHZtLWxp YnVud2luZC1kZXZlbCIKIGRlcGVuZHM9ImxkYy1ydW50aW1lIGxsdm0tbGlidW53aW5kLWRldmVs IgoKRnJvbSA0MjE3ZmFlNmRkYzMyMDM1NzYyZDM2YmM0ZDY1N2FhOTk4OTdjMTQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89 IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDExOjU4OjE3 ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyNS8zMF0gc2hpYm9rZW4yOiByZWJ1aWxkIGZvciBsbHZt MTMKCi0tLQogc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3No aWJva2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYx MzIyOWMxMy4uYWI5ZDJjNGNiOGY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hpYm9rZW4yCiB2ZXJzaW9u PTUuMTUuMgotcmV2aXNpb249NAorcmV2aXNpb249NQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1v cGVuc291cmNlLXNyYy0ke3ZlcnNpb259Igogd3Jrc3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81 LjE0LjJ9IgogYnVpbGRfd3Jrc3JjPSJzb3VyY2VzL3NoaWJva2VuMiIKCkZyb20gMTI3MzQzMzNl NWJiMDFkOGRlYmY4YmU5MjI3NmYwODM2MzZiZWY1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBn bWFpbC5jb20+CkRhdGU6IEZyaSwgNCBNYXIgMjAyMiAxMTo1ODoyMyArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMjYvMzBdIHRpbGl4OiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy90aWxp eC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUgYi9zcmNwa2dzL3Rp bGl4L3RlbXBsYXRlCmluZGV4IGQ4ZjAxNGJjNzhjNS4uYWMxYmY3ZGQzYmRkIDEwMDY0NAotLS0g YS9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0aWxpeCcKIHBrZ25hbWU9dGlsaXgK IHZlcnNpb249MS45LjQKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0iYXV0b21h a2UgZ2V0dGV4dC1kZXZlbCBnZGstcGl4YnVmIGdsaWItZGV2ZWwgbGRjIHBvNGEgcGtnLWNvbmZp ZwoKRnJvbSAxNGMwMWNmNTc0YmQ0ZWJkNjE5NTViZTJkZjY2YjU4NzgxNGQ0NzU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89 IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDEyOjEzOjE4 ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyNy8zMF0gcnVzdDogcmVidWlsZCBmb3IgbGx2bTEzCgot LS0KIHNyY3BrZ3MvcnVzdC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVzdC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcnVzdC90ZW1wbGF0ZQppbmRleCA1NjBhNjI5ZjNkYTIuLjI3ZjQ5 MWQzYzY5NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydXN0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv cnVzdC90ZW1wbGF0ZQpAQCAtOSwxMCArOSwxMCBAQAogIwogcGtnbmFtZT1ydXN0CiB2ZXJzaW9u PTEuNTcuMAotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJydXN0Yy0ke3ZlcnNpb259 LXNyYyIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgY3VybCBwa2ctY29uZmlnIHB5dGhvbjMgdGFy IGNhcmdvLWJvb3RzdHJhcCIKLW1ha2VkZXBlbmRzPSJsaWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZl bCBsaWJ4bWwyLWRldmVsIHpsaWItZGV2ZWwgbGx2bTEyIgorbWFrZWRlcGVuZHM9ImxpYmZmaS1k ZXZlbCBuY3Vyc2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgemxpYi1kZXZlbCBsbHZtIgogZGVwZW5k cz0icnVzdC1zdGQiCiBzaG9ydF9kZXNjPSJTYWZlLCBjb25jdXJyZW50LCBwcmFjdGljYWwgc3lz dGVtcyBsYW5ndWFnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCkBAIC0zNCw3ICszNCw3IEBAIGlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNs IiBdOyB0aGVuCiBmaQogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlob3N0bWFrZWRl cGVuZHMrPSIgcnVzdCBsbHZtMTIiCisJaG9zdG1ha2VkZXBlbmRzKz0iIHJ1c3QgbGx2bSIKIAkj IFRoZXNlIGFyZSByZXF1aXJlZCBmb3IgYnVpbGRpbmcgdGhlIGJ1aWxkaG9zdCdzIHN0YWdlMC8x CiAJaG9zdG1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCBsaWJ4bWwyLWRldmVsIG5jdXJzZXMt ZGV2ZWwgemxpYi1kZXZlbCIKIGVsc2UKCkZyb20gNmZkMmNlNWYwMTY5ZDgwZDhlZDFhNmI1NWI1 ODQxYWUxOTFhODdkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0Fu ZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjkgTWFyIDIwMjIgMDk6Mjg6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDI4LzMwXSBsbHZt MTM6IGFkZCBwYXRjaCB0byBidWlsZCBvbiB4ODZfNjQtbXVzbAoKLS0tCiAuLi42YmUwMTI4MWU5 YjM5YjEyZWNiYmIwZjFkNzU1ZDUyZTIxZjcucGF0Y2ggfCA1NSArKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvZDY5MDZiZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJl MjFmNy5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvZDY5MDZiZTAx MjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvZDY5MDZiZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNy5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQwMGIyMDk3MzA2MAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvZDY5MDZiZTAxMjgxZTliMzliMTJl Y2JiYjBmMWQ3NTVkNTJlMjFmNy5wYXRjaApAQCAtMCwwICsxLDU1IEBACitGcm9tIGQ2OTA2YmUw MTI4MWU5YjM5YjEyZWNiYmIwZjFkNzU1ZDUyZTIxZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBOZW5hZCBNaWtzYSA8bmVuYWQubWlrc2FAbWljcm9ibGluay5jb20+CitEYXRlOiBU dWUsIDUgT2N0IDIwMjEgMTQ6MDI6MzYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IGJ1aWxk IG9uIEFscGluZSBMaW51eAorCistIG1ha2Ugc3VyZSBsaWJleGVjaW5mbyBnZXRzIGxpbmtlZCBp bnRvIGNvbXBpbGVyLXJ0IHdoZW4gYnVpbGRpbmcKKyAgYWdhaW5zdCBtdXNsIGMgbGlicmFyeSBv biBBbHBpbmUgTGludXgKKy0tLQorIGNvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZSAg ICAgICAgICAgICAgIHwgMSArCisgY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0 ICAgICAgICAgICAgfCAyICsrCisgY29tcGlsZXItcnQvbGliL3NjdWRvL3N0YW5kYWxvbmUvQ01h a2VMaXN0cy50eHQgfCAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitk aWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlIGIvY29tcGlsZXIt cnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCitpbmRleCAzOWI5MTIwZjAwYWRmLi43M2QwMjc4ZGFl MTE0IDEwMDY0NAorLS0tIGEvY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCisrKysg Yi9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKK0BAIC0xNCw2ICsxNCw3IEBAIGZ1 bmN0aW9uKGNvbXBpbGVyX3J0X2NoZWNrX2xpbmtlcl9mbGFnIGZsYWcgb3V0X3ZhcikKKyBlbmRm dW5jdGlvbigpCisgCisgY2hlY2tfbGlicmFyeV9leGlzdHMoYyBmb3BlbiAiIiBDT01QSUxFUl9S VF9IQVNfTElCQykKKytjaGVja19saWJyYXJ5X2V4aXN0cyhleGVjaW5mbyBiYWNrdHJhY2UgIiIg Q09NUElMRVJfUlRfSEFTX0VYRUNJTkZPKQorIGlmIChDT01QSUxFUl9SVF9VU0VfQlVJTFRJTlNf TElCUkFSWSkKKyAgIGluY2x1ZGUoSGFuZGxlQ29tcGlsZXJSVCkKKyAgIGZpbmRfY29tcGlsZXJf cnRfbGlicmFyeShidWlsdGlucyAiIiBDT01QSUxFUl9SVF9CVUlMVElOU19MSUJSQVJZKQorZGlm ZiAtLWdpdCBhL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9DTWFrZUxpc3RzLnR4dCBiL2NvbXBpbGVy LXJ0L2xpYi9zY3Vkby9DTWFrZUxpc3RzLnR4dAoraW5kZXggZTU4MGQ2ZDE0MDhiZC4uZTk5MzY0 MTY5ZjQ5MiAxMDA2NDQKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9DTWFrZUxpc3RzLnR4 dAorKysrIGIvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0CitAQCAtMTQsMTEg KzE0LDEzIEBAIGFwcGVuZF9saXN0X2lmKENPTVBJTEVSX1JUX0hBU19MSUJQVEhSRUFEIHB0aHJl YWQgU0NVRE9fTUlOSU1BTF9EWU5BTUlDX0xJQlMpCisgYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJf UlRfSEFTX0xJQkxPRyBsb2cgU0NVRE9fTUlOSU1BTF9EWU5BTUlDX0xJQlMpCisgYXBwZW5kX2xp c3RfaWYoQ09NUElMRVJfUlRfSEFTX09NSVRfRlJBTUVfUE9JTlRFUl9GTEFHIC1mbm8tb21pdC1m cmFtZS1wb2ludGVyCisgICAgICAgICAgICAgICAgU0NVRE9fQ0ZMQUdTKQorK2FwcGVuZF9saXN0 X2lmKENPTVBJTEVSX1JUX0hBU19FWEVDSU5GTyBleGVjaW5mbyBTQ1VET19NSU5JTUFMX0RZTkFN SUNfTElCUykKKyAKKyBzZXQoU0NVRE9fRFlOQU1JQ19MSU5LX0ZMQUdTICR7U0FOSVRJWkVSX0NP TU1PTl9MSU5LX0ZMQUdTfSkKKyAjIFVzZSBnYy1zZWN0aW9ucyBieSBkZWZhdWx0IHRvIGF2b2lk IHVudXNlZCBjb2RlIGJlaW5nIHB1bGxlZCBpbi4KKyBsaXN0KEFQUEVORCBTQ1VET19EWU5BTUlD X0xJTktfRkxBR1MgLVdsLC0tZ2Mtc2VjdGlvbnMpCisgCisrCisgaWYoQU5EUk9JRCkKKyAjIFB1 dCBtb3N0IFNhbml0aXplciBzaGFyZWQgbGlicmFyaWVzIGluIHRoZSBnbG9iYWwgZ3JvdXAuIEZv ciBtb3JlIGRldGFpbHMsIHNlZQorICMgYW5kcm9pZC1jaGFuZ2VzLWZvci1uZGstZGV2ZWxvcGVy cy5tZCNjaGFuZ2VzLXRvLWxpYnJhcnktc2VhcmNoLW9yZGVyCitkaWZmIC0tZ2l0IGEvY29tcGls ZXItcnQvbGliL3NjdWRvL3N0YW5kYWxvbmUvQ01ha2VMaXN0cy50eHQgYi9jb21waWxlci1ydC9s aWIvc2N1ZG8vc3RhbmRhbG9uZS9DTWFrZUxpc3RzLnR4dAoraW5kZXggZDZmZmE0NDhkN2UwOS4u OTU5YWZlZGMwYzBjZCAxMDA2NDQKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9zdGFuZGFs b25lL0NNYWtlTGlzdHMudHh0CisrKysgYi9jb21waWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9u ZS9DTWFrZUxpc3RzLnR4dAorQEAgLTEzNCw2ICsxMzQsNyBAQCBlbmRpZigpCisgc2V0KFNDVURP X0xJTktfTElCUykKKyAKKyBhcHBlbmRfbGlzdF9pZihDT01QSUxFUl9SVF9IQVNfTElCUFRIUkVB RCAtcHRocmVhZCBTQ1VET19MSU5LX0ZMQUdTKQorK2FwcGVuZF9saXN0X2lmKENPTVBJTEVSX1JU X0hBU19FWEVDSU5GTyBleGVjaW5mbyBTQ1VET19MSU5LX0xJQlMpCisgCisgYXBwZW5kX2xpc3Rf aWYoRlVDSFNJQSB6aXJjb24gU0NVRE9fTElOS19MSUJTKQorIAoKRnJvbSBmZTZjZjQ0YjAyYjYz ZTk3ZWY0MWVhMGQxODFmNGM3NmVhMDEzMDU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWls LmNvbT4KRGF0ZTogV2VkLCAzMCBNYXIgMjAyMiAyMTowNDo1NyArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjkvMzBdIGdoZGw6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2doZGwvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2doZGwvdGVtcGxhdGUgYi9zcmNwa2dzL2doZGwvdGVt cGxhdGUKaW5kZXggZTc1NmQ4YzNjZDg3Li5jZjkwZTZmYzJhMjIgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ2hkbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2doZGwvdGVtcGxhdGUKQEAgLTUxLDcgKzUx LDcgQEAgZmkKIAogaWYgWyAiJGJ1aWxkX29wdGlvbl9sbHZtIiBdOyB0aGVuCiAJc3VicGFja2Fn ZXMrPSIgZ2hkbC1sbHZtIgotCW1ha2VkZXBlbmRzKz0iIGxsdm0xMiIKKwltYWtlZGVwZW5kcys9 IiBsbHZtMTMiCiBmaQogCiBkb19jb25maWd1cmUoKSB7CgpGcm9tIDQ1MDE1MGY5ZGE3OTQ1MzE2 MzE1NzE5YzdlN2U2ZmVkNTkzZjg4NzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29t PgpEYXRlOiBXZWQsIDMwIE1hciAyMDIyIDIxOjA2OjI5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAz MC8zMF0gU1BJUlYtTExWTS1UcmFuc2xhdG9yOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3Jj cGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQ SVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xh dG9yL3RlbXBsYXRlCmluZGV4IDI1MDRjYWJlZDM2Ny4uODUyYWE1Y2IzODQwIDEwMDY0NAotLS0g YS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQ SVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ1NQSVJWLUxMVk0tVHJhbnNsYXRvcicKIHBrZ25hbWU9U1BJUlYtTExWTS1UcmFu c2xhdG9yCiB2ZXJzaW9uPTEyLjAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Y21ha2UKIG1ha2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKIGNvbmZpZ3VyZV9hcmdzPSIt V25vLWRldiAtRExMVk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTgo= --===============9123032447929664997==--