From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 2060 invoked from network); 24 Feb 2023 12:43:12 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Feb 2023 12:43:12 -0000 Content-Type: multipart/mixed; boundary="===============7564865848133425320==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Calibre=3A_update_to_6=2E2=2E1?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 24 Feb 2023 13:43:12 +0100 List-Id: Message-ID: <20230224124312.zrAEoT_ELxBLEgtyTsklpi__waVYSc084gmTZmrh9eI@z> GitHub notification mails are now in MIME to allow UTF8. --===============7564865848133425320== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBjYWxpYnJlCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8zODUzNQoKQ2FsaWJyZTogdXBkYXRlIHRvIDYuMi4xCjwhLS0gVW5jb21tZW50 IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFwcGxp Y2FibGUgLS0+DQoNCltjaSBza2lwXSBAc2ttcHogDQpEZXBlbmRzIG9uIGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODUwOQ0KDQojIyMjIFRlc3Rpbmcg dGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5 KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1z IHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1l bnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBs aWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBh cyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFu ZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxl YXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBu b3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJ IGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gt TElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMg KGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0g YXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg1MzUucGF0Y2ggaXMg YXR0YWNoZWQ= --===============7564865848133425320== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-calibre-38535.patch" RnJvbSAxZDViMTlkNjA4MzI4NjUxZjE3NGFhODRjMzQ2MGFiOWVlMzllZDIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAxLzhdIE5ldyBwYWNr YWdlOiBxdDYtd2ViZW5naW5lLTYuMy4xLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVs ICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxl cyAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcu cGF0Y2ggICAgICAgICAgfCAgMTEgKwogLi4uL3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNo ICAgICAgICAgICAgIHwgIDEwICsKIC4uLi9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hl Y2sucGF0Y2ggICB8ICAxNCArCiAuLi4vMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRj aCAgICAgICAgfCAxNTQgKysrKwogLi4ub21pdW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNs dWRlLnBhdGNoIHwgIDIwICsKIC4uLjEwMi1jaHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJh eS5wYXRjaCB8ICAxNCArCiAuLi4wMTAzLWNocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUu cGF0Y2ggfCAgMjMgKwogLi4uLzAxMDQtY2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoICAg ICAgIHwgIDEwICsKIC4uLi1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRj aCB8ICAxNSArCiAuLi4vcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gg fCAgMjkgKwogLi4uL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaCAgIHwg IDY1ICsrCiAuLi4vMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoICAgfCAg MTggKwogLi4uY2hyb21pdW0tYWFyY2g2NC1tdXNsLW1lbW9yeS10YWdnaW5nLnBhdGNoIHwgIDI5 ICsKIC4uLmZpeC1taXNzaW5nLVRFTVBfRkFJTFVSRV9SRVRSWS1tYWNyby5wYXRjaCB8ICAyMSAr CiAuLi4vcGF0Y2hlcy8wMTExLWNocm9taXVtLWNzdGRpbnQucGF0Y2ggICAgICAgfCAgMTAgKwog Li4uL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11bmlzdGQuaC5wYXRjaCAgICAgIHwgIDEwICsKIC4u Li8wMTEzLWNocm9taXVtLXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoICAgICB8ICAxNiArCiAuLi4v cGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoICAgICAgfCAgNTMgKysKIC4uLjUt Y2hyb21pdW0tbm8tY2Fub25pY2FsaXplLWZpbGUtbmFtZS5wYXRjaCB8ICAxMiArCiAuLi4vMDEx Ni1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRjaCAgfCAgMjIgKwogLi4uL3BhdGNo ZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIHwgIDY0ICsrCiAuLi4vMDExOS1j aHJvbWl1bS1tdXNsLXN0YWNrLXV0aWxzLnBhdGNoICAgICAgfCAgMjAgKwogLi4uL3BhdGNoZXMv MDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRjaCAgIHwgIDM0ICsKIC4uLi9wYXRjaGVzLzAx MjEtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoICAgICB8ICAxMiArCiAuLi4vcGF0Y2hlcy8wMTIy LWNocm9taXVtLWNvbmRpdGlvbl92YXIucGF0Y2ggfCAgMjIgKwogLi4uLzAxMjMtY2hyb21pdW0t bXVzbC1uby1leGVjaW5mby5wYXRjaCAgICAgIHwgIDc1ICsrCiAuLi4vMDEyMy1jaHJvbWl1bS1t dXNsLW5vLWdldGNvbnRleHQucGF0Y2ggICAgfCAgMjcgKwogLi4uL3BhdGNoZXMvMDEyNC1jaHJv bWl1bS1lbmFibGUtaTY4Ni5wYXRjaCAgIHwgIDE3ICsKIC4uLi8wMTI1LWNocm9taXVtLXJlbW92 ZS1zdHJpcF9iaW5hcnkucGF0Y2ggICB8ICAzMiArCiAuLi4vcGF0Y2hlcy8wMTI2LWNocm9taXVt LW5vLWNkZWZzLnBhdGNoICAgICAgfCAgMzkgKwogLi4uLzAxMjgtY2hyb21pdW0tc2FuZGJveC1t ZW1iYXJyaWVyLnBhdGNoICAgIHwgIDEwICsKIC4uLi8wMTI5LWNocm9taXVtLXNhbmRib3gtc2hl ZF9nZXRwYXJhbS5wYXRjaCB8ICAyMCArCiAuLi51bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9m aXJzdF9kdHMucGF0Y2ggfCAgMTAgKwogLi4uMS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9v bGNoYWluLnBhdGNoIHwgIDEzICsKIC4uLi9wYXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNp emVfdC5wYXRjaCB8ICAxMCArCiAuLi4vcGF0Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXpl X3QucGF0Y2ggfCAgMTYgKwogLi4uL3BhdGNoZXMvMDE1NC1jaHJvbWl1bS11aXRfdC5wYXRjaCAg ICAgICAgIHwgIDExICsKIC4uLi9wYXRjaGVzLzAyMDAtY2hyb21pdW0tc25kaW8ucGF0Y2ggICAg ICAgICB8IDg0OSArKysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzLzAzMDAtY2hyb21pdW0t bXVzbC1oYWNrcy5wYXRjaCAgICB8ICA1MiArKwogLi4uL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1t dXNsLXNhbmRib3gucGF0Y2ggIHwgIDg2ICsrCiAuLi4vcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5v LW1hbGxpbmZvLnBhdGNoICAgfCAgNjcgKysKIC4uLi9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24u cGF0Y2ggICAgICAgICAgICB8ICAxMCArCiAuLi4tY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21f cHRyYWNlX2gucGF0Y2ggfCAgMzAgKwogLi4uLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92 ZnAucGF0Y2ggICAgIHwgIDIwICsKIC4uLi8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2 X3QucGF0Y2ggICB8ICAxOCArCiAuLi4vcGF0Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4YW1wbGVz LnBhdGNoICAgfCAgMTYgKwogc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAg ICAgICAgIHwgMTgzICsrKysKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUgICAgICAgICAg ICAgICAgICB8ICAgMSArCiA1MSBmaWxlcyBjaGFuZ2VkLCAyMzI5IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2Rl IDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNy b3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQw ODBjMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMDEtY2hyb21pdW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJv bWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVy bWlzc2l2ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMDQtY2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQt ZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21p dW0tY3Jvc3MtYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9t aXVtLWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3Npbmct VEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1jaHJvbWl1 bS11bmlzdGQuaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRocmVhZC1zdGFja3NpemUucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJy b3ctaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExNS1jaHJvbWl1bS1uby1jYW5vbmljYWxpemUtZmlsZS1uYW1lLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1 bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTctY2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hy b21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjAtY2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9t aXVtLW11c2wtc3RhdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMjItY2hyb21pdW0tY29uZGl0aW9uX3Zhci5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVz bC1uby1leGVjaW5mby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1 bS1lbmFibGUtaTY4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjYtY2hyb21p dW0tbm8tY2RlZnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTI4LWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21pdW0t c2FuZGJveC1zaGVkX2dldHBhcmFtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS11bmJ1bmRsZS1mZm1wZWctYXZfc3Ry ZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTUxLWNocm9taXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hhaW4u cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTUyLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0 LWNocm9taXVtLXVpdF90LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDAtY2hyb21pdW0tbXVzbC1oYWNr cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMi1jaHJvbWl1bS1uby1tYWxsaW5mby5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAt YXJtdjdsLW5lb24ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1j aHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZf dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggMjgyZjA1ODNkMmIxLi5hYzVlYTNiNDZiM2YgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjA5NCw2ICsyMDk0LDEzIEBAIGxpYlF0 NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0aW9uLTYuMi4wYWxwaGFfMQogbGliUXQ2TXVsdGlt ZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlh UXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhLnNvLjYg cXQ2LW11bHRpbWVkaWEtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5lUXVpY2suc28uNiBxdDYtd2Vi ZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZldpZGdldHMuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4x XzEKK2xpYlF0NlBkZlF1aWNrLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJF bmdpbmVDb3JlLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZQZGYuc28uNiBxdDYt d2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2luZVF1aWNrRGVsZWdhdGVzUW1sLnNvLjYg cXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVXaWRnZXRzLnNvLjYgcXQ2LXdl YmVuZ2luZS02LjMuMV8xCiBsaWJucHRoLnNvLjAgbnB0aC0xLjFfMQogbGlibnB1cG5wLnNvLjkg bGlibnB1cG5wLTUuMC4wXzEKIGxpYmdsZncuc28uMyBnbGZ3LTMuMC40XzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZl bApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4Nwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAtMCwwICsx IEBACitxdDYtd2ViZW5naW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l LWV4YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFi OTljNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVz CkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8t ZGVidWcucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8t ZGVidWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjIx ZmRjZDM5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIHF0Ni13ZWJl bmdpbmUtNi40LjIub3JpZy9jbWFrZS9GdW5jdGlvbnMuY21ha2UKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL2NtYWtlL0Z1bmN0aW9ucy5jbWFrZQorQEAgLTgyMCw2ICs4MjAsOCBAQCBtYWNybyhh cHBlbmRfYnVpbGRfdHlwZV9zZXR1cCkKKyAgICAgICAgIGVuZGlmKCkKKyAgICAgZWxzZWlmKCR7 Y29uZmlnfSBTVFJFUVVBTCAiTWluU2l6ZVJlbCIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFy Z0FyZyBpc19kZWJ1Zz1mYWxzZSBzeW1ib2xfbGV2ZWw9MCBvcHRpbWl6ZV9mb3Jfc2l6ZT10cnVl KQorKyAgICBlbHNlaWYoJHtjb25maWd9IFNUUkVRVUFMICJOb25lIikKKysgICAgICAgIGxpc3Qo QVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZhbHNlIHN5bWJvbF9sZXZlbD0wKQorICAgICBlbmRp ZigpCisgICAgIGlmKEZFQVRVUkVfZGV2ZWxvcGVyX2J1aWxkIE9SICgke2NvbmZpZ30gU1RSRVFV QUwgIkRlYnVnIikgT1IgUVRfRkVBVFVSRV93ZWJlbmdpbmVfc2FuaXRpemVyKQorICAgICAgICAg bGlzdChBUFBFTkQgZ25BcmdBcmcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmEzZjBhNTc5MTQwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy9jb3JlL2FwaS9DTWFrZUxpc3RzLnR4dAor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjL2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CitAQCAt NTEsNiArNTEsNyBAQCBxdF9pbnRlcm5hbF9hZGRfbW9kdWxlKFdlYkVuZ2luZUNvcmUKKyAgICAg ICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpOZXR3b3JrCisgICAgICAgICBRdDo6UXVpY2sKKysg ICAgICAgIFgxMQorICkKKyAKKyBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViRW5naW5lQ29yZSBQ Uk9QRVJUSUVTIFFUV0VCRU5HSU5FUFJPQ0VTU19OQU1FICR7cXRXZWJFbmdpbmVQcm9jZXNzTmFt ZX0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWds aWJjLWNtYWtlLWNoZWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1 MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQ5MTE2ZGM1ODU3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKQEAgLTAs MCArMSwxNCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9jb25maWd1cmUuY21ha2UK KysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL2NvbmZpZ3VyZS5jbWFrZQorQEAgLTQ5OSwxMSArNDk5 LDYgQEAgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorICkKKyBhZGRfY2hlY2tfZm9yX3N1cHBvcnQo CisgICAgTU9EVUxFUyBRdFdlYkVuZ2luZSBRdFBkZgorLSAgIENPTkRJVElPTiBOT1QgTElOVVgg T1IgVEVTVF9nbGliYworLSAgIE1FU1NBR0UgIkEgc3VpdGFibGUgdmVyc2lvbiA+PSAyLjE3IG9m IGdsaWJjIGlzIHJlcXVpcmVkLiIKKy0pCistYWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorLSAgIE1P RFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYKKyAgICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1Rf a2hyCisgICAgTUVTU0FHRSAiQnVpbGQgcmVxdWlyZXMgS2hyb25vcyBkZXZlbG9wbWVudCBoZWFk ZXJzIGZvciBidWlsZCAtIHNlZSBtZXNhL2xpYmVnbDEtbWVzYS1kZXYiCisgKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQw ODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0t cmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5hZGNhMzY0YTQwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBhdGNoCkBAIC0wLDAgKzEs MTU0IEBACitSZXZlcnQgOWQwODBjMDkzNGI4NDhlZTRhMDUwMTNjNzg2NDFlNjEyZmNjMWUwMwor CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWls ZC9jb25maWcvc2FuaXRpemVycy9CVUlMRC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9zYW5pdGl6ZXJzL0JVSUxELmduCitAQCAt MjcxLDExICsyNzEsMTEgQEAgY29uZmlnKCJhc2FuX2ZsYWdzIikgeworICAgaWYgKGlzX2FzYW4p IHsKKyAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemU9YWRkcmVzcyIgXQorICAgICBpZiAoaXNf d2luKSB7CistICAgICAgaWYgKCFkZWZpbmVkKGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoKSkgewor LSAgICAgICAgYXNhbl93aW5fYmxvY2tsaXN0X3BhdGggPQorKyAgICAgIGlmICghZGVmaW5lZChh c2FuX3dpbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICAgIGFzYW5fd2luX2JsYWNrbGlzdF9w YXRoID0KKyAgICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tZW1vcnkvYXNhbi9ibG9j a2xpc3Rfd2luLnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICAgIH0KKy0gICAgICBjZmxhZ3Mg Kz0gWyAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCIgXQor KyAgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplLWJsYWNrbGlzdD0kYXNhbl93aW5fYmxhY2ts aXN0X3BhdGgiIF0KKyAgICAgfQorICAgfQorIH0KK0BAIC0zMDUsMTMgKzMwNSwxMyBAQCBjb25m aWcoImxpbmtfc2hhcmVkX2xpYnJhcnkiKSB7CisgY29uZmlnKCJjZmlfZmxhZ3MiKSB7CisgICBj ZmxhZ3MgPSBbXQorICAgaWYgKGlzX2NmaSAmJiBjdXJyZW50X3Rvb2xjaGFpbiA9PSBkZWZhdWx0 X3Rvb2xjaGFpbikgeworLSAgICBpZiAoIWRlZmluZWQoY2ZpX2lnbm9yZWxpc3RfcGF0aCkpIHsK Ky0gICAgICBjZmlfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKGNmaV9ibGFj a2xpc3RfcGF0aCkpIHsKKysgICAgICBjZmlfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICBy ZWJhc2VfcGF0aCgiLy90b29scy9jZmkvaWdub3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikKKyAg ICAgfQorICAgICBjZmxhZ3MgKz0gWworICAgICAgICItZnNhbml0aXplPWNmaS12Y2FsbCIsCist ICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kY2ZpX2lnbm9yZWxpc3RfcGF0aCIsCisrICAg ICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRjZmlfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisg CisgICAgIGlmICh1c2VfY2ZpX2Nhc3QpIHsKK0BAIC00MDgsMTQgKzQwOCwxNCBAQCBjb25maWco Im1zYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNfbXNhbikgeworICAgICBhc3NlcnQoaXNfbGludXgg fHwgaXNfY2hyb21lb3MsCisgICAgICAgICAgICAibXNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51 eCB4ODZfNjQvQ2hyb21lT1MiKQorLSAgICBpZiAoIWRlZmluZWQobXNhbl9pZ25vcmVsaXN0X3Bh dGgpKSB7CistICAgICAgbXNhbl9pZ25vcmVsaXN0X3BhdGggPQorLSAgICAgICAgICByZWJhc2Vf cGF0aCgiLy90b29scy9tc2FuL2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisrICAg IGlmICghZGVmaW5lZChtc2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIG1zYW5fYmxhY2ts aXN0X3BhdGggPQorKyAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2JsYWNrbGlz dC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAg Ii1mc2FuaXRpemU9bWVtb3J5IiwKKyAgICAgICAiLWZzYW5pdGl6ZS1tZW1vcnktdHJhY2stb3Jp Z2lucz0kbXNhbl90cmFja19vcmlnaW5zIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0 PSRtc2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRt c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC00MjMsMTMgKzQyMywx MyBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworICAg aWYgKGlzX3RzYW4pIHsKKyAgICAgYXNzZXJ0KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zLCAidHNh biBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQiKQorLSAgICBpZiAoIWRlZmluZWQodHNh bl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdHNhbl9pZ25vcmVsaXN0X3BhdGggPQorKyAg ICBpZiAoIWRlZmluZWQodHNhbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB0c2FuX2JsYWNr bGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvbWVtb3J5L3RzYW5f djIvaWdub3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBb CisgICAgICAgIi1mc2FuaXRpemU9dGhyZWFkIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVs aXN0PSR0c2FuX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0 PSR0c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC00MzcsOCArNDM3 LDggQEAgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7Cisg ICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX3Vic2FuKSB7CistICAgIGlmICghZGVmaW5lZCh1YnNh bl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgdWJzYW5faWdub3JlbGlzdF9wYXRoID0KKysg ICAgaWYgKCFkZWZpbmVkKHVic2FuX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHVic2FuX2Js YWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4vaWdu b3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWwor QEAgLTQ1NSw3ICs0NTUsNyBAQCBjb25maWcoInVic2FuX2ZsYWdzIikgeworICAgICAgICItZnNh bml0aXplPXNpZ25lZC1pbnRlZ2VyLW92ZXJmbG93IiwKKyAgICAgICAiLWZzYW5pdGl6ZT11bnJl YWNoYWJsZSIsCisgICAgICAgIi1mc2FuaXRpemU9dmxhLWJvdW5kIiwKKy0gICAgICAiLWZzYW5p dGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0 aXplLWJsYWNrbGlzdD0kdWJzYW5fYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICAgIGlmICgh aXNfY2xhbmcpIHsKKyAgICAgICAjIFRoZXNlIGV4cG9zZXMgdG9vIG11Y2ggaWxsZWdhbCBDKysx NCBjb2RlIHRvIGNvbXBpbGUgb24gYW55dGhpbmcgc3RyaWN0ZXIgdGhhbiBjbGFuZzoKK0BAIC00 OTYsOCArNDk2LDggQEAgY29uZmlnKCJ1YnNhbl9ub19yZWNvdmVyIikgeworIAorIGNvbmZpZygi dWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7CisgICBpZiAoaXNfdWJzYW5fc2VjdXJpdHkpIHsKKy0g ICAgaWYgKCFkZWZpbmVkKHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAg ICB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJz YW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fc2VjdXJpdHlfYmxh Y2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy91YnNhbi9zZWN1 cml0eV9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFn cyA9IFsKK0BAIC01MDUsNyArNTA1LDcgQEAgY29uZmlnKCJ1YnNhbl9zZWN1cml0eV9mbGFncyIp IHsKKyAgICAgICAiLWZzYW5pdGl6ZT1zaGlmdCIsCisgICAgICAgIi1mc2FuaXRpemU9c2lnbmVk LWludGVnZXItb3ZlcmZsb3ciLAorICAgICAgICItZnNhbml0aXplPXZsYS1ib3VuZCIsCistICAg ICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRo IiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JHVic2FuX3NlY3VyaXR5X2JsYWNrbGlz dF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0KK0BAIC01MTgsMTMgKzUxOCwxMyBAQCBjb25maWco InVic2FuX251bGxfZmxhZ3MiKSB7CisgCisgY29uZmlnKCJ1YnNhbl92cHRyX2ZsYWdzIikgewor ICAgaWYgKGlzX3Vic2FuX3ZwdHIpIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfaWdu b3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoID0KKysg ICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJz YW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xz L3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAg ICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dnB0ciIsCistICAgICAgIi1mc2FuaXRp emUtaWdub3JlbGlzdD0kdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNh bml0aXplLWJsYWNrbGlzdD0kdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAg ICAgaWYgKCFpc19jbGFuZykgeworICAgICAgICMgQ2xhbmcgc3BlY2lmaWMgZmxhZzoKKy0tLSBx dDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJy aWRlcy9idWlsZC5nbmkKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCitAQCAtNDMsMTUgKzQzLDE1IEBAIGRlY2xh cmVfYXJncygpIHsKKyAjIEFsbG93cyBkaWZmZXJlbnQgcHJvamVjdHMgdG8gc3BlY2lmeSB0aGVp ciBvd24gc3VwcHJlc3Npb24vaWdub3JlIGxpc3RzIGZvcgorICMgc2FuaXRpemVyIHRvb2xzLgor ICMgYXNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9ICJwYXRoL3RvL2FzYW5fc3VwcHJlc3Npb25zLmNj IgorLSMgYXNhbl93aW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rf d2luLnR4dCIKKysjIGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9j a2xpc3Rfd2luLnR4dCIKKyAjIGxzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by9sc2Fu X3N1cHByZXNzaW9ucy5jYyIKKyAjIHRzYW5fc3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by90 c2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIHRzYW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8v dHNhbi9pZ25vcmVzLnR4dCIKKy0jIG1zYW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vbXNh bi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2FuX2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vi c2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJzYW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPSAicGF0 aC90by91YnNhbi92cHRyX2lnbm9yZWxpc3QudHh0IgorLSMgdWJzYW5fc2VjdXJpdHlfaWdub3Jl bGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfaWdub3JlbGlzdC50eHQiCistIyBj ZmlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vY2ZpL2lnbm9yZXMudHh0IgorKyMgdHNhbl9i bGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3RzYW4vaWdub3Jlcy50eHQiCisrIyBtc2FuX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJzYW5fYmxhY2ts aXN0X3BhdGggPSAicGF0aC90by91YnNhbi9ibGFja2xpc3QudHh0IgorKyMgdWJzYW5fdnB0cl9i bGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL3ZwdHJfYmxhY2tsaXN0LnR4dCIKKysjIHVi c2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfYmxh Y2tsaXN0LnR4dCIKKysjIGNmaV9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVz LnR4dCIKKyAKKyBpZiAoaG9zdF9vcyA9PSAibWFjIiB8fCBpc19hcHBsZSkgeworICAgIyBOZWVk ZWQgZm9yIGlzX2FwcGxlIHdoZW4gdGFyZ2V0aW5nIG1hY09TIG9yIGlPUywgaW5kZXBlbmRlbnQg b2YgaG9zdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEt Y2hyb21pdW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1jaHJvbWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxz LWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5m NDFjNzk4NDg0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTAxLWNocm9taXVtLTEwMi1mZW5jZWRfZnJhbWVfdXRpbHMtaW5jbHVkZS5wYXRjaApA QCAtMCwwICsxLDIwIEBACitGcm9tIDdjMTM1YTI5MTE4NGI1OWE1OTY0M2VkNmE4YzQwYjQ0MDVh YzAxNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBXZWQsIDI3IEFwciAyMDIyIDE2OjAxOjAxICsw MDAwCitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6IGFkZCBjc3RyaW5nIGZvciBzdGQ6OnN0cmxlbiBp biBmZW5jZWRfZnJhbWVfdXRpbHMKKworLS0tCisgdGhpcmRfcGFydHkvYmxpbmsvY29tbW9uL2Zl bmNlZF9mcmFtZS9mZW5jZWRfZnJhbWVfdXRpbHMuY2MgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQorCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9jb21tb24vZmVuY2VkX2ZyYW1lL2ZlbmNl ZF9mcmFtZV91dGlscy5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL2NvbW1vbi9mZW5jZWRfZnJhbWUvZmVuY2VkX2ZyYW1l X3V0aWxzLmNjCitAQCAtNiw2ICs2LDggQEAKKyAKKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKysj aW5jbHVkZSA8Y3N0cmluZz4KKysKKyAjaW5jbHVkZSAiYmFzZS9ndWlkLmgiCisgI2luY2x1ZGUg ImJhc2Uvc3RyaW5ncy9zdHJpbmdfdXRpbC5oIgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tMTAyLXJl Z2V4X3BhdHRlcm4tYXJyYXkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi40MjBlZjk0MWEzODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBhdGNo CkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL0JVSUxELmduCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvQlVJTEQuZ24KK0BAIC0zNCw2ICszNCwxMSBAQCBhY3Rpb24o InJlZ2V4X3BhdHRlcm5zX2lubF9oIikgeworIH0KKyAKKyBqdW1ib19zdGF0aWNfbGlicmFyeSgi YnJvd3NlciIpIHsKKysgIGlmIChpc19jbGFuZykgeworKyAgICBjZmxhZ3MgPSBbCisrICAgICAg Ii1mYnJhY2tldC1kZXB0aD0xMDAwIiwKKysgICAgXQorKyAgfQorICAgc291cmNlcyA9IFsKKyAg ICAgImFkZHJlc3Nfbm9ybWFsaXphdGlvbl9tYW5hZ2VyLmNjIiwKKyAgICAgImFkZHJlc3Nfbm9y bWFsaXphdGlvbl9tYW5hZ2VyLmgiLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJt aXNzaXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzA4 ZDU2N2EwNGRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCkBAIC0wLDAgKzEs MjMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgorQEAgLTE0LDYgKzE0LDEy IEBAIGltcG9ydCgiLy91aS9nbC9mZWF0dXJlcy5nbmkiKQorIGFzc2VydChpc19saW51eCB8fCBp c19jaHJvbWVvcykKKyBhc3NlcnQodXNlX3ZhYXBpKQorIAorK2NvbmZpZygidmFhcGlfcGVybWlz c2l2ZSIpIHsKKysgIGlmICh0YXJnZXRfY3B1ID09ICJ4ODYiKSB7CisrICAgIGNmbGFncyA9IFsg Ii1mcGVybWlzc2l2ZSIgXQorKyAgfQorK30KKysKKyBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1 YnMiKSB7CisgICBleHRyYV9oZWFkZXIgPSAidmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCisgICBz aWdzID0gWyAidmEuc2lncyIgXQorQEAgLTg5LDYgKzk1LDcgQEAgc291cmNlX3NldCgidmFhcGki KSB7CisgICBjb25maWdzICs9IFsKKyAgICAgIi8vYnVpbGQvY29uZmlnL2xpbnV4L2xpYnZhIiwK KyAgICAgIi8vdGhpcmRfcGFydHkvbGlidnB4OmxpYnZweF9jb25maWciLAorKyAgICAiOnZhYXBp X3Blcm1pc3NpdmUiLAorICAgXQorIAorICAgZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5i dW5kbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYWNh NDg0YWJjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTA0LWNocm9taXVtLWxpYnhtbC11bmJ1bmRsZS5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9s aW51eC91bmJ1bmRsZS9saWJ4bWwuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ4bWwuZ24KK0BAIC0xOSw2ICsx OSw3IEBAIHN0YXRpY19saWJyYXJ5KCJsaWJ4bWxfdXRpbHMiKSB7CisgICAgICI6eG1sX3JlYWRl ciIsCisgICAgICI6eG1sX3dyaXRlciIsCisgICAgICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQi LAorKyAgICAiLy9zZXJ2aWNlcy9kYXRhX2RlY29kZXI6bGliIiwKKyAgICAgIi8vc2VydmljZXMv ZGF0YV9kZWNvZGVyOnhtbF9wYXJzZXJfZnV6emVyX2RlcHMiLAorICAgXQorICAgc291cmNlcyA9 IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21p dW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDZhYmY3YWRjYWJjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJv bWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitU aGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJlYXNvbiBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEz OWU1YzEwZTYzNDZhMGY3NGVmCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jbG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5Cisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQorQEAgLTEzLDggKzEzLDkgQEAgaW1wb3J0IHN1 YnByb2Nlc3MKKyAKKyAKKyBfQ1VSUkVOVF9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu YW1lKF9fZmlsZV9fKSkKKy1fSkFWQV9QQVRIID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwg Ii4uIiwgImpkayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZhIikKKy1hc3NlcnQgb3MucGF0aC5p c2ZpbGUoX0pBVkFfUEFUSCksICJqYXZhIG9ubHkgYWxsb3dlZCBpbiBhbmRyb2lkIGJ1aWxkcyIK KytfSkFWQV9CSU4gPSAiamF2YSIKKytfSkRLX1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRf RElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQiLCAiYmluIiwgImphdmEiKQorK19KQVZBX1BBVEgg PSBfSkRLX1BBVEggaWYgb3MucGF0aC5pc2ZpbGUoX0pES19QQVRIKSBlbHNlIF9KQVZBX0JJTgor IAorIGNsYXNzIENvbXBpbGVyKG9iamVjdCk6CisgICAiIiJSdW5zIHRoZSBDbG9zdXJlIGNvbXBp bGVyIG9uIGdpdmVuIHNvdXJjZSBmaWxlcyB0byB0eXBlY2hlY2sgdGhlbQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpz LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0 ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MTY0OGY3NjRlYTE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L25vZGUvbm9kZS5weQorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorQEAgLTE4LDI1ICsxOCw3IEBAIGRl ZiB3aGljaChjbWQpOgorICAgICByZXR1cm4gTm9uZQorIAorIGRlZiBHZXRCaW5hcnlQYXRoKCk6 CistICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKy0gICAgbm9kZWpzID0gd2hpY2goJ25v ZGUuZXhlJykKKy0gICAgaWYgbm9kZWpzOgorLSAgICAgIHJldHVybiBub2RlanMKKy0gIGVsc2U6 CistICAgIG5vZGVqcyA9IHdoaWNoKCdub2RlanMnKQorLSAgICBpZiBub2RlanM6CistICAgICAg cmV0dXJuIG5vZGVqcworLSAgICBub2RlanMgPSB3aGljaCgnbm9kZScpCistICAgIGlmIG5vZGVq czoKKy0gICAgICByZXR1cm4gbm9kZWpzCistCistICBkYXJ3aW5fbmFtZSA9ICgnbm9kZS1kYXJ3 aW4tYXJtNjQnIGlmIHBsYXRmb3JtLm1hY2hpbmUoKSA9PSAnYXJtNjQnIGVsc2UKKy0gICAgICAg ICAgICAgICAgICdub2RlLWRhcndpbi14NjQnKQorLSAgcmV0dXJuIG9zX3BhdGguam9pbihvc19w YXRoLmRpcm5hbWUoX19maWxlX18pLCAqeworLSAgICAnRGFyd2luJzogKCdtYWMnLCBkYXJ3aW5f bmFtZSwgJ2JpbicsICdub2RlJyksCistICAgICdMaW51eCc6ICgnbGludXgnLCAnbm9kZS1saW51 eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKy0gICAgJ1dpbmRvd3MnOiAoJ3dpbicsICdub2RlLmV4 ZScpLAorLSAgfVtwbGF0Zm9ybS5zeXN0ZW0oKV0pCisrICByZXR1cm4gIi91c3IvYmluL25vZGUi CisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3BhcnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNocm9taXVtLWNyb3NzLWJ1aWxk LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jcm9z cy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0 OTU0ZGZiYjFlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorLS0t IHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29u ZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAtNTgsNiArNTgs MTAgQEAgaWYgKCFpc19jbGFuZykgeworIH0KKyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisrICBpc19t dXNsID0gZmFsc2UKKyt9CisrCisrZGVjbGFyZV9hcmdzKCkgeworICAgIyBOb3JtYWxseSwgQW5k cm9pZCBidWlsZHMgYXJlIGxpZ2h0bHkgb3B0aW1pemVkLCBldmVuIGZvciBkZWJ1ZyBidWlsZHMs IHRvCisgICAjIGtlZXAgYmluYXJ5IHNpemUgZG93bi4gU2V0dGluZyB0aGlzIGZsYWcgdG8gdHJ1 ZSBkaXNhYmxlcyBzdWNoIG9wdGltaXphdGlvbgorICAgYW5kcm9pZF9mdWxsX2RlYnVnID0gZmFs c2UKK0BAIC05NzAsOCArOTc0LDEzIEBAIGNvbmZpZygiY29tcGlsZXJfY3B1X2FiaSIpIHsKKyAg ICAgICB9CisgICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgeworICAgICAg IGlmIChpc19jbGFuZyAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbmFjbCAmJiAhaXNfZnVjaHNpYSkg eworLSAgICAgICAgY2ZsYWdzICs9IFsgIi0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCist ICAgICAgICBsZGZsYWdzICs9IFsgIi0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAg ICAgICBpZiAoaXNfbXVzbCkgeworKyAgICAgICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFy Y2g2NC1saW51eC1tdXNsIiBdCisrICAgICAgICAgIGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFy Y2g2NC1saW51eC1tdXNsIiBdCisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBjZmxhZ3Mg Kz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKysgICAgICAgICAgbGRmbGFncyAr PSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSIgXQorKyAgICAgICAgfQorICAgICAgIH0K KyAgICAgICBpZiAoaXNfYW5kcm9pZCkgeworICAgICAgICAgIyBPdXRsaW5lIGF0b21pY3MgY3Jh c2ggb24gRXh5bm9zIDk4MTAuIGh0dHA6Ly9jcmJ1Zy5jb20vMTI3Mjc5NQorLS0tIHF0Ni13ZWJl bmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAt MzksMyArMzksMjIgQEAgZ2NjX3Rvb2xjaGFpbigiaG9zdCIpIHsKKyAgICAgY3VycmVudF9vcyA9 IGN1cnJlbnRfb3MKKyAgIH0KKyB9CisrCisrZ2NjX3Rvb2xjaGFpbigidjhfc25hcHNob3RfY3Jv c3MiKSB7CisrICBjYyA9IGdldGVudigiQlVJTERfQ0MiKQorKyAgY3h4ID0gZ2V0ZW52KCJCVUlM RF9DWFgiKQorKyAgYXIgPSBnZXRlbnYoIkJVSUxEX0FSIikKKysgIG5tID0gZ2V0ZW52KCJCVUlM RF9OTSIpCisrICBsZCA9IGN4eAorKworKyAgZXh0cmFfY2ZsYWdzID0gZ2V0ZW52KCJCVUlMRF9D RkxBR1MiKQorKyAgZXh0cmFfY3BwZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0NQUEZMQUdTIikKKysg IGV4dHJhX2N4eGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9DWFhGTEFHUyIpCisrICBleHRyYV9sZGZs YWdzID0gZ2V0ZW52KCJCVUlMRF9MREZMQUdTIikKKysKKysgIHRvb2xjaGFpbl9hcmdzID0gewor KyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisrICAgIGN1cnJlbnRfb3MgPSBob3N0X29zCisr ICAgIHY4X2N1cnJlbnRfY3B1ID0gdGFyZ2V0X2NwdQorKyAgfQorK30KKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9saW51eC9w a2dfY29uZmlnLmduaQorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL2J1aWxkL2NvbmZpZy9saW51eC9wa2dfY29uZmlnLmduaQorQEAgLTkyLDcgKzkyLDcgQEAg dGVtcGxhdGUoInBrZ19jb25maWciKSB7CisgICBhc3NlcnQoZGVmaW5lZChpbnZva2VyLnBhY2th Z2VzKSwKKyAgICAgICAgICAiVmFyaWFibGUgfHBhY2thZ2VzfCBtdXN0IGJlIGRlZmluZWQgdG8g YmUgYSBsaXN0IGluIHBrZ19jb25maWcuIikKKyAgIGNvbmZpZyh0YXJnZXRfbmFtZSkgeworLSAg ICBpZiAoaG9zdF90b29sY2hhaW4gPT0gY3VycmVudF90b29sY2hhaW4pIHsKKysgICAgaWYgKGN1 cnJlbnRfY3B1ICE9IHRhcmdldF9jcHUpIHsKKyAgICAgICBhcmdzID0gY29tbW9uX3BrZ19jb25m aWdfYXJncyArIGhvc3RfcGtnX2NvbmZpZ19hcmdzICsgaW52b2tlci5wYWNrYWdlcworICAgICB9 IGVsc2UgeworICAgICAgIGFyZ3MgPSBjb21tb25fcGtnX2NvbmZpZ19hcmdzICsgcGtnX2NvbmZp Z19hcmdzICsgaW52b2tlci5wYWNrYWdlcwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9m aWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGQzMWRh OTc5MGFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv ZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL3Njb3BlZF9maWxlX2xpbnV4LmNjCitAQCAtNzcs MTUgKzc3LDMgQEAgYm9vbCBJc0ZET3duZWQoaW50IGZkKSB7CisgfQorIAorIH0gIC8vIG5hbWVz cGFjZSBiYXNlCistCistZXh0ZXJuICJDIiB7CistCistaW50IF9fY2xvc2UoaW50KTsKKy0KKy1f X2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IiksIG5vaW5saW5lKSkgaW50IGNsb3Nl KGludCBmZCkgeworLSAgaWYgKGJhc2U6OklzRkRPd25lZChmZCkgJiYgZ19pc19vd25lcnNoaXBf ZW5mb3JjZWQpCistICAgIENyYXNoT25GZE93bmVyc2hpcFZpb2xhdGlvbigpOworLSAgcmV0dXJu IF9fY2xvc2UoZmQpOworLX0KKy0KKy19ICAvLyBleHRlcm4gIkMiCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1v cnktdGFnZ2luZy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hy b21pdW0tYWFyY2g2NC1tdXNsLW1lbW9yeS10YWdnaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGZmMmEyYTUxYWFhCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOS1jaHJvbWl1bS1hYXJjaDY0LW11c2wt bWVtb3J5LXRhZ2dpbmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUt Ni40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9u X2FsbG9jYXRvci90YWdnaW5nLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci90YWdnaW5nLmNj CitAQCAtMjgsMTMgKzI4LDI1IEBACisgI2VuZGlmCisgI2VuZGlmCisgCistI2lmbmRlZiBIQVNf UFJfTVRFX01BQ1JPUworKyNpZm5kZWYgUFJfTVRFX1RDRl9TSElGVAorICNkZWZpbmUgUFJfTVRF X1RDRl9TSElGVCAxCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVENGX05PTkUKKyAjZGVmaW5l IFBSX01URV9UQ0ZfTk9ORSAoMFVMIDw8IFBSX01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisrI2lm bmRlZiBQUl9NVEVfVENGX1NZTkMKKyAjZGVmaW5lIFBSX01URV9UQ0ZfU1lOQyAoMVVMIDw8IFBS X01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVENGX0FTWU5DCisgI2Rl ZmluZSBQUl9NVEVfVENGX0FTWU5DICgyVUwgPDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYK KysjaWZuZGVmIFBSX01URV9UQ0ZfTUFTSworICNkZWZpbmUgUFJfTVRFX1RDRl9NQVNLICgzVUwg PDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQUdfU0hJRlQK KyAjZGVmaW5lIFBSX01URV9UQUdfU0hJRlQgMworKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RB R19NQVNLCisgI2RlZmluZSBQUl9NVEVfVEFHX01BU0sgKDB4ZmZmZlVMIDw8IFBSX01URV9UQUdf U0hJRlQpCisgI2VuZGlmCisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLWZpeC1taXNzaW5nLVRFTVBfRkFJTFVSRV9SRVRSWS1t YWNyby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0t Zml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTU1OGM1NGNmODAyCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMC1jaHJvbWl1bS1maXgtbWlzc2lu Zy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorVGhpcyBt YWNybyBpcyBkZWZpbmVkIGluIGdsaWJjLCBidXQgbm90IG11c2wuCisKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9w cm9jZXNzX3V0aWwuaAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorQEAgLTEyLDYgKzEyLDE2IEBA CisgI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKysvLyBT b21lIGFkZGl0aW9uYWwgZnVuY3Rpb25zCisrI2lmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRS WSkKKysjIGRlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRl bnNpb25fXwkJCVwKKysJICh7IGxvbmcgaW50IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0 ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFM ICYmIGVycm5vID09IEVJTlRSKTsgXAorKwkgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAv LyBUaGlzIGFkanVzdHMgL3Byb2MvcHJvY2Vzcy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBP T00ga2lsbGVyCisgLy8gd2lsbCBwcmVmZXIgY2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3Ro ZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQorIC8vIGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwg d2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNlciBhY2Nlc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjU3ODc2MjFiNTc5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1 bS1jc3RkaW50LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4y Lm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1 aWNoZS9odHRwMi9hZGFwdGVyL3dpbmRvd19tYW5hZ2VyLmgKKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvdGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWlj aGUvaHR0cDIvYWRhcHRlci93aW5kb3dfbWFuYWdlci5oCitAQCAtMyw2ICszLDcgQEAKKyAKKyAj aW5jbHVkZSA8c3RkZGVmLmg+CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGZ1 bmN0aW9uYWw+CisgCisgI2luY2x1ZGUgInF1aWNoZS9jb21tb24vcGxhdGZvcm0vYXBpL3F1aWNo ZV9leHBvcnQuaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MTItY2hyb21pdW0tdW5pc3RkLmgucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTEyLWNocm9taXVtLXVuaXN0ZC5oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYmIyNDJhODA4YWNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11bmlzdGQuaC5wYXRjaApAQCAtMCww ICsxLDEwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9jcmVkZW50aWFscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5oCitAQCAtMTMsNiArMTMsNyBAQAorIAorICNpbmNs dWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKysjaW5jbHVkZSA8dW5pc3RkLmg+Cisg CisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvY2FwYWJpbGl0eS5oIgor ICNpbmNsdWRlICJzYW5kYm94L3NhbmRib3hfZXhwb3J0LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEzLWNocm9taXVtLXB0aHJlYWQtc3RhY2tzaXplLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMy1jaHJvbWl1bS1wdGhyZWFk LXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjM4NGZkMGFmMTg2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMTMtY2hyb21pdW0tcHRocmVhZC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCArMSwx NiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0v YmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2lu ZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhy ZWFkX2xpbnV4LmNjCitAQCAtNDM3LDggKzQzNywxMyBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFk KCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFk X2F0dHJfdCYgYXR0cmlidXRlcykgeworICNpZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQor KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJldHVybiAwOworICNlbHNlCisrICAvLyBtdXNs IGxpYmNzIGRlZmF1bHQgaXMgdG9vIHNtYWxsLCB1c2UgOG1iIGxpa2UgZ2xpYmMKKysgIHJldHVy biAoMSA8PCAyMyk7CisrI2VuZGlmCisrI2Vsc2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9h dHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBk ZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCisg ICByZXR1cm4gMiAqICgxIDw8IDIzKTsgIC8vIDIgdGltZXMgODE5MksgKHRoZSBkZWZhdWx0IHN0 YWNrIHNpemUgb24gTGludXgpLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExNC1kby1ub3QtbmFycm93LWludC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTQtZG8tbm90LW5hcnJvdy1pbnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yY2Q2YTA3MzgyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNo CkBAIC0wLDAgKzEsNTMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBh cnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZV91dGlsX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGlu dXguY2MKK0BAIC0yMywxNCArMjMsMTQgQEAgYm9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBG aWxlUGF0aCYgcAorIAorICAgLy8gTm90IGFsbCBwb3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5cGV8 IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMuaC4KKyAgIC8vIE1pc3NpbmcgdmFsdWVzIGFyZSBj b3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBwYWdlLgorLSAgc3dpdGNoIChzdGF0ZnNfYnVmLmZf dHlwZSkgeworKyAgc3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRmc19idWYuZl90 eXBlKSkgeworICAgICBjYXNlIDA6CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV8wOworICAg ICAgIGJyZWFrOworICAgICBjYXNlIEVYVDJfU1VQRVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMgYW5k IGV4dDQKKyAgICAgY2FzZSBNU0RPU19TVVBFUl9NQUdJQzoKKyAgICAgY2FzZSBSRUlTRVJGU19T VVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01BR0lD KToKKysgICAgY2FzZSBCVFJGU19TVVBFUl9NQUdJQzoKKyAgICAgY2FzZSAweDUzNDY1NDRFOiAg Ly8gTlRGUworICAgICBjYXNlIDB4NTg0NjUzNDI6ICAvLyBYRlMKKyAgICAgY2FzZSAweDMxNTM0 NjRBOiAgLy8gSkZTCitAQCAtNDAsMTQgKzQwLDE0IEBAIGJvb2wgR2V0RmlsZVN5c3RlbVR5cGUo Y29uc3QgRmlsZVBhdGgmIHAKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX05GUzsKKyAgICAg ICBicmVhazsKKyAgICAgY2FzZSBTTUJfU1VQRVJfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nh c3Q8aW50PigweEZGNTM0RDQyKTogIC8vIENJRlMKKysgICAgY2FzZSAweEZGNTM0RDQyOiAgLy8g Q0lGUworICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fU01COworICAgICAgIGJyZWFrOworICAg ICBjYXNlIENPREFfU1VQRVJfTUFHSUM6CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9DT0RB OworICAgICAgIGJyZWFrOworLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01B R0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2Fz ZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNhc2UgUkFNRlNfTUFHSUM6CisgICAgIGNhc2UgVE1Q RlNfTUFHSUM6CisgICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9NRU1PUlk7CisgICAgICAgYnJl YWs7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9i YXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAw LDEwICsxMDAsMTAgQEAgYm9vbCBJc1N0YXRzWmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6Ogor ICAgaWYgKEhBTkRMRV9FSU5UUihzdGF0ZnMocGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykp ICE9IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7 CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVpbnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAg ICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZT X01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAg Y2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0 dXJuIHRydWU7CisgICB9CisgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNocm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5h bWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNocm9taXVtLW5v LWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi41NTY3ODRiMDEzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNocm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5h bWUucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4 LmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAorQEAgLTEzOSw3ICsxMzksOSBAQAorICNk ZWZpbmUgSEFWRV9BQ0NFU1MgMQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBg Y2Fub25pY2FsaXplX2ZpbGVfbmFtZScgZnVuY3Rpb24uICovCisrI2lmZGVmIF9fR0xJQkNfXwor ICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKKysjZW5kaWYKKyAKKyAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNwdV90b19sZTE2JyBpbnRyaW5zaWMgZnVuY3Rp b24uICovCisgLyogI3VuZGVmIEhBVkVfQ1BVX1RPX0xFMTYgKi8KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTYtY2hyb21pdW0tbXVzbC1nZXQtdGhyZWFkLW5h bWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE2LWNocm9taXVtLW11 c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZDQ4NTM4NWNiYjYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRjaApA QCAtMCwwICsxLDIyIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNl L3RocmVhZF91dGlscy5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJl YWRfdXRpbHMuaAorQEAgLTMwLDcgKzMwLDggQEAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNl bmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKysj aWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpIHx8IFwKKysgICAgKFBF UkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19f KSkKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisgI2VuZGlmCisgCitAQCAtNTgsNyArNTksOCBA QCBpbmxpbmUgYm9vbCBNYXliZVNldFRocmVhZE5hbWUoY29uc3Qgc3RkCisgCisgaW5saW5lIGJv b2wgR2V0VGhyZWFkTmFtZShzdGQ6OnN0cmluZyYgb3V0X3Jlc3VsdCkgeworICAgY2hhciBidWZb MTZdID0ge307CistI2lmIFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKQor KyNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkgfHwgXAorKyAgICAo UEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJD X18pKQorICAgaWYgKHByY3RsKFBSX0dFVF9OQU1FLCBidWYpICE9IDApCisgICAgIHJldHVybiBm YWxzZTsKKyAjZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTc2NTI0YWRjMDgzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29s dmVyLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvcHVibGljL3Njb3BlZF9yZXNfc3RhdGUuY2MK KysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL3B1 YmxpYy9zY29wZWRfcmVzX3N0YXRlLmNjCitAQCAtMTMsNyArMTMsNyBAQAorIG5hbWVzcGFjZSBu ZXQgeworIAorIFNjb3BlZFJlc1N0YXRlOjpTY29wZWRSZXNTdGF0ZSgpIHsKKy0jaWYgQlVJTERG TEFHKElTX09QRU5CU0QpIHx8IEJVSUxERkxBRyhJU19GVUNIU0lBKQorKyNpZiBCVUlMREZMQUco SVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElTX0ZVQ0hTSUEpIHx8IChCVUlMREZMQUcoSVNfTElO VVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xp YmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJl aGF2ZXMgdGhlIHNhbWUgd2F5LgorICAgbWVtc2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOwor QEAgLTI1LDcgKzI1LDcgQEAgU2NvcGVkUmVzU3RhdGU6OlNjb3BlZFJlc1N0YXRlKCkgeworIH0K KyAKKyBTY29wZWRSZXNTdGF0ZTo6flNjb3BlZFJlc1N0YXRlKCkgeworLSNpZiAhQlVJTERGTEFH KElTX09QRU5CU0QpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkKKysjaWYgIUJVSUxERkxBRyhJ U19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElTX0ZVQ0hTSUEpICYmICEoQlVJTERGTEFHKElTX0xJ TlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIAorICAgLy8gUHJlZmVyIHJlc19uZGVzdHJv eSB3aGVyZSBhdmFpbGFibGUuCisgI2lmIEJVSUxERkxBRyhJU19BUFBMRSkgfHwgQlVJTERGTEFH KElTX0ZSRUVCU0QpCitAQCAtMzQsNyArMzQsNyBAQCBTY29wZWRSZXNTdGF0ZTo6flNjb3BlZFJl c1N0YXRlKCkgeworICAgcmVzX25jbG9zZSgmcmVzXyk7CisgI2VuZGlmICAvLyBCVUlMREZMQUco SVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKQorIAorLSNlbmRpZiAgLy8gIUJVSUxE RkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisrI2VuZGlmICAvLyAh QlVJTERGTEFHKElTX09QRU5CU0QpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgIShCVUlM REZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgfQorIAorIGJvb2wgU2Nv cGVkUmVzU3RhdGU6OklzVmFsaWQoKSBjb25zdCB7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMv aG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitAQCAtMzE1OCw3ICszMTU4LDcgQEAgSG9zdFJlc29s dmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFuYWdlcgorICAgaWYgKHN5c3RlbV9kbnNfY29uZmln X25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZl cih0aGlzKTsKKyAjaWYgQlVJTERGTEFHKElTX1BPU0lYKSAmJiAhQlVJTERGTEFHKElTX0FQUExF KSAmJiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmIFwKKy0gICAgIUJVSUxERkxBRyhJU19BTkRS T0lEKQorKyAgICAhQlVJTERGTEFHKElTX0FORFJPSUQpICYmICEoQlVJTERGTEFHKElTX0xJTlVY KSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7Cisg I2VuZGlmCisgCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCitAQCAtNyw3ICs3LDgg QEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisgI2lmIEJVSUxERkxBRyhJ U19QT1NJWCkgJiYgIUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19PUEVOQlNE KSAmJiBcCistICAgICFCVUlMREZMQUcoSVNfQU5EUk9JRCkgJiYgIUJVSUxERkxBRyhJU19GVUNI U0lBKQorKyAgICAhQlVJTERGTEFHKElTX0FORFJPSUQpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJ QSkgJiYgXAorKyAgICAhKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19f KSkKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+CisgCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYwor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9z dF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTkyLDcgKzE5Miw4IEBAIGludCBTeXN0ZW1Ib3N0UmVz b2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiYXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorICNp ZiBCVUlMREZMQUcoSVNfUE9TSVgpICYmIFwKKy0gICAgIShCVUlMREZMQUcoSVNfQVBQTEUpIHx8 IEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkpCisrICAgICEo QlVJTERGTEFHKElTX0FQUExFKSB8fCBCVUlMREZMQUcoSVNfT1BFTkJTRCkgfHwgQlVJTERGTEFH KElTX0FORFJPSUQpIHx8IFwKKysgICAgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQo X19HTElCQ19fKSkpCisgICBEbnNSZWxvYWRlck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBh dXRvIFthaSwgZXJyLCBvc19lcnJvcl0gPSBBZGRyZXNzSW5mbzo6R2V0KGhvc3QsIGhpbnRzLCBu dWxscHRyLCBuZXR3b3JrKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0OGExZGVjNzZiNAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0t bXVzbC1zdGFjay11dGlscy5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gcXQ2LXdlYmVuZ2lu ZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3d0Zi9zdGFja191dGlsLmNjCitAQCAtMjksNyArMjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3Rp bWF0ZWRTdGFja1NpemUoKSB7CisgLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlz IG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhl IG1haW4gdGhyZWFkLgorIAorLSNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBCVUlMREZMQUco SVNfQU5EUk9JRCkgfHwgQlVJTERGTEFHKElTX0ZSRUVCU0QpIHx8IFwKKysjZWxpZiBCVUlMREZM QUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKSB8fCBCVUlMREZMQUcoSVNfRlJF RUJTRCkgfHwgXAorICAgICBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRfZ2V0 YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAgIC8v IHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVz dHMpLgorQEAgLTk3LDcgKzk3LDcgQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXpl KCkgeworIH0KKyAKKyB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJ QkNfXykgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8 fCBcCisrI2lmIEJVSUxERkxBRyhJU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8 IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8fCBcCisgICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKQor ICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgIGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjAtY2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIwLWNocm9taXVtLWxpYmMtbWFsbG9j LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmEzMjgzMDc2 MGNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy MC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRjaApAQCAtMCwwICsxLDM0IEBACistLS0gcXQ2LXdl YmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbWVt b3J5X2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYworQEAgLTE4LDYgKzE4LDEzIEBACisgI2lu Y2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZF9yZXN0cmljdGlvbnMuaCIKKyAjaW5jbHVkZSAi YnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRl cm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrZXh0 ZXJuIHZvaWQgKl9fbGliY19mcmVlKHZvaWQgKnB0cik7CisrfQorKyNlbmRpZgorKworIG5hbWVz cGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2UgeworQEAgLTExMiw3ICsxMTksNyBAQCBib29sIFVu Y2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwgdm9pZCoqCisgICAgIGRlZmluZWQoVE9PTEtJVF9R VCkgfHwgIWRlZmluZWQoTElCQ19HTElCQykKKyAgICpyZXN1bHQgPSBtYWxsb2Moc2l6ZSk7Cisg I2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorLSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6 ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworICNlbmRpZgorICAgcmV0 dXJuICpyZXN1bHQgIT0gbnVsbHB0cjsKKyB9CitAQCAtMTIzLDcgKzEzMCw3IEBAIHZvaWQgVW5j aGVja2VkRnJlZSh2b2lkKiBwdHIpIHsKKyAjZWxpZiBkZWZpbmVkKE1FTU9SWV9UT09MX1JFUExB Q0VTX0FMTE9DQVRPUikgfHwgIWRlZmluZWQoTElCQ19HTElCQykgfHwgZGVmaW5lZChUT09MS0lU X1FUKQorICAgZnJlZShwdHIpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykKKy0gIF9fbGli Y19mcmVlKHB0cik7CisrICA6Ol9fbGliY19mcmVlKHB0cik7CisgI2VuZGlmCisgfQorIApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMS1jaHJvbWl1bS1tdXNs LXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVt LW11c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjhjOGM0Yjg2M2I2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMjEtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0t LSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmls ZXMvZmlsZS5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v YmFzZS9maWxlcy9maWxlLmgKK0BAIC0xOSw3ICsxOSw4IEBACisgI2luY2x1ZGUgImJ1aWxkL2J1 aWxkX2NvbmZpZy5oIgorIAorICNpZiBCVUlMREZMQUcoSVNfQlNEKSB8fCBCVUlMREZMQUcoSVNf QVBQTEUpIHx8IEJVSUxERkxBRyhJU19OQUNMKSB8fCBcCistICAgIEJVSUxERkxBRyhJU19GVUNI U0lBKSB8fCAoQlVJTERGTEFHKElTX0FORFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKQor KyAgICBCVUlMREZMQUcoSVNfRlVDSFNJQSkgfHwgKEJVSUxERkxBRyhJU19BTkRST0lEKSAmJiBf X0FORFJPSURfQVBJX18gPCAyMSkgfHwgXAorKyAgICAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAh ZGVmaW5lZChfX0dMSUJDX18pKQorIHN0cnVjdCBzdGF0OworIG5hbWVzcGFjZSBiYXNlIHsKKyB0 eXBlZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3JhcHBlcl90OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFy LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmM0MTMxMmU1 MTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy Mi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1VzZSBtb25v dG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRvby4KKwor LS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3Jj L2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02 LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9u LXZhcmlhYmxlLmNjCitAQCAtMjAsNyArMjAsNyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29u ZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlvblZhcmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJT RCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElO VVggJiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUv TmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQor ICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25v dG9uaWMgY2xvY2suCisgICBwdGhyZWFkX2NvbmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5Niw3 IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAmbmF0 aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisgI2lm IChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0g ICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQor ICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hh bmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2UgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0 byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KKyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xP Q0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjVmYWU3YmRlMTEyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1 bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCkBAIC0wLDAgKzEsNzUgQEAKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJh Y2VfcG9zaXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCitAQCAtMzAsNyArMzAsNyBAQAorICNp ZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYK Ky0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+Cisg I2VuZGlmCisgCitAQCAtOTcsNyArOTcsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0 cmluZyogdGV4dCkKKyAgIC8vIE5vdGU6IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5 bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5nIHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5 KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6 ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAgIHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNp emUoKSkgeworICAgICAvLyBMb29rIGZvciB0aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwg ZnJvbSBzZWFyY2hfZnJvbS4KK0BAIC0xNDQsNyArMTQ0LDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0 cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZh dWx0OworIH07CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0 UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7 CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0 IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5h dG9yLgorQEAgLTg2OCw3ICs4NjgsNyBAQCBzaXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uodm9pZCoq IHRyYWNlLCBzCisgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSB1bndpbmQgdGFibGVzLCB0aGVuIHRy eSB0cmFjaW5nIHVzaW5nIGZyYW1lIHBvaW50ZXJzLgorICAgcmV0dXJuIGJhc2U6OmRlYnVnOjpU cmFjZVN0YWNrRnJhbWVQb2ludGVycyhjb25zdF9jYXN0PGNvbnN0IHZvaWQqKj4odHJhY2UpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgMCk7 CistI2VsaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjZWxpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUgYmFj a3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5vdCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQor ICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFrZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFzZTo6 c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNrdHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAtODgx LDEzICs4ODEsMTMgQEAgdm9pZCBTdGFja1RyYWNlOjpQcmludFdpdGhQcmVmaXgoY29uc3QgYwor IC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQg YnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxs b2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJlLgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo X0FJWCkKKyAgIFByaW50QmFja3RyYWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyOworICAgUHJvY2Vz c0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50XywgcHJlZml4X3N0cmluZywgJmhhbmRsZXIpOworICNl bmRpZgorIH0KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBTdGFja1Ry YWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgoc3RkOjpvc3RyZWFtKiBvcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXhfc3Ry aW5nKSBjb25zdCB7CisgICBTdHJlYW1CYWNrdHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXIob3Mp OworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgv c3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2lu ZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVm ZXJlbmNlLXRhYmxlLmNjCitAQCAtMTIsNyArMTIsOSBAQAorIAorICNpZiBkZWZpbmVkKERFQlVH KSAmJiBkZWZpbmVkKFY4X09TX0xJTlVYKSAmJiAhZGVmaW5lZChWOF9PU19BTkRST0lEKQorICNk ZWZpbmUgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNs dWRlIDxleGVjaW5mby5oPgorKyNlbmRpZgorIAorICNpbmNsdWRlIDx2ZWN0b3I+CisgCitAQCAt MTAzLDcgKzEwNSw3IEBAIHZvaWQgRXh0ZXJuYWxSZWZlcmVuY2VUYWJsZTo6SW5pdChJc29sYXQK KyB9CisgCisgY29uc3QgY2hhciogRXh0ZXJuYWxSZWZlcmVuY2VUYWJsZTo6UmVzb2x2ZVN5bWJv bCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVmIFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBkZWZp bmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBjaGFyKiog bmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygmYWRkcmVzcywgMSk7CisgICBjb25zdCBjaGFyKiBu YW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUgYXJyYXkgb2YgbmFtZXMgaXMgbWFsbG9jJ2VkLiBI b3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlzIHN0YXRpYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIzLWNocm9taXVtLW11c2wtbm8t Z2V0Y29udGV4dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjQ2NTIyZWUwYTA2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCkBAIC0wLDAgKzEs MjcgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv aGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4 Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsCisgICBzaWdpbmZvLnNpX2NvZGUgPSBT SV9VU0VSOworICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKKyAgIHVjb250ZXh0X3QgY29u dGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBnZXRjb250ZXh0KCZjb250ZXh0KTsK KysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQp OworIH0KKyAKK0BAIC02NzUsOSArNjc3LDE0IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3Jp dGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDAp OworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7CisrCisrI2lmIGRlZmluZWQoX19HTElCQ19f KQorICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0 KTsKKyAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKKyAgICAgcmV0dXJuIGZhbHNlOworKyNlbHNl CisrICByZXR1cm4gZmFsc2U7CisrI2VuZGlmCisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisg ICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0IGluIG1pbmlkdW1wd3JpdGVyLmNjIHRoZSBzdGFj ayBwb2ludGVyIGlzIHJldHJpZXZlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMjQtY2hyb21pdW0tZW5hYmxlLWk2ODYucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMWQ4ZGU3YzIzZjgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI0LWNocm9taXVtLWVuYWJs ZS1pNjg2LnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9y aWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQu Mi9zcmMvM3JkcGFydHkvY2hyb21pdW0vQlVJTEQuZ24KK0BAIC0xNTM3LDE0ICsxNTM3LDYgQEAg aWYgKCFpc19pb3MgJiYgIXVzZV9xdCkgeworICAgfQorIH0KKyAKKy0jIFRPRE8oY2Fzc2V3KTog QWRkIG1vcmUgT1MncyB0aGF0IGRvbid0IHN1cHBvcnQgeDg2LgorLWlzX3ZhbGlkX3g4Nl90YXJn ZXQgPQorLSAgICB0YXJnZXRfb3MgIT0gImlvcyIgJiYgdGFyZ2V0X29zICE9ICJtYWMiICYmCist ICAgICh0YXJnZXRfb3MgIT0gImxpbnV4IiB8fCB1c2VfbGliZnV6emVyIHx8ICFidWlsZF93aXRo X2Nocm9taXVtKQorLWFzc2VydCgKKy0gICAgaXNfdmFsaWRfeDg2X3RhcmdldCB8fCB0YXJnZXRf Y3B1ICE9ICJ4ODYiLAorLSAgICAiJ3RhcmdldF9jcHU9eDg2JyBpcyBub3Qgc3VwcG9ydGVkIGZv ciAndGFyZ2V0X29zPSR0YXJnZXRfb3MnLiBDb25zaWRlciBvbWl0dGluZyAndGFyZ2V0X2NwdScg KGRlZmF1bHQpIG9yIHVzaW5nICd0YXJnZXRfY3B1PXg2NCcgaW5zdGVhZC4iKQorLQorIGdyb3Vw KCJjaHJvbWl1bV9idWlsZGVyX3BlcmYiKSB7CisgICB0ZXN0b25seSA9IHRydWUKKyAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3Zl LXN0cmlwX2JpbmFyeS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUt Y2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjExNWU0NDkyYTJiZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFy eS5wYXRjaApAQCAtMCwwICsxLDMyIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9j aHJvbWVkcml2ZXIvQlVJTEQuZ24KK0BAIC0zMzUsMTEgKzMzNSw3IEBAIHNvdXJjZV9zZXQoImxp YiIpIHsKKyAgIH0KKyB9CisgCistaWYgKGlzX2xpbnV4KSB7CistICBjaHJvbWVkcml2ZXJfb3V0 cHV0ID0gImNocm9tZWRyaXZlci51bnN0cmlwcGVkIgorLX0gZWxzZSB7CistICBjaHJvbWVkcml2 ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIKKy19CisrY2hyb21lZHJpdmVyX291dHB1dCA9ICJj aHJvbWVkcml2ZXIiCisgCisgZXhlY3V0YWJsZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7Cisg ICB0ZXN0b25seSA9IHRydWUKK0BAIC0zNjEsMTYgKzM1Nyw2IEBAIGV4ZWN1dGFibGUoIiRjaHJv bWVkcml2ZXJfb3V0cHV0IikgeworICAgfQorIH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIHN0 cmlwX2JpbmFyeSgiY2hyb21lZHJpdmVyIikgeworLSAgICB0ZXN0b25seSA9IHRydWUKKy0gICAg YmluYXJ5X2lucHV0ID0gIiRyb290X291dF9kaXIvJGNocm9tZWRyaXZlcl9vdXRwdXQiCistICAg IHN5bWJvbF9vdXRwdXQgPSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIuZGVidWciCistICAg IHN0cmlwcGVkX2JpbmFyeV9vdXRwdXQgPSAiJHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIiCist ICAgIGRlcHMgPSBbICI6JGNocm9tZWRyaXZlcl9vdXRwdXQiIF0KKy0gIH0KKy19CistCisgcHl0 aG9uX2xpYnJhcnkoImNocm9tZWRyaXZlcl9weV90ZXN0cyIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1 ZQorICAgZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uOTBmYWEzZDY2NGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNi1jaHJvbWl1bS1uby1jZGVmcy5wYXRjaApAQCAt MCwwICsxLDM5IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0 cmFjZS5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorQEAg LTE3LDggKzE3LDYgQEAKKyAKKyAjaW5jbHVkZV9uZXh0IDxzeXMvcHRyYWNlLmg+CisgCistI2lu Y2x1ZGUgPHN5cy9jZGVmcy5oPgorLQorIC8vIGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemls bGEvc2hvd19idWcuY2dpP2lkPTIyNDMzCisgI2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFE X0FSRUEpICYmICFkZWZpbmVkKFBUX0dFVF9USFJFQURfQVJFQSkgJiYgXAorICAgICBkZWZpbmVk KF9fR0xJQkNfXykKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBx dDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJz eW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRl ZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZpbmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5j bHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytl eHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7 CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNTksOCBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZv ICpzeW5jX3B0X2luZm8oc3RydWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShz dHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lm ZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZ TkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOC1j aHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTI4LWNocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJlMTQ5MmMzZjYyMgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjgtY2hyb21pdW0tc2FuZGJv eC1tZW1iYXJyaWVyLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmNjCitAQCAtNDE4LDYgKzQxOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFBy b2Nlc3NTdGFydE8KKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2V4aXQ6Cisg ICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgorKyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAg ICAgY2FzZSBfX05SX3dhaXQ0OgorICAgICBjYXNlIF9fTlJfd2FpdGlkOgorICNpZiBkZWZpbmVk KF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy OS1jaHJvbWl1bS1zYW5kYm94LXNoZWRfZ2V0cGFyYW0ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTI5LWNocm9taXVtLXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgwZDkxYzc3ZThiYQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21p dW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKK0FsbG93IFNZ U19zY2hlZF9nZXRwYXJhbSBhbmQgU1lTX3NjaGVkX2dldHNjaGVkdWxlcgorbXVzbCB1c2VzIHRo ZW0gZm9yIHB0aHJlYWRfZ2V0c2NoZWRwYXJhbSgpCisKK3NvdXJjZTogaHR0cHM6Ly9naXQuYWxw aW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvY29tbXVuaXR5L2Nocm9taXVtP2lkPTU0YWY5Zjhh YzI0ZjUyZDM4MmM1NzU4ZTI0NDViZjAyMDZlZmY0MGUKKworLS0tIHF0Ni13ZWJlbmdpbmUtNi40 LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3Jl bmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGlu dXguY2MKK0BAIC05NywxMCArOTcsMTAgQEAgUmVzdWx0RXhwciBSZW5kZXJlclByb2Nlc3NQb2xp Y3k6OkV2YWx1YQorICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVz OgorICAgICBjYXNlIF9fTlJfdW5hbWU6CistICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNh c2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFt OgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxv dygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9z Y2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAgcmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0 UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTAtY2hyb21pdW0tdW5idW5kbGUt ZmZtcGVnLWF2X3N0cmVhbV9nZXRfZmlyc3RfZHRzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS11bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9m aXJzdF9kdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5l N2Y2MDQ4ZmJjMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTUwLWNocm9taXVtLXVuYnVuZGxlLWZmbXBlZy1hdl9zdHJlYW1fZ2V0X2ZpcnN0X2R0 cy5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KKysrKyBx dDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1 bmRsZS9mZm1wZWcuZ24KK0BAIC0xMiw2ICsxMiw3IEBAIHBrZ19jb25maWcoInN5c3RlbV9mZm1w ZWciKSB7CisgICAgICJsaWJhdmZvcm1hdCIsCisgICAgICJsaWJhdnV0aWwiLAorICAgXQorKyAg ZGVmaW5lcyA9IFsgImF2X3N0cmVhbV9nZXRfZmlyc3RfZHRzKHN0cmVhbSk9c3RyZWFtLT5maXJz dF9kdHMiIF0KKyB9CisgCisgYnVpbGRmbGFnX2hlYWRlcigiZmZtcGVnX2ZlYXR1cmVzIikgewpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11 bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzQ2ZDJkZmI5YTdlCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11 bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBxdDYt d2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xjaGFp bi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgor QEAgLTM1LDggKzM1LDggQEAgZ2NjX3Rvb2xjaGFpbigiaG9zdCIpIHsKKyAgIGV4dHJhX2xkZmxh Z3MgPSBnZXRlbnYoIkJVSUxEX0xERkxBR1MiKQorIAorICAgdG9vbGNoYWluX2FyZ3MgPSB7Cist ICAgIGN1cnJlbnRfY3B1ID0gY3VycmVudF9jcHUKKy0gICAgY3VycmVudF9vcyA9IGN1cnJlbnRf b3MKKysgICAgY3VycmVudF9jcHUgPSBob3N0X2NwdQorKyAgICBjdXJyZW50X29zID0gaG9zdF9v cworICAgfQorIH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhmNjAyMDRmZjU4NAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNp emVfdC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmln L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19w cm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCisrKysgcXQ2LXdlYmVuZ2luZS02 LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVk aW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAorQEAgLTE0LDYgKzE0LDcg QEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgCisgI2luY2x1ZGUgPGFycmF5PgorKyNpbmNsdWRl IDxjc3RkZGVmPgorIAorIG5hbWVzcGFjZSB3ZWJydGMgeworIApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNo IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6 ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2I1Yjdh M2Q1M2I5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKy0tLSBx dDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKKysrKyBxdDYtd2ViZW5n aW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRl L3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oCitAQCAtMjIyLDExICsyMjIsMTEgQEAgaW5saW5l IHZvaWQgRGVmYXVsdEhpc3RvZ3JhbUJvb2xlYW4oUGxhdAorIHVzaW5nIFByb2dyYW1LZXlUeXBl ICAgPSBzdGQ6OmFycmF5PHVpbnQ4X3QsIDIwPjsKKyB1c2luZyBDYWNoZVByb2dyYW1GdW5jID0g dm9pZCAoKikoUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgUHJvZ3JhbUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBp bmxpbmUgdm9pZCBEZWZhdWx0Q2FjaGVQcm9ncmFtKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAm a2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXpl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNp emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9n cmFtQnl0ZXMpCisge30KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxNTQtY2hyb21pdW0tdWl0X3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZDEzYTMxZmVlNDAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1NC1jaHJvbWl1bS11aXRfdC5wYXRjaApAQCAtMCwwICsx LDExIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRl bnRpYWxzLmgKK0BAIC0xNCw2ICsxNCw4IEBACisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVk ZSA8dmVjdG9yPgorIAorKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysKKyAjaW5jbHVkZSAic2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9jYXBhYmlsaXR5LmgiCisgI2luY2x1ZGUgInNhbmRi b3gvc2FuZGJveF9leHBvcnQuaCIKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tc25kaW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLXNuZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZDc2OWI1MzE0OTdiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAt MCwwICsxLDg0OSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbWVkaWEvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5nbgorQEAgLTc4LDYgKzc4LDkgQEAgY29uZmlnKCJt ZWRpYV9jb25maWciKSB7CisgICAgICAgZGVmaW5lcyArPSBbICJETE9QRU5fUFVMU0VBVURJTyIg XQorICAgICB9CisgICB9CisrICBpZiAodXNlX3NuZGlvKSB7CisrICAgIGRlZmluZXMgKz0gWyAi VVNFX1NORElPIiBdCisrICB9CisgICBpZiAodXNlX2NyYXMpIHsKKyAgICAgZGVmaW5lcyArPSBb ICJVU0VfQ1JBUyIgXQorICAgfQorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9CVUlMRC5nbgorQEAgLTI0NSw2 ICsyNDUsMTcgQEAgc291cmNlX3NldCgiYXVkaW8iKSB7CisgICAgIHNvdXJjZXMgKz0gWyAibGlu dXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIgXQorICAgfQorIAorKyAgaWYgKHVzZV9zbmRpbykg eworKyAgICBsaWJzICs9IFsgInNuZGlvIiBdCisrICAgIHNvdXJjZXMgKz0gWworKyAgICAgICJz bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjIiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQu Y2MiLAorKyAgICAgICJzbmRpby9zbmRpb19pbnB1dC5oIiwKKysgICAgICAic25kaW8vc25kaW9f b3V0cHV0LmNjIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmgiCisrICAgIF0KKysgIH0K KysKKyAgIGlmICh1c2VfYWxzYSkgeworICAgICBsaWJzICs9IFsgImFzb3VuZCIgXQorICAgICBz b3VyY2VzICs9IFsKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2No cm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBxdDYt d2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9h dWRpb19tYW5hZ2VyX2xpbnV4LmNjCitAQCAtMjUsNiArMjUsMTEgQEAKKyAjaW5jbHVkZSAibWVk aWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9h dWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElP KQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBt ZWRpYSB7CisgCistLS0gL2Rldi9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYwor QEAgLTAsMCArMSwxNDggQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1 dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5k IGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1 ZGlvX21hbmFnZXJfc25kaW8uaCIKKysKKysjaW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hpc3RvZ3Jh bV9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcHRyX3V0aWwuaCIKKysjaW5jbHVk ZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1l ZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNwYXRjaGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3Nu ZGlvX291dHB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2xpbWl0cy5oIgorKyNpbmNsdWRl ICJtZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysK KysKKysvLyBNYXhpbXVtIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyB0aGF0IGNhbiBiZSBvcGVu IHNpbXVsdGFuZW91c2x5LgorK3N0YXRpYyBjb25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0 OworKworKy8vIERlZmF1bHQgc2FtcGxlIHJhdGUgZm9yIGlucHV0IGFuZCBvdXRwdXQgc3RyZWFt cy4KKytzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOworKworK3Zv aWQgQWRkRGVmYXVsdERldmljZShBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysg IERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgZGV2aWNlX25hbWVzLT5wdXNoX2Zy b250KEF1ZGlvRGV2aWNlTmFtZTo6Q3JlYXRlRGVmYXVsdCgpKTsKKyt9CisrCisrYm9vbCBBdWRp b01hbmFnZXJTbmRpbzo6SGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7 CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvSW5wdXREZXZpY2VzKCkg eworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1 ZGlvSW5wdXREZXZpY2VOYW1lcygKKysgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVz KSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKysgIEFkZERlZmF1bHREZXZp Y2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVk aW9PdXRwdXREZXZpY2VOYW1lcygKKysgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVz KSB7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKworK2NvbnN0IGNo YXIqIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXROYW1lKCkgeworKyAgcmV0dXJuICJTTkRJTyI7Cisr fQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJTbmRpbzo6R2V0SW5wdXRTdHJlYW1Q YXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSB7CisrICBzdGF0 aWMgY29uc3QgaW50IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplID0gMTAyNDsKKysKKysgIGludCB1 c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUoKTsKKysgIGludCBidWZmZXJfc2l6 ZSA9IHVzZXJfYnVmZmVyX3NpemUgPworKyAgICAgIHVzZXJfYnVmZmVyX3NpemUgOiBrRGVmYXVs dElucHV0QnVmZmVyU2l6ZTsKKysKKysgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAg QXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIENIQU5ORUxfTEFZT1VUX1NU RVJFTywKKysgICAgICBrRGVmYXVsdFNhbXBsZVJhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9CisrCisr QXVkaW9NYW5hZ2VyU25kaW86OkF1ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRp b1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSkKKysgICAgOiBBdWRp b01hbmFnZXJCYXNlKHN0ZDo6bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsKKysgIERMT0coV0FSTklORykgPDwgIkF1ZGlvTWFu YWdlclNuZGlvIjsKKysgIFNldE1heE91dHB1dFN0cmVhbXNBbGxvd2VkKGtNYXhPdXRwdXRTdHJl YW1zKTsKKyt9CisrCisrQXVkaW9NYW5hZ2VyU25kaW86On5BdWRpb01hbmFnZXJTbmRpbygpIHsK KysgIFNodXRkb3duKCk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJT bmRpbzo6TWFrZUxpbmVhck91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERD SEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQo KSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb091 dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFt KAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg eworKyAgRExPR19JRihFUlJPUiwgIWRldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVu dGVkISI7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVO Q1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJhbXMp OworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxpbmVh cklucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxv Z19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJ TkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1z KTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMb3dM YXRlbmN5SW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAor KyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFj ayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19Q Q01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZUlucHV0U3Ry ZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJTbmRpbzo6 R2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpzdHJp bmcmIG91dHB1dF9kZXZpY2VfaWQsCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRf cGFyYW1zKSB7CisrICAvLyBUT0RPKHRvbW1pKTogU3VwcG9ydCB8b3V0cHV0X2RldmljZV9pZHwu CisrICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0X2RldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGlt cGxlbWVudGVkISI7CisrICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6 ZSA9IDIwNDg7CisrCisrICBDaGFubmVsTGF5b3V0IGNoYW5uZWxfbGF5b3V0ID0gQ0hBTk5FTF9M QVlPVVRfU1RFUkVPOworKyAgaW50IHNhbXBsZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOwor KyAgaW50IGJ1ZmZlcl9zaXplID0ga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXplOworKyAgaWYgKGlu cHV0X3BhcmFtcy5Jc1ZhbGlkKCkpIHsKKysgICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMu c2FtcGxlX3JhdGUoKTsKKysgICAgY2hhbm5lbF9sYXlvdXQgPSBpbnB1dF9wYXJhbXMuY2hhbm5l bF9sYXlvdXQoKTsKKysgICAgYnVmZmVyX3NpemUgPSBzdGQ6Om1pbihidWZmZXJfc2l6ZSwgaW5w dXRfcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCkpOworKyAgfQorKworKyAgaW50IHVzZXJfYnVm ZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaWYgKHVzZXJfYnVmZmVyX3NpemUp CisrICAgIGJ1ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZTsKKysKKysgIHJldHVybiBBdWRp b1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVO Q1ksIGNoYW5uZWxfbGF5b3V0LAorKyAgICAgIHNhbXBsZV9yYXRlLCBidWZmZXJfc2l6ZSk7Cisr fQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlSW5wdXRTdHJl YW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdBUk5J TkcpIDw8ICJNYWtlSW5wdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvSW5wdXRT dHJlYW0odGhpcywKKysgICAgICAgICAgICAgQXVkaW9EZXZpY2VEZXNjcmlwdGlvbjo6a0RlZmF1 bHREZXZpY2VJZCwgcGFyYW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFu YWdlclNuZGlvOjpNYWtlT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZU91dHB1dFN0cmVhbSI7CisrICBy ZXR1cm4gbmV3IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0ocGFyYW1zLCB0aGlzKTsKKyt9CisrCisr fSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02 LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdl cl9zbmRpby5oCitAQCAtMCwwICsxLDY1IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBD aHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK KysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9f U05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9f QVVESU9fTUFOQUdFUl9TTkRJT19IXworKworKyNpbmNsdWRlIDxzZXQ+CisrCisrI2luY2x1ZGUg ImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysj aW5jbHVkZSAiYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaCIKKysjaW5jbHVkZSAiYmFzZS90aHJl YWRpbmcvdGhyZWFkLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFz ZS5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgTUVESUFfRVhQT1JUIEF1ZGlv TWFuYWdlclNuZGlvIDogcHVibGljIEF1ZGlvTWFuYWdlckJhc2UgeworKyBwdWJsaWM6CisrICBB dWRpb01hbmFnZXJTbmRpbyhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVh ZCwKKysgICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9y eSk7CisrICB+QXVkaW9NYW5hZ2VyU25kaW8oKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVu dGF0aW9uIG9mIEF1ZGlvTWFuYWdlci4KKysgIGJvb2wgSGFzQXVkaW9PdXRwdXREZXZpY2VzKCkg b3ZlcnJpZGU7CisrICBib29sIEhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICB2 b2lkIEdldEF1ZGlvSW5wdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFt ZXMpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRpb091dHB1dERldmljZU5hbWVzKEF1ZGlvRGV2 aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0 SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2Vf aWQpIG92ZXJyaWRlOworKyAgY29uc3QgY2hhciogR2V0TmFtZSgpIG92ZXJyaWRlOworKworKyAg Ly8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyQmFzZS4KKysgIEF1ZGlvT3V0cHV0U3Ry ZWFtKiBNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVy cyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJy aWRlOworKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAor KyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFj aykgb3ZlcnJpZGU7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0o CisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxi YWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5SW5wdXRT dHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29u c3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9n X2NhbGxiYWNrKSBvdmVycmlkZTsKKysKKysgcHJvdGVjdGVkOgorKyAgQXVkaW9QYXJhbWV0ZXJz IEdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpz dHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBp bnB1dF9wYXJhbXMpIG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKyAgLy8gQ2FsbGVkIGJ5IE1h a2VMaW5lYXJPdXRwdXRTdHJlYW0gYW5kIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtLgorKyAg QXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VPdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMpOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihB dWRpb01hbmFnZXJTbmRpbyk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysj ZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKy0tLSAv ZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9t ZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYworQEAgLTAsMCArMSwyMDAgQEAKKysvLyBD b3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysj aW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNs dWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFt cF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9z bmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyLmgiCisrI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlh IHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxl Rm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFj ayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNl bGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2Vs Zi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVh bTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNl bGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2Vs Zi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9JbnB1 dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Rk OjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKQorKyAgICA6IG1hbmFn ZXIobWFuYWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1 ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3NlZCkgeworK30KKysK KytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5TbmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7CisrICBp ZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQg c2lnOworKworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIHJldHVybiBmYWxzZTsKKysK KysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElO RUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9f UENNX0xPV19MQVRFTkNZKSB7CisrICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVk aW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIHNpb19pbml0cGFy KCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5yY2hh biA9IHBhcmFtcy5jaGFubmVscygpOworKyAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQ ZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworKyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKysg IHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBTSU9f TEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7 CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUkVDLCAwKTsKKysKKysgIGlm IChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlv IGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBpZiAoIXNpb19zZXRw YXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJP UikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Ns b3NlOworKyAgfQorKworKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5z YW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnJjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1z LmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVG b3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAg ICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAh PSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsK KysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAg ICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrICBidWZmZXIg PSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUo a1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhp cyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRfY2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysg IHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0YXJ0 KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsKKysKKysgIFN0YXJ0QWdjKCk7CisrCisrICBzdGF0 ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkgPSAwOworKyAgY2FsbGJhY2sgPSBjYjsKKysgIHNp b19zdGFydChoZGwpOworKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJl YWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3Jl YXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJlY29yZGluZy4iOworKyAgICBzaW9fc3RvcChoZGwp OworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9J bnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysgIGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAg cmV0dXJuOworKworKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFk LCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKworKyAg U3RvcEFnYygpOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7 CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKworKyAgaWYgKHN0 YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrCisrICBzdGF0ZSA9IGtDbG9zZWQ7Cisr ICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrCisrICBtYW5hZ2VyLT5S ZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7CisrfQorKworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQKKysgIHJldHVybiAw LjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91Ymxl IHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4gRG8gbm90aGluZy4KKyt9CisrCisrZG91 YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBv cnRlZC4KKysgIHJldHVybiAwLjA7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiBmYWxzZTsKKyt9 CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldE91dHB1dERldmljZUZvckFlYygK KysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIHsKKysgIC8vIE5vdCBz dXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRMb29w KHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBuOworKyAgY2hhciAqZGF0YTsKKysgIHVuc2lnbmVk IGludCBuZnJhbWVzOworKyAgZG91YmxlIG5vcm1hbGl6ZWRfdm9sdW1lID0gMC4wOworKworKyAg bmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1 bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgeworKworKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6 ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVhZCBvbmUgYmxvY2sKKysgICAgdG9kbyA9IG5mcmFt ZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKysgICAgZGF0YSA9 IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8gPiAwKSB7CisrICAgICAgbiA9IHNpb19yZWFkKGhk bCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYgKG4gPT0gMCkKKysgICAgICAgIHJldHVybjsJLy8g dW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysgICAgICB0b2RvIC09IG47CisrICAgICAgZGF0YSAr PSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5IC09IG5mcmFtZXM7CisrCisrICAgIC8vIGNvbnZl cnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0YQorKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEg ZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorKyAg ICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysKKysgICAgLy8gcHVzaCBpbnRvIGJ1cworKyAg ICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZlZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+ KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+KGJ1ZmZlciksIG5mcmFtZXMpOworKworKyAgICAv LyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2FsbGJhY2stPk9uRGF0YShhdWRpb19idXMuZ2V0KCks IGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBkZWxheSwgMS4pOworKyAgfQorK30KKysKKyt9ICAv LyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oCitA QCAtMCwwICsxLDkxIEBACisrLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292 ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRo ZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBV VF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysKKysjaW5j bHVkZSA8c3RkaW50Lmg+CisrI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVkZSA8c25kaW8uaD4K KysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNl L21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS93ZWFrX3B0ci5oIgorKyNpbmNsdWRl ICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3Ry ZWFtLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCisrI2luY2x1ZGUgIm1l ZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9i YXNlL2F1ZGlvX3BhcmFtZXRlcnMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNz IEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRT dHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFzcyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0gOiBwdWJs aWMgQWdjQXVkaW9TdHJlYW08QXVkaW9JbnB1dFN0cmVhbT4geworKyBwdWJsaWM6CisrICAvLyBQ YXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9yIGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1z ZWxlY3Rpb24KKysgIC8vIG9mIHRoZSBhdWRpbyByZWNvcmRpbmcgZGV2aWNlLgorKyAgc3RhdGlj IGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZpY2VbXTsKKysKKysgIC8vIENyZWF0ZSBhIFBDTSBP dXRwdXQgc3RyZWFtIGZvciB0aGUgU05ESU8gZGV2aWNlIGlkZW50aWZpZWQgYnkKKysgIC8vIHxk ZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3aGF0IHRvIHVzZSBmb3IgfGRldmljZV9uYW1lfCwg dXNlCisrICAvLyB8a0F1dG9TZWxlY3REZXZpY2V8LgorKyAgU25kaW9BdWRpb0lucHV0U3RyZWFt KEF1ZGlvTWFuYWdlckJhc2UqIGF1ZGlvX21hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysKKysgIH5TbmRpb0F1ZGlvSW5wdXRTdHJl YW0oKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvSW5wdXRTdHJl YW0uCisrICBib29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9JbnB1dENh bGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysg IHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRNYXhWb2x1bWUoKSBvdmVycmlk ZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgZG91Ymxl IEdldFZvbHVtZSgpIG92ZXJyaWRlOworKyAgYm9vbCBJc011dGVkKCkgb3ZlcnJpZGU7CisrICB2 b2lkIFNldE91dHB1dERldmljZUZvckFlYyhjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2Rldmlj ZV9pZCkgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrCisrICBlbnVtIFN0cmVhbVN0YXRlIHsK KysgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBl ZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAg a1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworKyAgICBrU3Rv cFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRo cmVhZCB0byBleGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0 aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMg dm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3Zl cyBkYXRhIGZyb20gdGhlIGRldmljZSB0byB0aGUgY29uc3VtZXIKKysgIHZvaWQgVGhyZWFkTG9v cCgpOworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5v dGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAg Ly8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOwor KyAgLy8gV2Ugc3RvcmUgZGF0YSBoZXJlIGZvciBjb25zdW1lcgorKyAgc3RkOjp1bmlxdWVfcHRy PEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNv cmRlZCBkYXRhCisrICBBdWRpb0lucHV0Q2FsbGJhY2sqIGNhbGxiYWNrOyAgLy8gVmFsaWQgZHVy aW5nIGEgcmVjb3JkaW5nIHNlc3Npb24uCisrICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmlj ZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0 cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhy ZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gTnVt YmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsK KysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0 aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FT U0lHTihTbmRpb0F1ZGlvSW5wdXRTdHJlYW0pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1l ZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworLS0t IC9kZXYvbnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5jYworQEAgLTAsMCArMSwxODMgQEAKKysv LyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu CisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlt ZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisrI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKyNpbmNsdWRlICJtZWRpYS9i YXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25k aW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29u c3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3Zv aWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQg ZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5IC09IGRl bHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2so dm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt KiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisr ICBzZWxmLT52b2wgPSB2b2w7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRTdHJlYW06 OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2Vs ZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2Vs Zi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9PdXRw dXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB dWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAg ICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFy YW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3NlZCksCisrICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRF WF9JTklUSUFMSVpFUikgeworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9B dWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9z ZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisrICBz dHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHBhcmFtcy5mb3JtYXQo KSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAgICBwYXJhbXMu Zm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKysg ICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKysgICAgcmV0 dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBwYXIucmF0ZSA9IHBh cmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnBjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7Cisr ICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7 CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRz ICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisrICBwYXIuYXBwYnVm c3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9IHNpb19vcGVuKFNJ T19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhciho ZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJh bWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgaWYgKHBhci5yYXRlICAh PSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnBjaGFu ICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAg IT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3Jt YXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAg KHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIu Yml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQg YXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRl ID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5nID0gMDsKKysgIHZvbCA9IDA7CisrICBidWZmZXIg PSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUo a1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhp cyk7CisrICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4g dHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFsc2U7 CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrICBpZiAo c3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5n KQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVy OworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBtYW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3RyZWFtKHRo aXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgeworKyAgc3Rh dGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxiYWNrOwor KyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwg JlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0 byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4iOworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBz dGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJl YW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysg IHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisrICBz aW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyt9CisrCisrdm9pZCBTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhf bG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisrICB2b2xwZW5kaW5nID0g MTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworK3ZvaWQgU25kaW9B dWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikgeworKyAgcHRocmVhZF9tdXRl eF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZvbCAqICgxLiAvIFNJT19NQVhWT0wpOworKyAgcHRo cmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrLy8gVGhpcyBzdHJlYW0gaXMgYWx3 YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUgaXQncworKy8vIHN1 ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9pZCBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIGludCBhdmFpbCwgY291bnQsIHJlc3VsdDsK KysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworKyAgICAvLyBVcGRhdGUgdm9sdW1l IGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgICAgaWYgKHZv bHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5kaW5nID0gMDsKKysgICAgICBzaW9fc2V0dm9sKGhk bCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworKwor KyAgICAvLyBHZXQgZGF0YSB0byBwbGF5CisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxh eSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisrCXBhcmFt cy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXks IGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7CisrICAgIGF1ZGlv X2J1cy0+VG9JbnRlcmxlYXZlZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+KGNvdW50LCBy ZWludGVycHJldF9jYXN0PGludDE2X3QqPihidWZmZXIpKTsKKysgICAgaWYgKGNvdW50ID09IDAp IHsKKysgICAgICAvLyBXZSBoYXZlIHRvIHN1Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQor KyAgICAgIGNvdW50ID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKKysgICAgICBtZW1zZXQoYnVmZmVy LCAwLCBjb3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpKTsKKysg ICAgICBMT0coV0FSTklORykgPDwgIk5vIGRhdGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNs ZS4iOworKyAgICB9CisrCisrICAgIC8vIFN1Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKysgICAg YXZhaWwgPSBjb3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOwor KyAgICByZXN1bHQgPSBzaW9fd3JpdGUoaGRsLCBidWZmZXIsIGF2YWlsKTsKKysgICAgaWYgKHJl c3VsdCA9PSAwKSB7CisrICAgICAgTE9HKFdBUk5JTkcpIDw8ICJBdWRpbyBkZXZpY2UgZGlzY29u bmVjdGVkLiI7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysKKysgICAgLy8gVXBkYXRlIGhhcmR3 YXJlIHBvaW50ZXIKKysgICAgaHdfZGVsYXkgKz0gY291bnQ7CisrICB9CisrfQorKworK30gIC8v IG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCitA QCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRo b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBp biB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9f T1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysK KysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRl ICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7 CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBB dWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUg bWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVh bShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVh bS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOwor KyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7Cisr ICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUp IG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOwor KyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOworKworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3Zl KHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQg KmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisrICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3Rh cnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAg ICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAg ICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVu bmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2Fp dCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFk IHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2 b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lk IE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2 b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVz IGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29w KHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRv IGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2Vy OworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFy YW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxB dWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0 byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxiYWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2Yg dGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQg c3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhp Z2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhy ZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRo cmVhZF9tdXRleF90IG11dGV4OworKyAgLy8gQ3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19N QVhWT0wgcmFuZ2UKKysgIGludCB2b2w7CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3Qg YmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGltZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOwor KyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBo d19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25k aW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NP UFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5h bWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VU UFVUX0hfCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlhX29wdGlvbnMuZ25pCitAQCAtMTMzLDYgKzEzMyw5 IEBAIGRlY2xhcmVfYXJncygpIHsKKyAgICMgRW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBB TFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAgdXNlX2Fsc2EgPSBmYWxzZQorIAorKyAgIyBFbmFi bGUgcnVudGltZSBzZWxlY3Rpb24gb2Ygc25kaW8oNykKKysgIHVzZV9zbmRpbyA9IGZhbHNlCisr CisgICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQgb24gbm9uLUFuZHJvaWQsIG5vbi1NYWMgUE9TSVgg c3lzdGVtcy4KKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBkZXNrdG9wIENocm9tZWNhc3Qg YW5kIGF1ZGlvLW9ubHkgQ2hyb21lY2FzdCBidWlsZHMuCisgICBpZiAoaXNfcG9zaXggJiYgIWlz X2FuZHJvaWQgJiYgIWlzX21hYyAmJgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhhY2tzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhhY2tzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTI1YWViOGE2M2QyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhh Y2tzLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBxdDYt d2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3Ry YWNlLmNjCitAQCAtMjM0LDcgKzIzNCw3IEBAIGJvb2wgU3RhY2tUcmFjZTo6V2lsbFN5bWJvbGl6 ZVRvU3RyZWFtRm8KKyAgIC8vIFN5bWJvbHMgYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZWxpYWJs ZSB3aGVuIGduIGFyZ3Mgc3BlY2lmaWVzCisgICAvLyBzeW1ib2xfbGV2ZWw9MC4KKyAgIHJldHVy biBmYWxzZTsKKy0jZWxpZiBkZWZpbmVkKF9fVUNMSUJDX18pIHx8IGRlZmluZWQoX0FJWCkKKysj ZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfQUlYKQorICAgLy8gU3RhY2tUcmFj ZTo6T3V0cHV0VG9TdHJlYW0oKSBpcyBub3QgaW1wbGVtZW50ZWQgdW5kZXIgdWNsaWJjLCBub3Ig QUlYLgorICAgLy8gU2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjcyOAorICAgcmV0dXJuIGZhbHNl OworQEAgLTI3Myw3ICsyNzMsOSBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3Qgewor IH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3Mp IGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQ cmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRpZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1Ry YWNlOjpUb1N0cmluZygpIGNvbnN0IHsKK0BAIC0yODEsMTQgKzI4MywxNCBAQCBzdGQ6OnN0cmlu ZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJh Y2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7 CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcp OworICNlbmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyB9CisgCisgc3RkOjpvc3RyZWFt JiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0YWNrVHJhY2UmIHMpIHsKKy0j aWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBzLk91dHB1dFRvU3RyZWFtKCZvcyk7Cisg I2Vsc2UKKyAgIG9zIDw8ICJTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbSBub3QgaW1wbGVtZW50 ZWQuIjsKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworQEAg LTExNTcsNyArMTE1NywxMSBAQCBTZW5kUmVzdWx0IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRl cm5hCisgICAgIG1zZ19pb3YtPnB1c2hfYmFjayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5k YXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7CisgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5z aXplKCkpOworICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQor KyNpZmRlZiBfX0dMSUJDX18KKyAgICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAm bXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwgMH0sIDB9KTsKKysjZWxzZQorKyAgICBtc2d2ZWMt PnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZtc2dfaW92W2pdLCAxLCAwLCAwLCAwfSwgMH0pOwor KyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhBTkRMRV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3Zl Y1swXSwgYnVmZmVycy5zaXplKCksIDApKTsKKyAgIFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwg MCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAgIGlmIChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMzAxLWNocm9taXVtLW11c2wtc2FuZGJv eC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVz bC1zYW5kYm94LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NGFmYmVjNWI5OGVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKQEAgLTAsMCArMSw4NiBAQAor LS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlv bnMuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0 aW9ucy5jYworQEAgLTEzNCw2ICsxMzQsNyBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgUmVzdWx0 RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgeworICAgY29uc3QgQXJn PHVuc2lnbmVkIGxvbmc+IGZsYWdzKDApOworIAorKyNpZmRlZiBfX0dMSUJDX18KKyAgIC8vIFRP RE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZsYWdzICYgfm1hc2sxKSA9PSBt YXNrMi4KKyAgIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBD TE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CitAQCAtMTYwLDYgKzE2MSwxNiBA QCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSCisgICByZXR1cm4gSWYo SXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0LCBBbGxvdygpKQorICAgICAg IC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5F bHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7CisrI2Vsc2UKKysgIGNvbnN0IGludCByZXF1aXJlZCA9 IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAg ICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNv bnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05F X0NISUxEX0NMRUFSVElEIHwKKysgICAgICAgICAgICAgICAgICAgQ0xPTkVfREVUQUNIRUQ7Cisr ICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xvbmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1yZXF1aXJl ZDsKKysgIHJldHVybiBJZih0aHJlYWRfY2xvbmVfb2ssIEFsbG93KCkpCisrICAgICAgLkVsc2VJ ZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVSTSkp CisrICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKysjZW5kaWYKKyB9CisgCisgI2lm bmRlZiBQUl9QQUNfUkVTRVRfS0VZUworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00 MjQsNiArNDI0LDkgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0Twor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYK KysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNz OgorKyNlbmRpZgorICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAv LyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczog IC8vIFByaXZpbGVnZWQuCitAQCAtNDM2LDcgKzQzOSw5IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVh ZF9hcmVhOgorICNlbmRpZgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05S X3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lm ICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBf X05SX3Zmb3JrOgorQEAgLTU1MCw2ICs1NTUsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93 ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tbG9jazoKKyAgICAgY2FzZSBfX05SX211 bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5tYXA6CisrI2lmbmRlZiBfX0dMSUJDX18KKysgICAg Y2FzZSBfX05SX21yZW1hcDoKKysjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2Fz ZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTU2Nyw3ICs1NzUs OSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2Ug X19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CisrI2lm ZGVmIF9fR0xJQkNfXworICAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNl IF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJf cmVhZGFoZWFkOgorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9s aWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK0BAIC05OSw5ICs5OSwxNCBA QCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZhbHVhCisgICAgIGNhc2UgX19O Ul91bmFtZToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJf c2NoZWRfZ2V0c2NoZWR1bGVyOgorKyNpZm5kZWYgX19HTElCQ19fCisrICAgIGNhc2UgX19OUl9z Y2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIEFsbG93KCk7CisgICAg IGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKysjaWZkZWYgX19HTElCQ19fCisgICAgIGNh c2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIFJlc3Ry aWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3By bGltaXQ2NDoKKyAgICAgICAvLyBTZWUgY3JidWcuY29tLzY2MjQ1MCBhbmQgc2V0cmxpbWl0IGNv bW1lbnQgYWJvdmUuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDMwMi1jaHJvbWl1bS1uby1tYWxsaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxOTkzMGU3YmVmMAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDItY2hyb21pdW0tbm8tbWFsbGluZm8ucGF0 Y2gKQEAgLTAsMCArMSw2NyBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysr IHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9w cm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BAIC0xMDUsNyArMTA1LDggQEAgdm9pZCBJbmNyZWFz ZUZkTGltaXRUbyh1bnNpZ25lZCBpbnQgbWF4XworIAorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJ U19GVUNIU0lBKQorIAorLSNpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19D SFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpCisrI2lmIChCVUlMREZMQUcoSVNfTElO VVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgXAorKwlCVUlMREZMQUcoSVNfQ0hST01FT1Mp IHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorIG5hbWVzcGFjZSB7CisgCisgc2l6ZV90IEdldE1h bGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAtMTIzLDE3ICsxMjQsMTggQEAgc2l6ZV90IEdldE1h bGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZQorLSNlbmRpZiAg Ly8gQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8CistICAg ICAgICAvLyBCVUlMREZMQUcoSVNfQU5EUk9JRCkKKysjZW5kaWYgIC8vIChCVUlMREZMQUcoSVNf TElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSB8fAorKwkvLyBCVUlMREZMQUcoSVNfQ0hST01F T1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorIAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6 R2V0TWFsbG9jVXNhZ2UoKSB7CisgI2lmIEJVSUxERkxBRyhJU19BUFBMRSkKKyAgIG1hbGxvY19z dGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07CisgICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxw dHIsICZzdGF0cyk7CisgICByZXR1cm4gc3RhdHMuc2l6ZV9pbl91c2U7CistI2VsaWYgQlVJTERG TEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19B TkRST0lEKQorKyNlbGlmIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19f KSkgfHwgXAorKwlCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lE KQorICAgcmV0dXJuIEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKTsKKy0jZWxpZiBCVUlMREZMQUco SVNfRlVDSFNJQSkKKysjZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkgfHwgKEJVSUxERkxBRyhJ U19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5v dCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0dXJu IDA7CisgI2VuZGlmCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgcXQ2 LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90cmFjZV9ldmVudC9t YWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAgLTE3NCw3ICsxNzQsOCBAQCB2b2lkIFJlcG9ydEFw cGxlQWxsb2NTdGF0cyhzaXplX3QqIHRvdGFsCisgCisgI2lmIChCVUlMREZMQUcoVVNFX1BBUlRJ VElPTl9BTExPQ19BU19NQUxMT0MpICYmIEJVSUxERkxBRyhJU19BTkRST0lEKSkgfHwgXAorICAg ICAoIUJVSUxERkxBRyhVU0VfUEFSVElUSU9OX0FMTE9DX0FTX01BTExPQykgJiYgIUJVSUxERkxB RyhJU19XSU4pICYmICAgIFwKKy0gICAgICFCVUlMREZMQUcoSVNfQVBQTEUpICYmICFCVUlMREZM QUcoSVNfV0lOKSAmJiAhQlVJTERGTEFHKElTX0ZVQ0hTSUEpKQorKyAgICAgIUJVSUxERkxBRyhJ U19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19XSU4pICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkg JiYgXAorKyAgICAgIShCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykp KQorIHZvaWQgUmVwb3J0TWFsbGluZm9TdGF0cyhQcm9jZXNzTWVtb3J5RHVtcCogcG1kLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QqIHRvdGFsX3ZpcnR1YWxfc2l6ZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiByZXNpZGVudF9zaXplLAorQEAgLTMzOSw3ICsz NDAsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1vcnlEdW1wKGNvCisgICAgICAg ICAgICAgICAgICAgICAgJmFsbG9jYXRlZF9vYmplY3RzX2NvdW50KTsKKyAjZWxpZiBCVUlMREZM QUcoSVNfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1 Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2VsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBSZXBv cnRNYWxsaW5mb1N0YXRzKC8qcG1kPSovbnVsbHB0ciwgJnRvdGFsX3ZpcnR1YWxfc2l6ZSwgJnJl c2lkZW50X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICZhbGxvY2F0ZWRfb2JqZWN0c19z aXplLCAmYWxsb2NhdGVkX29iamVjdHNfY291bnQpOworICNlbmRpZgorLS0tIHF0Ni13ZWJlbmdp bmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3Ny Yy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90 ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCitAQCAtMzUsNyArMzUsNyBA QCBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBvcnRlZCgpIHsKKyAKKyBNZW1vcnlVc2FnZSBHZXRN ZW1vcnlVc2FnZSgpIHsKKyAgIE1lbW9yeVVzYWdlIHJlc3VsdDsKKy0jaWZkZWYgX19saW51eF9f CisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJ1c2Fn ZSByZXM7CisgICBpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcmVzKSA9PSAwKSB7CisgICAg IHJlc3VsdC5tYXhfcnNzX2tiID0gcmVzLnJ1X21heHJzczsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2ggYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFybXY3bC1uZW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWNhMTk1M2QyY2IzCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApA QCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2tpYS9CVUlMRC5nbgorQEAgLTc4Niw3ICs3ODYsNiBAQCBza2lhX3Nv dXJjZV9zZXQoInNraWFfb3B0cyIpIHsKKyAgICAgICAgICMgUm9vdCBidWlsZCBjb25maWcgc2V0 cyAtbWZwdT0kYXJtX2ZwdSwgd2hpY2ggd2UgZXhwZWN0IHRvIGJlIG5lb24KKyAgICAgICAgICMg d2hlbiBydW5uaW5nIHRoaXMuCisgICAgICAgICBpZiAoIWFybV91c2VfbmVvbikgeworLSAgICAg ICAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOmNvbXBpbGVyX2FybV9m cHUiIF0KKyAgICAgICAgICAgY2ZsYWdzICs9IFsgIi1tZnB1PW5lb24iIF0KKyAgICAgICAgIH0K KyAgICAgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUw LWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJvbWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2Vf aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNhN2IwMTUw OTYyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3 NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCArMSwz MCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0zOCw3 ICszOCwxMiBAQAorIAorICNpbmNsdWRlICJjbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X3B0cmFjZV9kdW1wZXIuaCIKKyAKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KKysjZWxzZQorKy8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0 aW9uIGlzIG1pc3NpbmcgKi8KKysjZGVmaW5lIEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAj aW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPGZjbnRs Lmg+CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9saW51eF9jb3JlX2R1bXBlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCitAQCAtMzIsNyArMzIs MTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFybSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMg bWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRl IDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZWxmLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wt YXJtLXVzZXJfdmZwLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1j aHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmQ3YzE4MDM2ZDUwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0 Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5o CitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUg PHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKytzdHJ1Y3QgdXNlcl92ZnAg eworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnByZWdzWzMyXTsKKysJdW5zaWduZWQgbG9uZyBmcHNj cjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9leGMgeworKwl1bnNpZ25lZCBsb25nIGZwZXhjOwor Kwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJdW5zaWduZWQgbG9uZyBmcGluc3QyOworK307Cisr I2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNfXykgKi8KKyAKKyAjaW5jbHVkZSA8dHlwZV90cmFp dHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNo cm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MmY1ZjQ3YmU4MzEKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wt YXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUt Ni40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1 LmNjCitAQCAtMTY1LDYgKzE2NSwxNSBAQCBzdGF0aWMgVjhfSU5MSU5FIHZvaWQgX19jcHVpZChp bnQgY3B1X2luCisgCisgI2lmIFY4X0hPU1RfQVJDSF9BUk0gfHwgVjhfSE9TVF9BUkNIX0FSTTY0 CisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysjaW5jbHVkZSA8ZWxmLmg+CisrI2lmZGVmIF9fTFA2 NF9fCisrdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eHZfdDsKKysjZWxzZQorK3R5cGVkZWYg RWxmMzJfYXV4dl90IGVsZl9hdXh2X3Q7CisrI2VuZGlmCisrI2VuZGlmCisrCisgc3RhdGljIHVp bnQzMl90IFJlYWRFTEZIV0NhcHMoKSB7CisgICB1aW50MzJfdCByZXN1bHQgPSAwOworICNpZiBW OF9HTElCQ19QUkVSRVEoMiwgMTYpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDkwMC1jcm9zcy1idWlsZC1leGFtcGxlcy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjlhNmFjYzZhZjZkZQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhh bXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvZXhhbXBs ZXMvQ01ha2VMaXN0cy50eHQKK0BAIC0xLDcgKzEsNiBAQAorIGNtYWtlX21pbmltdW1fcmVxdWly ZWQoVkVSU0lPTiAzLjE2KQorIAorIHF0X2V4YW1wbGVzX2J1aWxkX2JlZ2luKEVYVEVSTkFMX0JV SUxEKQorLWlmKE5PVCBDTUFLRV9DUk9TU0NPTVBJTElORykgI1FUQlVHLTg2NTMzCisgICAgIGlm KFRBUkdFVCBRdDo6V2ViRW5naW5lQ29yZSkKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkod2Vi ZW5naW5lcXVpY2spCisgICAgIGVuZGlmKCkKK0BAIC0xNCw1ICsxMyw0IEBAIGlmKE5PVCBDTUFL RV9DUk9TU0NPTVBJTElORykgI1FUQlVHLTg2NTMKKyAgICAgaWYoVEFSR0VUIFF0OjpQZGZXaWRn ZXRzKQorICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShwZGZ3aWRnZXRzKQorICAgICBlbmRpZigp CistZW5kaWYoKQorIHF0X2V4YW1wbGVzX2J1aWxkX2VuZCgpCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ZTM1Mzc5ZjEzMzQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTAsMCAr MSwxODMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJlbmdpbmUnCitwa2duYW1lPXF0 Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni40LjIKK3JldmlzaW9uPTEKK3dya3NyYz0icXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1 cmVfYXJncz0iCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCisgLURR VF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fbGliZXZlbnQ9T04KKyAtRFFUX0ZFQVRVUkVfd2Vi ZW5naW5lX3N5c3RlbV9nbj1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2ljdT1P TgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfd2VicnRjX3BpcGV3aXJlPU9OCisgLUROaW5qYV9F WEVDVVRBQkxFPSRYQlBTX1dSQVBQRVJESVIvbmluamEKKyAtRFFUX0JVSUxEX0VYQU1QTEVTPU9O CisgLURQS0dfQ09ORklHX0hPU1RfRVhFQ1VUQUJMRT0ke1BLR19DT05GSUdfRk9SX0JVSUxEfSIK K2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UgcGVybCBwa2ctY29uZmlnIG5vZGVqcyBweXRob24z LWh0bWw1bGliCisgcXQ2LWRlY2xhcmF0aXZlLXRvb2xzIHByb3RvYnVmIGdwZXJmIGZsZXggbnNz LWRldmVsIGxpYndlYnAtZGV2ZWwKKyBpY3UtZGV2ZWwgbGliZXZlbnQtZGV2ZWwiCittYWtlZGVw ZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2 ZWwKKyBxdDYtdG9vbHMtZGV2ZWwgcXQ2LXdlYnNvY2tldHMtZGV2ZWwgbGliZmxhYy1kZXZlbCBx dDYtc3ZnLWRldmVsCisgYWxzYS1saWItZGV2ZWwgbGlidnB4LWRldmVsIHBjaXV0aWxzLWRldmVs IG9wdXMtZGV2ZWwgbGlieHNsdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwg bGNtczItZGV2ZWwgbGlid2VicC1kZXZlbCBpY3UtZGV2ZWwKKyByZTItZGV2ZWwgemxpYi1kZXZl bCBsaWJwbmctZGV2ZWwgbWluaXppcC1kZXZlbCBoYXJmYnV6ei1kZXZlbAorIG5zcy1kZXZlbCBs aWJYY3Vyc29yLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWFNjcm5TYXZlci1kZXZlbAor IHByb3RvYnVmLWRldmVsIGZmbXBlZy1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwg cGlwZXdpcmUtZGV2ZWwKKyBsaWJ4a2JmaWxlLWRldmVsIHF0Ni1sb2NhdGlvbi1kZXZlbCBxdDYt d2ViY2hhbm5lbC1kZXZlbCBsaWJ4c2htZmVuY2UtZGV2ZWwiCisjIE5vdCB3b3JraW5nIHByb3Bl cmx5IHdpdGggSFRUUFMgd2l0aG91dCB0aG9zZSBwYWNrYWdlcworIyBOb3Qgc3RyaWN0IGRlcGVu ZGVuY2llcywgdGhvdWdoCitkZXBlbmRzPSJxdDYtcGx1Z2luLXRscy1vcGVuc3NsIHF0Ni1wbHVn aW4tdGxzLXFjZXJ0b25seSIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBXZWJlbmdpbmUiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+IgorbGljZW5zZT0iR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9ubHksIExHUEwt My4wLW9ubHksIEJTRC0zLUNsYXVzZSIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5xdC5pbyIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3Zl cnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNy Yy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWZmYTk0NTUxOGQxY2M4ZDllZTczNTIzZThk OWMyMDkwODQ0ZjVhMmQ5YzdlYWMwNWM0YWQwNzk0NzJhMTE5YzkKKworbm9jcm9zcz0idW50aWwg bGF0ZXIsIEkgbmVlZCBjYWxpYnJlIGZpcnN0IgorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07dGhl bgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElO Rz1UUlVFIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ01BS0VfVE9PTENIQUlOX0ZJTEU9L3Vzci9s aWIvY21ha2UvUXQ2L3F0LnRvb2xjaGFpbi5jbWFrZSIKK2ZpCisKK2lmIFsgIiRYQlBTX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgbXVzbC1sZWdhY3ktY29tcGF0 IgorZmkKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwltYWtl ZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQorCitpZiBbICEgIiRYQlBTX1dPUkRT SVpFIiA9ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiIF07IHRoZW4KKwlicm9rZW49IndlYmVuZ2lu ZSBjYW4gYmUgYnVpbHQgb25seSBpZiB3b3JkIHNpemUgbWF0Y2hlcyIKK2ZpCisKK2lmIFsgIiRY QlBTX1dPUkRTSVpFIiA9IDMyIF07IHRoZW4KKwlDRkxBR1M9LWcxCisJQ1hYRkxBR1M9LWcxCisJ TERGTEFHUz0iLVdsLC0tbm8ta2VlcC1tZW1vcnkiCisJYnJva2VuPSJub2RlanMgY29tcHJlc3Mg anMgZmlsZXMgZmFpbHVyZSIKK2ZpCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CXBwYyopIGJyb2tlbj0ibm90IHBvcnRlZCIgOzsKK2VzYWMKKworI2J1aWxkX29wdGlvbnM9ImV4 YW1wbGVzIgorI2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZXhhbXBsZXMiCisjZGVzY19vcHRpb25f ZXhhbXBsZXM9IkJ1aWxkIGV4YW1wbGVzIgorCitzdWJwYWNrYWdlcz0icXQ2LXdlYmVuZ2luZS1k ZXZlbCIKKworI2lmIFsgIiRidWlsZF9vcHRpb25fZXhhbXBsZXMiIF07IHRoZW4KKwlzdWJwYWNr YWdlcys9IiBxdDYtd2ViZW5naW5lLWV4YW1wbGVzIgorI2ZpCisKK19ib290c3RyYXBfZ24oKSB7 CisJIyBCb290c3RyYXAgZ24gKGdlbmVyYXRlIG5pbmphKQorCWVjaG8gIkJvb3RzdHJhcHBpbmcg J2duJyIKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZMQUdTX2hv c3QiIENYWEZMQUdTPSIkQ1hYRkxBR1NfaG9zdCIgTERGTEFHUz0iJExERkxBR1NfaG9zdCIgXAor CVBLR0NPTkZJRz0vdXNyL2Jpbi9wa2djb25maWcgUEtHX0NPTkZJR19QQVRIPSIvdXNyL2xpYi9w a2djb25maWc6L3Vzci9zaGFyZS9wa2djb25maWciIFwKKwkJcHl0aG9uMyBidWlsZC9nZW4ucHkg LS1uby1sYXN0LWNvbW1pdC1wb3NpdGlvbiAtLW91dC1wYXRoIFwKKwkJCSR7d3Jrc3JjfS9zcmMv M3JkcGFydHkvZ24vb3V0L1JlbGVhc2UgLS1jYyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJCQktLWN4 eCAiJHtDWFhfaG9zdDotJENYWH0iIC0tbGQgIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFyICIke0FS X2hvc3Q6LSRBUn0iIFwKKwkJCS0tcXQtdmVyc2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVuZ2luZS5x dC5pbyIKKwluaW5qYSAtQyBvdXQvUmVsZWFzZSBnbgorCWNkICR7d3Jrc3JjfQorfQorCitfdW5i dW5kbGVfbGlicygpIHsKKwljZCAke3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVtCisJZWNo byBEcm9wcGluZyBidW5kbGVkIGxpYnMgZnJvbSBjaHJvbWl1bQorCSMgVXNlIHN5c3RlbS1wcm92 aWRlZCBsaWJyYXJpZXMuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBj aGFuZ2VzIG5lZWRlZCkuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBUT0RPOiB1 c2Vfc3lzdGVtX2xpYnVzYiAoaHR0cDovL2NyYnVnLmNvbS8yNjYxNDkpLgorCSMgVE9ETzogdXNl X3N5c3RlbV9zc2wgKGh0dHA6Ly9jcmJ1Zy5jb20vNTgwODcpLgorCSMgVE9ETzogdXNlX3N5c3Rl bV9zcWxpdGUgKGh0dHA6Ly9jcmJ1Zy5jb20vMjIyMDgpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9p Y3UgKHNlZ2ZhdWx0cykKKwkjIHVzZV9zeXN0ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0ZW1fdjg9 MQorCSMgdXNlX3N5c3RlbV96bGliPTEKKwkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRp bHMgc3BlZXgKKwlzeXN0ZW09IgorCQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZy ZWV0eXBlCisJCWhhcmZidXp6LW5nCisJCWljdQorCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGli anBlZworCQlsaWJwbmcKKwkJbGlid2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJ CXJlMgorCQlzbmFwcHkKKwkiCisJYnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxl cy5weSAtLXN5c3RlbS1saWJyYXJpZXMgJHtzeXN0ZW19Cit9CisKKyMgUHJvdmlkZSBhIHdyYXBw ZXIgdG8gcnVuIC4veGJwcy1zcmMgLWogMSBidWlsZCBsYXRlcgorX3dyYXBfbmluamEoKSB7CisJ Y2F0IDw8LSdfRU9GJyA+IiRYQlBTX1dSQVBQRVJESVIiL25pbmphCisJIyEvYmluL3NoCisKKwll eGVjIC91c3IvYmluL25pbmphICROSU5KQUZMQUdTICIkQCIKKwlfRU9GCisJY2htb2QgK3ggIiRY QlBTX1dSQVBQRVJESVIiL25pbmphCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJX2Jvb3RzdHJh cF9nbgorCSMgX3VuYnVuZGxlX2xpYnMKKwlfd3JhcF9uaW5qYQorCWV4cG9ydCBQQVRIPSIkUEFU SDoke3dya3NyY30vc3JjLzNyZHBhcnR5L2duL291dC9SZWxlYXNlIgorfQorCitwcmVfYnVpbGQo KSB7CisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1Jl bGVhc2UiCisJZXhwb3J0IE5JTkpBRkxBR1M9IiRtYWtlam9icyIKKworfQorCitwcmVfaW5zdGFs bCgpIHsKKwlleHBvcnQgUEFUSD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQv UmVsZWFzZSIKK30KKworcG9zdF9pbnN0YWxsKCkgeworCWxvY2FsIF9maWxlCisJZmluZCAiJHtE RVNURElSfSIvdXNyL2xpYi9xdDYvZXhhbXBsZXMgXAorCQktcGF0aCAnKi9saWIvcXQ2LyoqL2xp Yi9xdDYvKicgLXR5cGUgZiB8CisJd2hpbGUgcmVhZCBfZmlsZTsgZG8KKwkJbXYgIiRfZmlsZSIg IiR7X2ZpbGUlL2xpYi9xdDYvKn0iCisJZG9uZQorfQorCitxdDYtd2ViZW5naW5lLWRldmVsX3Bh Y2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IHF0Ni13ZWJjaGFubmVsLWRldmVsPj0ke3ZlcnNpb259XzEKKwkgcXQ2LWRlY2xhcmF0aXZlLWRl dmVsPj0ke3ZlcnNpb259XzEgcXQ2LWxvY2F0aW9uLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hv cnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92 ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvcGtn Y29uZmlnCisJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgInVzci9saWIvKi5z byIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxl cworCX0KK30KKworcXQ2LXdlYmVuZ2luZS1leGFtcGxlc19wYWNrYWdlKCkgeworCXNob3J0X2Rl c2MrPSIgLSBzYW1wbGUgYnJvd3NlcnMiCisJZGVwZW5kcz0icXQ2LXN2ZyIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9xdDYvZXhhbXBsZXMKKwl9Cit9CmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKQEAgLTAsMCAr MSBAQAorcGtnbmFtZT0iJHtwa2duYW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCgpGcm9tIDlkNzMz OTE5YmUyZTJlY2ZmMDE4ZWI5NDZiNzkyYzAxOWVmMjdlNzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIw MjIgMTk6MTA6NTggKzA3MDAKU3ViamVjdDogW1BBVENIIDIvOF0gTmV3IHBhY2thZ2U6IHB5dGhv bjMtcHlxdDYtd2ViZW5naW5lLTYuMy4xCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1weXF0Ni13ZWJl bmdpbmUtZGV2ZWwgICAgfCAgMSArCiBzcmNwa2dzL3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lL3Rl bXBsYXRlIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI4 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3B5dGhvbjMtcHlxdDYt d2ViZW5naW5lLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9weXRob24zLXB5cXQ2 LXdlYmVuZ2luZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni13 ZWJlbmdpbmUtZGV2ZWwgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lLWRldmVsCm5l dyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uZjE4OWJiMzUyNTQyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLXB5cXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAt MCwwICsxIEBACitweXRob24zLXB5cXQ2LXdlYmVuZ2luZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUvdGVtcGxh dGUgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lL3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTJjM2JlODJjMDYyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9weXRob24zLXB5cXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpAQCAtMCwwICsx LDI3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLXB5cXQ2LXdlYmVuZ2luZScKK3Br Z25hbWU9cHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni40LjAKK3JldmlzaW9uPTEK K2J1aWxkX3N0eWxlPXNpcC1idWlsZAoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZSBweXRob24z LVB5UXQtYnVpbGRlciBwa2ctY29uZmlnIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtZ3Vp LWRldmVsIHF0Ni13ZWJlbmdpbmUtZGV2ZWwKKyBweXRob24zLXB5cXQ2LW5ldHdvcmstZGV2ZWwg cHl0aG9uMy1weXF0Ni13ZWJjaGFubmVsLWRldmVsCisgcHl0aG9uMy1weXF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCBweXRob24zLXB5cXQ2LXByaW50c3VwcG9ydC1kZXZlbAorIHB5dGhvbjMtcHlxdDYt d2lkZ2V0cy1kZXZlbCIKK2RlcGVuZHM9InB5dGhvbjMtcHlxdDYiCitzaG9ydF9kZXNjPSJQeXRo b24gMyBiaW5kaW5ncyBmb3IgUXQ2IC0gV2ViRW5naW5lIgorbWFpbnRhaW5lcj0ixJBvw6BuIFRy 4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4iCitsaWNlbnNlPSJHUEwtMy4w LW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jb20v c29mdHdhcmUvcHlxdHdlYmVuZ2luZS8iCitkaXN0ZmlsZXM9IiRQWVBJX1NJVEUvUC9QeVF0Nl9X ZWJFbmdpbmUvUHlRdDZfV2ViRW5naW5lLSR2ZXJzaW9uLnRhci5neiIKK2NoZWNrc3VtPTRjNzFj MTMwODYwYWJjZDExZTA0Y2FmYjIyZTMzOTgzZmE5YTNhZWU4MzIzYzUxOTA5YjE1YTE3MDE4Mjhl MjEKK2xpYjMyZGlzYWJsZWQ9eWVzCisKK3B5dGhvbjMtcHlxdDYtd2ViZW5naW5lLWRldmVsX3Bh Y2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 ICR7bWFrZWRlcGVuZHN9IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgJHtweTNfc2l0ZWxpYn0vUHlRdDYvYmluZGluZ3MKKwkJ dm1vdmUgdXNyL3NoYXJlCisJfQorfQoKRnJvbSBmOWQwYzZlMTNkOTMwZmIyODA0MWRkZDY3NTIz MTJkZTliMTdmMTE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0 PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFu aHF4QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBGZWIgMjAyMyAwNzo0NDowNyArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMy84XSBweXRob24zLXB5cXQ2OiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNy Y3BrZ3MvcHl0aG9uMy1weXF0Ni90ZW1wbGF0ZSB8IDE5ICsrKysrKystLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0 Ni90ZW1wbGF0ZQppbmRleCBmM2ExMGFhY2JiZWQuLmY2ZTRhYzA5ZGNiZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9weXRob24zLXB5cXQ2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0 Ni90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9u My1weXF0NicKIHBrZ25hbWU9cHl0aG9uMy1weXF0NgotdmVyc2lvbj02LjQuMAordmVyc2lvbj02 LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9c2lwLWJ1aWxkCiBidWlsZF9oZWxwZXI9cWVt dQogY29uZmlndXJlX2FyZ3M9Ii0tY29uZmlybS1saWNlbnNlIC0tZGJ1cyAkWEJQU19DUk9TU19C QVNFL3Vzci9pbmNsdWRlL2RidXMtMS4wIgotaG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZl bCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXRvb2xzLWRldmVsCi0gcXQ2LXF1aWNrM2QtZGV2 ZWwgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIHF0Ni1zdmctZGV2ZWwgcHl0aG9uMy1kYnVzCi0gcXQ2 LXdlYmNoYW5uZWwtZGV2ZWwgcXQ2LW11bHRpbWVkaWEtZGV2ZWwgcXQ2LWxvY2F0aW9uLWRldmVs Ci0gcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwgcXQ2LXNlbnNvcnMtZGV2ZWwgcXQ2LXNlcmlhbHBv cnQtZGV2ZWwKLSBxdDYtY29ubmVjdGl2aXR5LWRldmVsIHF0Ni13ZWJzb2NrZXRzLWRldmVsCi0g cHl0aG9uMy1QeVF0LWJ1aWxkZXIgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJh c2UgcHl0aG9uMy1kYnVzIHB5dGhvbjMtUHlRdC1idWlsZGVyIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni10b29scy1kZXZl bAogIHF0Ni13ZWJjaGFubmVsLWRldmVsIHF0Ni1tdWx0aW1lZGlhLWRldmVsIHF0Ni1sb2NhdGlv bi1kZXZlbAogIHF0Ni1yZW1vdGVvYmplY3RzLWRldmVsIHF0Ni1zZW5zb3JzLWRldmVsIHF0Ni1z ZXJpYWxwb3J0LWRldmVsCkBAIC0yMiw3ICsxNyw3IEBAIG1haW50YWluZXI9IsSQb8OgbiBUcuG6 p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgogbGljZW5zZT0iR1BMLTMuMC1v bmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jb20vc29mdHdh cmUvcHlxdC8iCiBkaXN0ZmlsZXM9IiRQWVBJX1NJVEUvUC9QeVF0Ni9QeVF0Ni0kdmVyc2lvbi50 YXIuZ3oiCi1jaGVja3N1bT05MTM5MjQ2OWJlMWY0OTE5MDVmYTllNzhmYTRlNDA1OWE4OWFiNjE2 ZGRmMmVjZmQ1MjViYzFkNjVjMjZiYjkzCitjaGVja3N1bT03NDAyNDRmNjA4ZmUxNWVlMWQ4OTY5 NWM0M2YzMWExNGNhZWNhNDFjNGYwMmFjMzZjODZkZmJhNGE1ZDU4MTNkCiBsaWIzMmRpc2FibGVk PXllcwogCiBpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgpAQCAtNzQsNyAr NjksNyBAQCBweXRob24zLXB5cXQ2LXRvb2xzX3BhY2thZ2UoKSB7CiAKIHB5dGhvbjMtcHlxdDYt dG9vbHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9InB5 dGhvbjMtcHlxdDYtdG9vbHM+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwlkZXBlbmRzPSJweXRo b24zLXB5cXQ2LXRvb2xzPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni10b29scy1kZXZlbAog CSBweXRob24zLXB5cXQ2LXdpZGdldHMtZGV2ZWw+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJ c2hvcnRfZGVzYz0iJHtzaG9ydF9kZXNjfSAtIFRvb2xzIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJ cGtnX2luc3RhbGwoKSB7CkBAIC0xNzYsNyArMTcxLDcgQEAgcHl0aG9uMy1weXF0Ni1kZWNsYXJh dGl2ZV9wYWNrYWdlKCkgewogcHl0aG9uMy1weXF0Ni1kZWNsYXJhdGl2ZS1kZXZlbF9wYWNrYWdl KCkgewogCWxpYjMyZGlzYWJsZWQ9eWVzCiAJZGVwZW5kcz0icHl0aG9uMy1weXF0Ni1kZWNsYXJh dGl2ZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQotCSBweXRob24zLXB5cXQ2LXdpZGdldHMtZGV2 ZWw+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBweXRo b24zLXB5cXQ2LXdpZGdldHMtZGV2ZWw+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRf ZGVzYz0iJHtzaG9ydF9kZXNjfSAtIERlY2xhcmF0aXZlIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJ cGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlICIke3B5M19zaXRlbGlifS9QeVF0Ni9iaW5kaW5ncy9R dFFtbCIKQEAgLTE5Niw3ICsxOTEsNyBAQCBweXRob24zLXB5cXQ2LXF1aWNrM2RfcGFja2FnZSgp IHsKIAogcHl0aG9uMy1weXF0Ni1xdWljazNkLWRldmVsX3BhY2thZ2UoKSB7CiAJbGliMzJkaXNh YmxlZD15ZXMKLQlkZXBlbmRzPSJweXRob24zLXB5cXQ2LXF1aWNrM2Q+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0KKwlkZXBlbmRzPSJweXRob24zLXB5cXQ2LXF1aWNrM2Q+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gcXQ2LXF1aWNrM2QtZGV2ZWwKIAkgcHl0aG9uMy1weXF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjPSIke3Nob3J0X2Rlc2N9 IC0gUXVpY2szRCAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewpAQCAtMjM1 LDcgKzIzMCw3IEBAIHB5dGhvbjMtcHlxdDYtc3ZnX3BhY2thZ2UoKSB7CiAKIHB5dGhvbjMtcHlx dDYtc3ZnLWRldmVsX3BhY2thZ2UoKSB7CiAJbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJw eXRob24zLXB5cXQ2LXN2Zz49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQorCWRlcGVuZHM9InB5dGhv bjMtcHlxdDYtc3ZnPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1zdmctZGV2ZWwKIAkgcHl0 aG9uMy1weXF0Ni13aWRnZXRzLWRldmVsPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0 X2Rlc2M9IiR7c2hvcnRfZGVzY30gLSBzdmcgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5z dGFsbCgpIHsKCkZyb20gOWI5MzMyZjc4YzZlZTkyNzRiNDI4ZjM5YzA1MjdkMWUyODIxNTZhMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjMgRmViIDIwMjMgMTA6MjA6NDUgKzA3MDAKU3ViamVjdDogW1BBVENIIDQv OF0gcHl0aG9uMy1weXF0Ni0zZDogY2xlYW51cCBkZXBlbmRlbmNpZXMKCi0tLQogc3JjcGtncy9w eXRob24zLXB5cXQ2LTNkL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1w eXF0Ni0zZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni0zZC90ZW1wbGF0ZQppbmRl eCA4NzU1NGIyMzY1YTguLjIzNGU3ODJmZjczYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24z LXB5cXQ2LTNkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni0zZC90ZW1wbGF0 ZQpAQCAtMyw4ICszLDggQEAgcGtnbmFtZT1weXRob24zLXB5cXQ2LTNkCiB2ZXJzaW9uPTYuNC4w CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1zaXAtYnVpbGQKLWhvc3RtYWtlZGVwZW5kcz0icHl0 aG9uMy1weXF0Ni1ndWktZGV2ZWwgcXQ2LTNkLWRldmVsCi0gcHl0aG9uMy1QeVF0LWJ1aWxkZXIg cGtnLWNvbmZpZyIKK2J1aWxkX2hlbHBlcj0icHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2 LWJhc2UgcHl0aG9uMy1QeVF0LWJ1aWxkZXIgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJweXRo b24zLXB5cXQ2LWd1aS1kZXZlbCBxdDYtM2QtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zLXB5cXQ2 Igogc2hvcnRfZGVzYz0iUXQ2IGJpbmRpbmdzIGZvciAzRCAtIFB5dGhvbiAzIgoKRnJvbSBhNjNl MzIxODgyMzFkMjU4MmI1ZmMzMGM2Mjk1MDM1MTFjNjU4MTIxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBGZWIg MjAyMyAxMDoyMDo0NSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggNS84XSBweXRob24zLXB5cXQ2LWNo YXJ0czogY2xlYW51cCBkZXBlbmRlbmNpZXMKCi0tLQogc3JjcGtncy9weXRob24zLXB5cXQ2LWNo YXJ0cy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtY2hhcnRz L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXB5cXQ2LWNoYXJ0cy90ZW1wbGF0ZQppbmRleCAw YjVjNjdmNzAwMDcuLjlmOGM1ZDA1ZDdiOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLXB5 cXQ2LWNoYXJ0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtY2hhcnRzL3Rl bXBsYXRlCkBAIC0zLDggKzMsOCBAQCBwa2duYW1lPXB5dGhvbjMtcHlxdDYtY2hhcnRzCiB2ZXJz aW9uPTYuNC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1zaXAtYnVpbGQKLWhvc3RtYWtlZGVw ZW5kcz0icXQ2LWNoYXJ0cy1kZXZlbCBweXRob24zLXB5cXQ2LXdpZGdldHMtZGV2ZWwKLSBweXRo b24zLVB5UXQtYnVpbGRlciBwa2ctY29uZmlnIgorYnVpbGRfaGVscGVyPSJweXRob24zIgoraG9z dG1ha2VkZXBlbmRzPSJxdDYtYmFzZSBweXRob24zLVB5UXQtYnVpbGRlciBwa2ctY29uZmlnIgog bWFrZWRlcGVuZHM9InF0Ni1jaGFydHMtZGV2ZWwgcHl0aG9uMy1weXF0Ni13aWRnZXRzLWRldmVs IgogZGVwZW5kcz0icHl0aG9uMy1weXF0NiIKIHNob3J0X2Rlc2M9IlF0NiBiaW5kaW5ncyBmb3Ig Q2hhcnRzIC0gUHl0aG9uIDMiCgpGcm9tIGEzODllZjEwMzU0Yzk1YWIwNjFjMTM2MTcwMjllY2M5 NzJiMTc3MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBv PUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhA Z21haWwuY29tPgpEYXRlOiBUaHUsIDIzIEZlYiAyMDIzIDEwOjIwOjQ1ICswNzAwClN1YmplY3Q6 IFtQQVRDSCA2LzhdIHB5dGhvbjMtcHlxdDYtbmV0d29ya2F1dGg6IGNsZWFudXAgZGVwZW5kZW5j aWVzCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1weXF0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZSB8IDQg KystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUgYi9z cmNwa2dzL3B5dGhvbjMtcHlxdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUKaW5kZXggMTYwYzBlOThk YmVhLi44MjYwYmMxZmNiNzIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1weXF0Ni1uZXR3 b3JrYXV0aC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHlxdDYtbmV0d29ya2F1dGgv dGVtcGxhdGUKQEAgLTMsOCArMyw4IEBAIHBrZ25hbWU9cHl0aG9uMy1weXF0Ni1uZXR3b3JrYXV0 aAogdmVyc2lvbj02LjQuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9c2lwLWJ1aWxkCi1ob3N0 bWFrZWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtbmV0d29yay1kZXZlbCBxdDYtbmV0d29ya2F1dGgt ZGV2ZWwKLSBweXRob24zLVB5UXQtYnVpbGRlciBwa2ctY29uZmlnIgorYnVpbGRfaGVscGVyPSJw eXRob24zIgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZSBweXRob24zLVB5UXQtYnVpbGRlciBw a2ctY29uZmlnIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtcHlxdDYtbmV0d29yay1kZXZlbCBxdDYt bmV0d29ya2F1dGgtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zLXB5cXQ2Igogc2hvcnRfZGVzYz0i UXQ2IGJpbmRpbmdzIGZvciBOZXR3b3JrQXV0aCAtIFB5dGhvbiAzIgoKRnJvbSAzMmRmNzI2Njcy ZjlhNzY0ZTkyZjc1MmU1NTk0NzJhMmQzMzRkZDkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNCBGZWIgMjAyMyAw OTozNzo0MSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggNy84XSBtYXRoamF4OiB1cGRhdGUgdG8gMy4y LjIuCgotLS0KIHNyY3BrZ3MvbWF0aGpheC90ZW1wbGF0ZSB8IDEyICsrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL21hdGhqYXgvdGVtcGxhdGUgYi9zcmNwa2dzL21hdGhqYXgvdGVtcGxhdGUKaW5k ZXggYjQ1ODQyZDliOTU2Li41MGRmMTA4NGZhODggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWF0aGph eC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21hdGhqYXgvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtYXRoamF4JwogcGtnbmFtZT1tYXRoamF4Ci12ZXJzaW9u PTIuNy45Cit2ZXJzaW9uPTMuMi4yCiByZXZpc2lvbj0xCiBkZXBlbmRzPSJmb250LXV0aWwiCiBz aG9ydF9kZXNjPSJKYXZhU2NyaXB0IGRpc3BsYXkgZW5naW5lIGZvciBMYVRlWCwgTWF0aE1MIGFu ZCBBc2NpaU1hdGgiCkBAIC04LDE1ICs4LDkgQEAgbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cubWF0aGpheC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbWF0aGph eC9NYXRoSmF4L2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1jOTE2NzI3OWM4 N2RhMDQ0ZjJmZjkxMGFkNTczYTAyY2U5MDM1NGNiNTk0NDBhZTU2OGViODZlMTYzMGY2NWRmCi1m b250X2RpcnM9Ii91c3Ivc2hhcmUvZm9udHMvbWF0aGpheCIKK2NoZWNrc3VtPTQyMDZiOTY0NWE5 N2Y0MzEwMThkMGI2YzQwMjFjOTg2MDdkNDliYTRkYzEyOWY0ZjJlY2NlNjc1ZTJmY2JhMTEKIAog ZG9faW5zdGFsbCgpIHsKIAl2bWtkaXIgdXNyL3NoYXJlL21hdGhqYXgKLQl2bWtkaXIgdXNyL3No YXJlL2ZvbnRzL21hdGhqYXgKLQl2Y29weSAiTWF0aEpheC5qcyBjb25maWcgZXh0ZW5zaW9ucyBm b250cyBqYXggbG9jYWxpemF0aW9uIiB1c3Ivc2hhcmUvbWF0aGpheAotCWZvciBkIGluIEFzYW5h LU1hdGggR3lyZS17UGFnZWxsYSxUZXJtZXN9IExhdGluLU1vZGVybiBOZW8tRXVsZXIgU1RJWC1X ZWIgVGVYOyBkbwotCQlsbiAtc2ZyICR7REVTVERJUn0vdXNyL3NoYXJlL21hdGhqYXgvZm9udHMv SFRNTC1DU1MvJHtkfS9vdGYvKi5vdGYgXAotCQkJJHtERVNURElSfS91c3Ivc2hhcmUvZm9udHMv bWF0aGpheAotCWRvbmUKKwl2Y29weSAiZXM1LyoiIHVzci9zaGFyZS9tYXRoamF4CiB9CgpGcm9t IGExOWI4MmEzZDc0MTkyY2NkYTgyMDBmOWMwYTI0MTljYzYyYTU4MzAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0y MEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDgg QXVnIDIwMjIgMjE6NDI6MzQgKzA3MDAKU3ViamVjdDogW1BBVENIIDgvOF0gY2FsaWJyZTogdXBk YXRlIHRvIDYuMTMuMAoKLS0tCiBzcmNwa2dzL2NhbGlicmUvcGF0Y2hlcy9kaXNhYmxlLXVwZGF0 ZS5wYXRjaCB8ICAyNSAtLS0tLQogc3JjcGtncy9jYWxpYnJlL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICAgfCAxMTEgKysrKysrKysrKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4OSBp bnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2NhbGlicmUvcGF0Y2hlcy9kaXNhYmxlLXVwZGF0ZS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY2FsaWJyZS9wYXRjaGVzL2Rpc2FibGUtdXBkYXRlLnBhdGNoIGIvc3JjcGtncy9jYWxpYnJl L3BhdGNoZXMvZGlzYWJsZS11cGRhdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDUzOWIwODNlMGZhNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2FsaWJyZS9wYXRj aGVzL2Rpc2FibGUtdXBkYXRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAot Y29waWVkIGZyb20gRmVkb3JhIExpbnV4IChodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9y cG1zL2NhbGlicmUvYmxvYi9yYXdoaWRlL2YvY2FsaWJyZS1uby11cGRhdGUucGF0Y2gpCi1kaWZm IC1OdXIgY2FsaWJyZS0yLjkuMC5vcmlnL3NyYy9jYWxpYnJlL2d1aTIvdXBkYXRlLnB5IGNhbGli cmUtMi45LjAvc3JjL2NhbGlicmUvZ3VpMi91cGRhdGUucHkKLS0tLSBjYWxpYnJlLTIuOS4wLm9y aWcvc3JjL2NhbGlicmUvZ3VpMi91cGRhdGUucHkJMjAxNC0xMS0wOCAyMTo0MzoyMi44ODg2ODE1 MzggLTA3MDAKLSsrKyBjYWxpYnJlLTIuOS4wL3NyYy9jYWxpYnJlL2d1aTIvdXBkYXRlLnB5CTIw MTQtMTEtMDggMjE6NDU6MjcuMzYzMzgzODE1IC0wNzAwCi1AQCAtNjMsMjAgKzYzLDYgQEAKLSAg ICAgICAgIHdoaWxlIG5vdCBzZWxmLnNodXRkb3duX2V2ZW50LmlzX3NldCgpOgotICAgICAgICAg ICAgIGNhbGlicmVfdXBkYXRlX3ZlcnNpb24gPSBOT19DQUxJQlJFX1VQREFURQotICAgICAgICAg ICAgIHBsdWdpbnNfdXBkYXRlX2ZvdW5kID0gMAotLSAgICAgICAgICAgIHRyeToKLS0gICAgICAg ICAgICAgICAgdmVyc2lvbiA9IGdldF9uZXdlc3RfdmVyc2lvbigpCi0tICAgICAgICAgICAgICAg IGlmIHZlcnNpb25bOjJdID4gbnVtZXJpY192ZXJzaW9uWzoyXToKLS0gICAgICAgICAgICAgICAg ICAgIGNhbGlicmVfdXBkYXRlX3ZlcnNpb24gPSB2ZXJzaW9uCi0tICAgICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgotLSAgICAgICAgICAgICAgICBwcmludHMoJ0ZhaWxlZCB0byBjaGVj ayBmb3IgY2FsaWJyZSB1cGRhdGU6JywgYXNfdW5pY29kZShlKSkKLS0gICAgICAgICAgICB0cnk6 Ci0tICAgICAgICAgICAgICAgIHVwZGF0ZV9wbHVnaW5zID0gZ2V0X3BsdWdpbl91cGRhdGVzX2F2 YWlsYWJsZShyYWlzZV9lcnJvcj1UcnVlKQotLSAgICAgICAgICAgICAgICBpZiB1cGRhdGVfcGx1 Z2lucyBpcyBub3QgTm9uZToKLS0gICAgICAgICAgICAgICAgICAgIHBsdWdpbnNfdXBkYXRlX2Zv dW5kID0gbGVuKHVwZGF0ZV9wbHVnaW5zKQotLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKLS0gICAgICAgICAgICAgICAgcHJpbnRzKCdGYWlsZWQgdG8gY2hlY2sgZm9yIHBsdWdp biB1cGRhdGU6JywgYXNfdW5pY29kZShlKSkKLS0gICAgICAgICAgICBpZiBjYWxpYnJlX3VwZGF0 ZV92ZXJzaW9uICE9IE5PX0NBTElCUkVfVVBEQVRFIG9yIHBsdWdpbnNfdXBkYXRlX2ZvdW5kID4g MDoKLS0gICAgICAgICAgICAgICAgc2VsZi5zaWduYWwudXBkYXRlX2ZvdW5kLmVtaXQoY2FsaWJy ZV91cGRhdGVfdmVyc2lvbiwgcGx1Z2luc191cGRhdGVfZm91bmQpCi0gICAgICAgICAgICAgc2Vs Zi5zaHV0ZG93bl9ldmVudC53YWl0KHNlbGYuSU5URVJWQUwpCi0gCi0gICAgIGRlZiBzaHV0ZG93 bihzZWxmKToKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsaWJyZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y2FsaWJyZS90ZW1wbGF0ZQppbmRleCA0OWMxMzJkMGMxODcuLmU1OGMyY2NiYzgzMiAxMDA2NDQK LS0tIGEvc3JjcGtncy9jYWxpYnJlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2FsaWJyZS90ZW1w bGF0ZQpAQCAtMSwzNyArMSw1MSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2FsaWJyZScKIHBr Z25hbWU9Y2FsaWJyZQotdmVyc2lvbj01LjQ0LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249Ni4xMy4w CityZXZpc2lvbj0xCitidWlsZF93cmtzcmM9Y2FsaWJyZQogYnVpbGRfc3R5bGU9cHl0aG9uMy1t b2R1bGUKIHB5Y29tcGlsZV9kaXJzPSIvdXNyL2xpYi9jYWxpYnJlLyIKLWhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBweXRob24zLUJlYXV0aWZ1bFNvdXA0IHB5dGhvbjMtUGlsbG93IHB5dGhv bjMtUHlRdDUtc3ZnCi0gcHl0aG9uMy1QeVF0NS13ZWJlbmdpbmUgcHl0aG9uMy1hcHN3IHB5dGhv bjMtY3NzLXBhcnNlciBweXRob24zLWRhdGV1dGlsCi0gcHl0aG9uMy1kZXZlbCBweXRob24zLWh0 bWw1LXBhcnNlciBweXRob24zLW1zZ3BhY2sgcHl0aG9uMy1yZWdleCBxdDUtcW1ha2UKLSBsaWJw b2RvZm8tZGV2ZWwgcHl0aG9uMy1QeVF0LWJ1aWxkZXIgcHl0aG9uMy1QeVF0NS1kZXZlbCBxdDUt aG9zdC10b29scwotIHB5dGhvbjMtemVyb2NvbmYgeGRnLXV0aWxzIHJhcHlkc2NyaXB0LW5nIgot bWFrZWRlcGVuZHM9ImxpYmlucHV0LWRldmVsIGxpYm1hZ2ljay1kZXZlbCBsaWJtdHAtZGV2ZWwK LSBsaWJwb2RvZm8tZGV2ZWwgbGlid21mLWRldmVsIGxpYnhrYmNvbW1vbi1kZXZlbCBweXRob24z LVB5UXQ1LWRldmVsCi0gcXQ1LWRldmVsIHNxbGl0ZS1kZXZlbCB0c2xpYi1kZXZlbCBodW5zcGVs bC1kZXZlbCBoeXBoZW4tZGV2ZWwgbGlic3RlbW1lci1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBjbWFrZSBweXRob24zLUJlYXV0aWZ1bFNvdXA0IHB5dGhvbjMtUGlsbG93Cisg cHl0aG9uMy1hcHN3IHB5dGhvbjMtY3NzLXBhcnNlciBweXRob24zLWRhdGV1dGlsIHNpcCBxdDYt YmFzZSBweXRob24zLXB5N3pyCisgcHl0aG9uMy1odG1sNS1wYXJzZXIgcHl0aG9uMy1tc2dwYWNr IHB5dGhvbjMtcmVnZXggcHl0aG9uMy1tZWNoYW5pemUKKyBtYXRoamF4IGxpYmVyYXRpb24tZm9u dHMtdHRmIHB5dGhvbjMtemVyb2NvbmYgeGRnLXV0aWxzIHJhcHlkc2NyaXB0LW5nCisgcHl0aG9u My1QeVF0LWJ1aWxkZXIgcHl0aG9uMy1NYXJrZG93biIKK21ha2VkZXBlbmRzPSJsaWJpbnB1dC1k ZXZlbCBsaWJtYWdpY2stZGV2ZWwgbGlibXRwLWRldmVsIGxpYnN0ZW1tZXItZGV2ZWwKKyBsaWJw b2RvZm8tZGV2ZWwgbGlid21mLWRldmVsIGxpYnhrYmNvbW1vbi1kZXZlbCBwb3BwbGVyLWNwcC1k ZXZlbAorIGZyZWV0eXBlLWRldmVsIHVjaGFyZGV0LWRldmVsIG9wZW5zc2wtZGV2ZWwgaWN1LWRl dmVsIGxpYnVzYi1kZXZlbAorIHNxbGl0ZS1kZXZlbCB0c2xpYi1kZXZlbCBodW5zcGVsbC1kZXZl bCBoeXBoZW4tZGV2ZWwgbGlic3RlbW1lci1kZXZlbAorIHB5dGhvbjMtcHlxdDYtZGV2ZWwgcHl0 aG9uMy1weXF0Ni13ZWJlbmdpbmUtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg b3B0aXBuZyBwb3BwbGVyLXV0aWxzIHB5dGhvbjMtQmVhdXRpZnVsU291cDQKLSBweXRob24zLU1h cmtkb3duIHB5dGhvbjMtUGlsbG93IHB5dGhvbjMtUHlRdDUtc3ZnIHB5dGhvbjMtemVyb2NvbmYK LSBweXRob24zLVB5UXQ1LXdlYmVuZ2luZSBweXRob24zLVB5UXQ1LXdlYmNoYW5uZWwgcHl0aG9u My1QeWdtZW50cyBweXRob24zLWFwc3cKKyBxdDYtaW1hZ2Vmb3JtYXRzIHB5dGhvbjMtUHlnbWVu dHMgcHl0aG9uMy1weWNyeXB0b2RvbWUKKyBweXRob24zLU1hcmtkb3duIHB5dGhvbjMtUGlsbG93 IHB5dGhvbjMtemVyb2NvbmYgcHl0aG9uMy1QeWdtZW50cyBweXRob24zLWFwc3cKICBweXRob24z LWNzcy1wYXJzZXIgcHl0aG9uMy1jc3NzZWxlY3QgcHl0aG9uMy1kYXRldXRpbCBweXRob24zLWpl ZXBuZXkKICBweXRob24zLWRuc3B5dGhvbiBweXRob24zLWZlZWRwYXJzZXIgcHl0aG9uMy1odG1s NS1wYXJzZXIgcHl0aG9uMy1tZWNoYW5pemUKICBweXRob24zLW1zZ3BhY2sgcHl0aG9uMy1uZXRp ZmFjZXMgcHl0aG9uMy1wc3V0aWwgcHl0aG9uMy1yZWdleCBweXRob24zLWh0bWwydGV4dAotIHB5 dGhvbjMtcHljaG0gcHl0aG9uMy1jY2hhcmRldCBxdDUtd2ViZW5naW5lIHNwZWVjaC1kaXNwYXRj aGVyIHB5dGhvbjMtc2dtbGxpYiIKLSMgc2hvdWxkIGNoZWNrIGlmIHB5dGhvbjMtcHljcnlwdG9k b21lIGlzIHN0aWxsIG5lZWRlZAotY2hlY2tkZXBlbmRzPSIke2RlcGVuZHN9IGxpYmpwZWctdHVy Ym8tdG9vbHMganhybGliIHB5dGhvbjMtcHljcnlwdG9kb21lIgorIHB5dGhvbjMtcHljaG0gcHl0 aG9uMy1jY2hhcmRldCBzcGVlY2gtZGlzcGF0Y2hlciBweXRob24zLXNnbWxsaWIKKyBweXRob24z LWh0bWw1bGliIHB5dGhvbjMtbWVjaGFuaXplIHB5dGhvbjMtcHk3enIgbWF0aGpheCBsaWJlcmF0 aW9uLWZvbnRzLXR0ZgorIHB5dGhvbjMtcHlxdDYtbmV0d29yayBweXRob24zLXB5cXQ2LWRidXMg cHl0aG9uMy1weXF0Ni1vcGVuZ2wtd2lkZ2V0cworIHB5dGhvbjMtcHlxdDYtd2lkZ2V0cyBweXRo b24zLXB5cXQ2LWd1aSBweXRob24zLXB5cXQ2LWRlY2xhcmF0aXZlCisgcHl0aG9uMy1weXF0Ni1w cmludHN1cHBvcnQgcHl0aG9uMy1weXF0Ni13ZWJjaGFubmVsIHB5dGhvbjMtcHlxdDYtc3ZnCisg cHl0aG9uMy1weXF0Ni13ZWJlbmdpbmUiCitjaGVja2RlcGVuZHM9IiR7ZGVwZW5kc30gbGlianBl Zy10dXJiby10b29scyBqeHJsaWIiCiBzaG9ydF9kZXNjPSJFYm9vayBtYW5hZ2VtZW50IGFwcGxp Y2F0aW9uIgogbWFpbnRhaW5lcj0ic2ttcHogPGRlbS5wcm9jb3Bpb3VAZ21haWwuY29tPiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL2NhbGlicmUtZWJvb2suY29t IgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20va292aWRnb3lh bC9jYWxpYnJlL21hc3Rlci9DaGFuZ2Vsb2cudHh0IgotZGlzdGZpbGVzPSJodHRwczovL2Rvd25s b2FkLmNhbGlicmUtZWJvb2suY29tLyR7dmVyc2lvbn0vY2FsaWJyZS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTZmZmFhM2VhZmQzNmEyNDM1NWU1OTU3ZjBmODM4ZGI2ZGI2ZDM0NTZjZmEx N2NiNGQxMzlmZDk0ZWJhZjg4ZWMKK19sb3Zlcj03LjQuMy4yCitkaXN0ZmlsZXM9Imh0dHBzOi8v ZG93bmxvYWQuY2FsaWJyZS1lYm9vay5jb20vJHt2ZXJzaW9ufS9jYWxpYnJlLSR7dmVyc2lvbn0u dGFyLnh6CisgaHR0cHM6Ly9kb3dubG9hZC5kb2N1bWVudGZvdW5kYXRpb24ub3JnL2xpYnJlb2Zm aWNlL3NyYy8ke19sb3ZlciUuKn0vbGlicmVvZmZpY2UtZGljdGlvbmFyaWVzLSR7X2xvdmVyfS50 YXIueHoiCitjaGVja3N1bT0iZWI0MGYzNGI3MTA2ZTNmMzZkMzdlMGI2NWRhY2I1Y2VjODYzNjY1 YzY4ZmIyMzUwNTkyZGJjMWVjMTMzYWVhMworIDNhNTVkNTgwN2I3NjM4MjdmODIwYzRhZWUwYTBm ZDlmNDQ1MjBlNzA2MjljOWViOTc0OGUxZjhjNTdjNjQzODkiCiBweXRob25fdmVyc2lvbj0zCiBs aWIzMmRpc2FibGVkPXllcwogbm9jcm9zcz15ZXMKIAorcG9zdF9leHRyYWN0KCkgeworCW12IGNh bGlicmUtJHt2ZXJzaW9ufSBjYWxpYnJlCit9CisKIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIFJlbW92 ZSB1bm5lZWRlZCBmaWxlcyBhbmQgbGlicwogCXJtIC1yZiByZXNvdXJjZXMvJHtwa2duYW1lfS1w b3J0YWJsZS4qCkBAIC00MSwzNiArNTUsODkgQEAgZG9fY29uZmlndXJlKCkgewogCQktZSAiL2lt cG9ydCBjb25maWdfZGlyLywvb3Mucm1kaXIoY29uZmlnX2RpcikvZCIgXAogCQktZSAicy8nY3Rj LXBvc21sJy8ndGV4dCcgbm90IGluIG10IGFuZCAncGRmJyBub3QgaW4gbXQgYW5kICd4aHRtbCcv IiBcCiAJCS1lICJzL15OYW1lPWNhbGlicmUvTmFtZT1DYWxpYnJlL2ciCisJY2F0ID4iJHtYQlBT X1dSQVBQRVJESVJ9L3NpcC1xbWFrZSIgPDwtX0VPRgorCSMhL2Jpbi9zaAorCWV4ZWMgL3Vzci9s aWIvcXQ2L2Jpbi9xbWFrZSBcXAorCQkiXCRAIiBcXAorCQlQUkVGSVg9L3VzciBcXAorCQlRVF9J TlNUQUxMX1BSRUZJWD0vdXNyIFxcCisJCUxJQj0vdXNyL2xpYiBcXAorCQlRTUFLRV9DQz0iJEND IiBRTUFLRV9DWFg9IiRDWFgiIFxcCisJCVFNQUtFX0xJTks9IiRDWFgiIFFNQUtFX0xJTktfQz0i JENDIiBcXAorCQlRTUFLRV9DRkxBR1MrPSIkQ0ZMQUdTIiBcXAorCQlRTUFLRV9DWFhGTEFHUys9 IiRDWFhGTEFHUyIgXFwKKwkJUU1BS0VfTEZMQUdTKz0iJExERkxBR1MiIFxcCisJCUNPTkZJRys9 bm9fcXRfcnBhdGgKKwlfRU9GCisJY2htb2QgNzU1ICR7WEJQU19XUkFQUEVSRElSfS9zaXAtcW1h a2UKIH0KIAogZG9fYnVpbGQoKSB7CisJZXhwb3J0IFFNQUtFPSR7WEJQU19XUkFQUEVSRElSfS9z aXAtcW1ha2UKIAlweXRob24zIHNldHVwLnB5IGJ1aWxkCiAJcHl0aG9uMyBzZXR1cC5weSBndWkK KwlweXRob24zIHNldHVwLnB5IGtha2FzaQorCXB5dGhvbjMgc2V0dXAucHkgaHlwaGVuYXRpb24g XAorCQktLXBhdGgtdG8taHlwaGVuYXRpb24gIiR3cmtzcmMvbGlicmVvZmZpY2UtJHtfbG92ZXJ9 L2RpY3Rpb25hcmllcyIKKwlweXRob24zIHNldHVwLnB5IGxpYmVyYXRpb25fZm9udHMgXAorCQkt LXN5c3RlbS1saWJlcmF0aW9uX2ZvbnRzIFwKKwkJLS1wYXRoLXRvLWxpYmVyYXRpb25fZm9udHMg L3Vzci9zaGFyZS9mb250cy9UVEYKKwlweXRob24zIHNldHVwLnB5IG1hdGhqYXggXAorCQktLXBh dGgtdG8tbWF0aGpheCAvdXNyL3NoYXJlL21hdGhqYXggLS1zeXN0ZW0tbWF0aGpheAorCXB5dGhv bjMgc2V0dXAucHkgaXNvNjM5CisJcHl0aG9uMyBzZXR1cC5weSBpc28zMTY2CisJIyBweXRob24z IHNldHVwLnB5IHJlY2VudF91YXMKIAlweXRob24zIHNldHVwLnB5IHJhcHlkc2NyaXB0CisJcHl0 aG9uMyBzZXR1cC5weSB0cmFuc2xhdGlvbnMKKwlweXRob24zIHNldHVwLnB5IHJlc291cmNlcyBc CisJCS0tcGF0aC10by1oeXBoZW5hdGlvbiAiJHdya3NyYy9saWJyZW9mZmljZS0ke19sb3Zlcn0v ZGljdGlvbmFyaWVzIiBcCisJCS0tc3lzdGVtLWxpYmVyYXRpb25fZm9udHMgXAorCQktLXBhdGgt dG8tbGliZXJhdGlvbl9mb250cyAvdXNyL3NoYXJlL2ZvbnRzL1RURiBcCisJCS0tcGF0aC10by1t YXRoamF4IC91c3Ivc2hhcmUvbWF0aGpheCAtLXN5c3RlbS1tYXRoamF4CiB9CiAKIGRvX2NoZWNr KCkgeworCWV4cG9ydCBRTUFLRT0ke1hCUFNfV1JBUFBFUkRJUn0vc2lwLXFtYWtlCiAJIyBxdCB0 ZXN0IGNyYXNoZXMgd2l0aG91dCBhbnkgZXJyb3IgbWVzc2FnZXMKIAkjIGRpc2FibGVkIGZvciBu b3cKIAkjIHVucmFyIHRlc3QgZmFpbHMgYmVjYXVzZSBweXRob24zLXVucmFyZGxsIGlzbid0IHBh Y2thZ2VkCiAJIyBzZWFyY2hpbmcgdGVzdCBjYXNlIGZhaWxzIChub24tZGV0ZXJtaW5pc3RpYykK LQkjIDd6IHRlc3RzIGRpc2FibGVkIChtaXNzaW5nIHB5dGhvbi1weTd6ciBkZXBlbmRlbmNpZXMp CiAJIyB0ZXN0X2RvbV9sb2FkIGNhc2UgZmFpbHMKIAlweXRob24zIHNldHVwLnB5IHRlc3QgXAog CQktLWV4Y2x1ZGUtdGVzdC1uYW1lIHVucmFyIFwKIAkJLS1leGNsdWRlLXRlc3QtbmFtZSBxdCBc CiAJCS0tZXhjbHVkZS10ZXN0LW5hbWUgc2VhcmNoaW5nIFwKLQkJLS1leGNsdWRlLXRlc3QtbmFt ZSA3eiBcCiAJCS0tZXhjbHVkZS10ZXN0LW5hbWUgdGVzdF9kb21fbG9hZAogfQogCiBkb19pbnN0 YWxsKCkgeworCWV4cG9ydCBRTUFLRT0ke1hCUFNfV1JBUFBFUkRJUn0vc2lwLXFtYWtlCiAJdm1r ZGlyIHVzci9zaGFyZS96c2gvc2l0ZS1mdW5jdGlvbnMKKwl2bWtkaXIgdXNyL3NoYXJlL21hbgog CiAJcHl0aG9uMyBzZXR1cC5weSBcCiAJCWluc3RhbGwgLS1wcmVmaXg9L3VzciAtLXN0YWdpbmct cm9vdD0ke0RFU1RESVJ9L3VzcgorCXZjb3B5ICJtYW4tcGFnZXMvKiIgdXNyL3NoYXJlL21hbgog Ci0JZm9yIG0gaW4gbWFuLXBhZ2VzL21hbjEvKi4xOyBkbwotCQl2bWFuICIke219IgotCWRvbmUK KwkjIGZha2Ugc29tZSB1c2VyLWFnZW50LCBvdGhlcndpc2Ugd2UgbmVlZCB0byBidWlsZCByZWNl bnRfdWFzIHRhcmdldCwKKwkjIHdoaWNoIGdlbmVyYXRlcyBhICh2ZXJ5IGxvbmcpIGxpc3QgZnJv bSBjdXJyZW50IGRhdGEsCisJY2F0IDw8LSdFT0YnID4ke0RFU1RESVJ9L3Vzci9zaGFyZS9jYWxp YnJlL3VzZXItYWdlbnQtZGF0YS5qc29uCit7CisgICJjaHJvbWVfdmVyc2lvbnMiOiBbCisgICAg eyJjaHJvbWVfdmVyc2lvbiI6IjExMC4wLjU0ODEiLCJkYXRlIjoiMjAyMy0wMi0wNyIsIndlYmtp dF92ZXJzaW9uIjoiMTEwIn0sCisgICAgeyJjaHJvbWVfdmVyc2lvbiI6IjEwOS4wLjU0MTQiLCJk YXRlIjoiMjAyMy0wMS0xMCIsIndlYmtpdF92ZXJzaW9uIjoiMTA5In0KKyAgXSwKKyAgImNvbW1v bl91c2VyX2FnZW50cyI6IFsKKyAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2lu NjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEw OS4wLjAuMCBTYWZhcmkvNTM3LjM2IiwKKyAgICAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAu MDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hy b21lLzExMC4wLjAuMCBTYWZhcmkvNTM3LjM2IgorICBdLAorICAiZGVza3RvcF9wbGF0Zm9ybXMi OiBbIldpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCJdLAorICAiZmlyZWZveF92ZXJzaW9ucyI6 IFsiMTEwLjAiLCIxMDkuMCIsIjEwOC4wIiwiMTAyLjAiXSwKKyAgInRpbWVzdGFtcCI6ICIyMDIz LTAyLTI0VDA0OjE3OjIxLjcyMTU2NiswMDowMCIsCisgICJ1c2VyX2FnZW50c19wb3B1bGFyaXR5 IjogeworICAgICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBs ZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTA5LjAuMC4wIFNhZmFy aS81MzcuMzYiOiAyNTI2NTIsCisgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdp bjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8x MTAuMC4wLjAgU2FmYXJpLzUzNy4zNiI6IDExNTcxMworICB9Cit9CisJRU9GCiB9Cg== --===============7564865848133425320==--