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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 5813 invoked from network); 23 Feb 2022 00:12:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 23 Feb 2022 00:12:47 -0000 Content-Type: multipart/mixed; boundary="===============1487849863788177172==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG9wZW5zaG90OiB1cGRhdGUgdG8gMi42LjEu?= To: ml@inbox.vuxu.org From: tibequadorian Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 23 Feb 2022 01:12:47 +0100 List-Id: Message-ID: <20220223001247.F4vaScfkVLjAGgh55_2ufe4UPJm8dnQUangTxZZSng0@z> GitHub notification mails are now in MIME to allow UTF8. --===============1487849863788177172== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdGliZXF1YWRvcmlhbiBhZ2FpbnN0 IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5j b20vdGliZXF1YWRvcmlhbi92b2lkLXBhY2thZ2VzIG9wZW5zaG90Cmh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNTc5OAoKb3BlbnNob3Q6IHVwZGF0ZSB0 byAyLjYuMS4KUGF0Y2hlcyBmb3Igb3BlbnNob3QgYXJlIGFscmVhZHkgdXBzdHJlYW0gc28gbWF5 YmUgd2Ugc2hvdWxkIHdhaXQgZm9yIDIuNi4yLg0KDQo8IS0tIFVuY29tbWVudCByZWxldmFudCBz ZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0K DQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhp cyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBw YWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1 YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElm IHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIFtz a2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2Iv bWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0KYW5kIHRlc3Qg YXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25l IGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lw cGluZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0 IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykN Ci0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1 cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjds DQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzU3OTgucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============1487849863788177172== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openshot-35798.patch" RnJvbSBjM2MzMzU3YWNhMjg1MWRlOWQxMjMwMzQxM2RkY2RmMWQ4YTEyMjI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5k ZT4KRGF0ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0MTozOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MS8zXSBsaWJvcGVuc2hvdC1hdWRpbzogdXBkYXRlIHRvIDAuMi4yLgoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL2xpYm9wZW5z aG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggIHwgODYgKysrKysrKysrKy0tLS0tLS0t LQogc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDcgKy0K IDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzJiZWZjOTJkNjQx Li5jNjZiNGZiZTY3MDAgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtMjU5Nyw3ICsyNTk3LDcgQEAgbGliYXgyNWlvLnNvLjAgbGliYXgyNS0wLjAuMTJy YzRfMQogbGlibWlsbC5zby4xOCBsaWJtaWxsLTEuMTRfMQogbGliZ2VzLTEuMC5zby4wIGdzdDEt ZWRpdGluZy1zZXJ2aWNlcy0xLjYuMl8xCiBsaWJ5a25lb21nci5zby4wIGxpYnlrbmVvbWdyLTAu MS44XzEKLWxpYm9wZW5zaG90LWF1ZGlvLnNvLjcgbGlib3BlbnNob3QtYXVkaW8tMC4yLjBfMQor bGlib3BlbnNob3QtYXVkaW8uc28uOCBsaWJvcGVuc2hvdC1hdWRpby0wLjIuMl8xCiBsaWJvcGVu c2hvdC5zby4xOSBsaWJvcGVuc2hvdC0wLjIuNV8zCiBsaWJwcXh4LTYuMy5zbyBsaWJwcXh4LTYu My4zXzEKIGxpYm5kcGkuc28uMyBuZHBpLTMuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9w ZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xpYm9wZW5zaG90 LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2gKaW5kZXggYjVmMTc4ZDkyZDhhLi41MzIyNDhj ODYyMTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlib3BlbnNob3QtYXVkaW8vcGF0Y2hlcy9maXgt bXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11 c2wucGF0Y2gKQEAgLTEsNDAgKzEsNDYgQEAKLS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVz L2p1Y2VfY29yZS9qdWNlX2NvcmUuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICsw MjAwCi0rKysgYi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvanVjZV9jb3JlLmNw cAkyMDE2LTEyLTEyIDE0OjUzOjIzLjUzMjYxMzM3OCArMDEwMAotQEAgLTk3LDcgKzk3LDcgQEAK LSAgI2luY2x1ZGUgPG5ldC9pZi5oPg0KLSAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KLSANCi0t ICNpZiAhIEpVQ0VfQU5EUk9JRA0KLSsgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19H TElCQ19fKQ0KLSAgICNpbmNsdWRlIDxleGVjaW5mby5oPg0KLSAgI2VuZGlmDQotICNlbmRpZg0K LS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0 ZW1TdGF0cy5jcHAJMjAxNi0wOC0zMCAwNjoyNDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL0p1 Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5j cHAJMjAxNi0xMi0xMiAxNDo1ODozNS45ODg5ODYwMzAgKzAxMDAKLUBAIC0xMzQsNiArMTM0LDgg QEAKLSAgICAgICAgIH0NCi0gICAgIH0NCi0gDQotKyAgICNlbGlmICFkZWZpbmVkKF9fR0xJQkNf XykNCi0rICAgIGphc3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhDQot ICAgICNlbHNlDQotICAgICB2b2lkKiBzdGFja1sxMjhdOw0KLSAgICAgaW50IGZyYW1lcyA9IGJh Y2t0cmFjZSAoc3RhY2ssIG51bUVsZW1lbnRzSW5BcnJheSAoc3RhY2spKTsNCi0tLS0gYS9KdWNl TGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3Rh dHMuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICswMjAwCi0rKysgYi9KdWNlTGli cmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3RhdHMu Y3BwCTIwMTYtMTItMTIgMTU6MDc6MzUuMDQ2NjA3Nzg4ICswMTAwCi1AQCAtMTQyLDggKzE0Miwx NSBAQAotICAgICByZXR1cm4gcmVzdWx0Ow0KLSB9DQotIA0KLSsjaWYgZGVmaW5lZChfX0dMSUJD X18pDQotIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1YWdlKCkgICAgeyByZXR1cm4g Z2V0TG9jYWxlVmFsdWUgKF9OTF9JREVOVElGSUNBVElPTl9MQU5HVUFHRSk7IH0NCi0gU3RyaW5n IFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1 ZSAoX05MX0lERU5USUZJQ0FUSU9OX1RFUlJJVE9SWSk7IH0NCi0rI2Vsc2UNCi0rLy8gVGhlIGlk ZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VBR0UgYW5kIF9URVJSSVJUT1JZIGFy ZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuDQotKy8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgZml4 IHRoYW4ganVzdCByZXR1cm5pbmcgbm9uc2Vuc2UuIEluc3BlY3QgZW52KCJMQU5HIikgcGVyaGFw cz8NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyTGFuZ3VhZ2UoKSAgICB7IHJldHVybiBT dHJpbmcoImVuIik7IH0NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAg ICB7IHJldHVybiBTdHJpbmcoIlVTIik7IH0NCi0rI2VuZGlmDQotIFN0cmluZyBTeXN0ZW1TdGF0 czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgeyByZXR1cm4gZ2V0VXNlckxhbmd1YWdlKCkgKyAiLSIg KyBnZXRVc2VyUmVnaW9uKCk7IH0NCi0gDQotIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorZGlm ZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9qdWNlX2NvcmUuY3Bw IGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL2p1Y2VfY29yZS5jcHAKK2luZGV4 IDhiYWM4MTIuLmUyM2I0MjIgMTAwNjQ0CistLS0gYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9q dWNlX2NvcmUvanVjZV9jb3JlLmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVj ZV9jb3JlL2p1Y2VfY29yZS5jcHAKK0BAIC05Miw3ICs5Miw3IEBACisgICNpbmNsdWRlIDxuZXQv aWYuaD4KKyAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorIAorLSAjaWYgISBKVUNFX0FORFJPSUQK KysgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgI2luY2x1ZGUg PGV4ZWNpbmZvLmg+CisgICNlbmRpZgorICNlbmRpZgorZGlmZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5 Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9uYXRpdmUvanVjZV9saW51eF9TeXN0ZW1TdGF0cy5jcHAg Yi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lz dGVtU3RhdHMuY3BwCitpbmRleCAyZDdmYWEzLi5mMTMyNDA1IDEwMDY0NAorLS0tIGEvSnVjZUxp YnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNlX2xpbnV4X1N5c3RlbVN0YXRz LmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNl X2xpbnV4X1N5c3RlbVN0YXRzLmNwcAorQEAgLTEzOSw4ICsxMzksMTUgQEAgc3RhdGljIFN0cmlu ZyBnZXRMb2NhbGVWYWx1ZSAobmxfaXRlbSBrZXkpCisgICAgIHJldHVybiByZXN1bHQ7CisgfQor IAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyBTdHJpbmcgU3lzdGVtU3RhdHM6OmdldFVzZXJM YW5ndWFnZSgpICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1ZSAoX05MX0lERU5USUZJQ0FUSU9O X0xBTkdVQUdFKTsgfQorIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlclJlZ2lvbigpICAgICAg IHsgcmV0dXJuIGdldExvY2FsZVZhbHVlIChfTkxfSURFTlRJRklDQVRJT05fVEVSUklUT1JZKTsg fQorKyNlbHNlCisrLy8gVGhlIGlkZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VB R0UgYW5kIF9URVJSSVJUT1JZIGFyZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuCisrLy8gVE9E TzogRmluZCBhIGJldHRlciBmaXggdGhhbiBqdXN0IHJldHVybmluZyBub25zZW5zZS4gSW5zcGVj dCBlbnYoIkxBTkciKSBwZXJoYXBzPworK1N0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1 YWdlKCkgICAgIHsgcmV0dXJuIFN0cmluZygiZW4iKTsgfQorK1N0cmluZyBTeXN0ZW1TdGF0czo6 Z2V0VXNlclJlZ2lvbigpICAgICAgIHsgcmV0dXJuIFN0cmluZygiVVMiKTsgfQorKyNlbmRpZgor IFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgIHsgcmV0dXJuIGdldFVz ZXJMYW5ndWFnZSgpICsgIi0iICsgZ2V0VXNlclJlZ2lvbigpOyB9CisgCisgLy89PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KK2RpZmYgLS1naXQgYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2Nv cmUvc3lzdGVtL2p1Y2VfU3lzdGVtU3RhdHMuY3BwIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMv anVjZV9jb3JlL3N5c3RlbS9qdWNlX1N5c3RlbVN0YXRzLmNwcAoraW5kZXggNzU3ZWEyNC4uNmI2 MWUxNiAxMDA2NDQKKy0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0 ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKKysrKyBiL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1 Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKK0BAIC0xMzgsNyArMTM4LDcgQEAg U3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRTdGFja0JhY2t0cmFjZSgpCisgeworICAgICBTdHJpbmcg cmVzdWx0OworIAorLSAgICNpZiBKVUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVworKyAgICNpZiBK VUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVyB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGph c3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhCisgCisgICAgI2VsaWYg SlVDRV9XSU5ET1dTCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBs YXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZQppbmRleCA1NmMzMzBlYWZj ZjEuLjI1NGY4YjYyODNiZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3QtYXVkaW8nCiBwa2duYW1l PWxpYm9wZW5zaG90LWF1ZGlvCi12ZXJzaW9uPTAuMi4wCit2ZXJzaW9uPTAuMi4yCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJkb3h5Z2VuIgpAQCAtMTEs NyArMTEsNyBAQCBtYWludGFpbmVyPSJTcGVuY2VyIEhpbGwgPHNwZW5jZXJuaDc3QGdtYWlsLmNv bT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHVi LmNvbS9PcGVuU2hvdC9saWJvcGVuc2hvdC1hdWRpbyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL09wZW5TaG90L2xpYm9wZW5zaG90LWF1ZGlvL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFy Lmd6IgotY2hlY2tzdW09OTM3ZmY0ZjFjMmRmYjhhYjVkNTZhZDg1YmVhY2FhMjlkZmQ1YTc5YWYw ZDljZjY0NzM4NjAzNGZlOTg4MjMwOQorY2hlY2tzdW09NjZiZWRmZGEwZDhkNDMwNTk4YjIxYmMy ZGRlNmMwMDE2YTc1OGE2YzgzNDY3ZDAyNzNhOWQ2OTJkZTEwYmFhZgogCiBpZiBbICIkWEJQU19U QVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZl bCIKQEAgLTIwLDkgKzIwLDEwIEBAIGZpCiAKIGxpYm9wZW5zaG90LWF1ZGlvLWRldmVsX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHMrPSIg JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHMrPSIgJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGFsc2EtbGliLWRldmVsIHpsaWItZGV2ZWwi CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIv Y21ha2UKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIGJiNjFhNDRiNWVjZTE4 ZTI4MDVhNWI2ZTYxNGQ1NWNlMGE5ODY2Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHRpYmVxdWFkb3JpYW4gPHRpYmVxdWFkb3JpYW5AcG9zdGVvLmRlPgpEYXRlOiBXZWQsIDIzIEZl YiAyMDIyIDAwOjQyOjM3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIGxpYm9wZW5zaG90OiB1 cGRhdGUgdG8gMC4yLjcuCgplbmFibGUgZm9yIGFsbCBhcmNocyBhbmQgbGliYwotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vcGF0 Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNyby5wYXRjaCAgfCAzNCAtLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4LW11c2wucGF0Y2ggICAgfCAz NCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgfCAxNiArKysrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9u cygrKSwgNDEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJvcGVu c2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RFQ19DT05URVhULW1hY3JvLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saWJvcGVuc2hvdC9wYXRjaGVzL2ZpeC1tdXNsLnBhdGNoCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYzY2YjRmYmU2NzAw Li5kMzM5MTE1ZGRhMzkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtMjU5OCw3ICsyNTk4LDcgQEAgbGlibWlsbC5zby4xOCBsaWJtaWxsLTEuMTRfMQog bGliZ2VzLTEuMC5zby4wIGdzdDEtZWRpdGluZy1zZXJ2aWNlcy0xLjYuMl8xCiBsaWJ5a25lb21n ci5zby4wIGxpYnlrbmVvbWdyLTAuMS44XzEKIGxpYm9wZW5zaG90LWF1ZGlvLnNvLjggbGlib3Bl bnNob3QtYXVkaW8tMC4yLjJfMQotbGlib3BlbnNob3Quc28uMTkgbGlib3BlbnNob3QtMC4yLjVf MworbGlib3BlbnNob3Quc28uMjEgbGlib3BlbnNob3QtMC4yLjdfMQogbGlicHF4eC02LjMuc28g bGlicHF4eC02LjMuM18xCiBsaWJuZHBpLnNvLjMgbmRwaS0zLjRfMQogbGlibG9nLnNvIGFuZHJv aWQtc3R1ZGlvLTMuMC4xXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlib3BlbnNob3QvcGF0Y2hl cy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNyby5wYXRjaCBiL3NyY3BrZ3MvbGlib3BlbnNob3Qv cGF0Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNyby5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZTZjNjQwYThlMTFlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9s aWJvcGVuc2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RFQ19DT05URVhULW1hY3JvLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLS0tIGEvaW5jbHVkZS9GRm1wZWdVdGlsaXRpZXMu aAkyMDIwLTAzLTAzIDA5OjAwOjA2LjAwMDAwMDAwMCArMDEwMAotKysrIGIvaW5jbHVkZS9GRm1w ZWdVdGlsaXRpZXMuaAkyMDIwLTA4LTE5IDE3OjA0OjU4LjUzNTgwNjc0NCArMDIwMAotQEAgLTE2 MywxMSArMTYzLDEwIEBACi0gCQkjZGVmaW5lIEFWX0ZSRUVfQ09OVEVYVChhdl9jb250ZXh0KSBh dmNvZGVjX2ZyZWVfY29udGV4dCgmYXZfY29udGV4dCkKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVD X1RZUEUoYXZfc3RyZWFtKSBhdl9zdHJlYW0tPmNvZGVjcGFyLT5jb2RlY190eXBlCi0gCQkjZGVm aW5lIEFWX0ZJTkRfREVDT0RFUl9DT0RFQ19JRChhdl9zdHJlYW0pIGF2X3N0cmVhbS0+Y29kZWNw YXItPmNvZGVjX2lkCi0tCQlhdXRvIEFWX0dFVF9DT0RFQ19DT05URVhUID0gW10oQVZTdHJlYW0q IGF2X3N0cmVhbSwgQVZDb2RlYyogYXZfY29kZWMpIHsgXAotLQkJCUFWQ29kZWNDb250ZXh0ICpj b250ZXh0ID0gYXZjb2RlY19hbGxvY19jb250ZXh0Myhhdl9jb2RlYyk7IFwKLS0JCQlhdmNvZGVj X3BhcmFtZXRlcnNfdG9fY29udGV4dChjb250ZXh0LCBhdl9zdHJlYW0tPmNvZGVjcGFyKTsgXAot LQkJCXJldHVybiBjb250ZXh0OyBcCi0tCQl9OwotKwkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQ09O VEVYVChhdl9zdHJlYW0sIGF2X2NvZGVjKSBcCi0rCQkJKHsgQVZDb2RlY0NvbnRleHQgKmNvbnRl eHQgPSBhdmNvZGVjX2FsbG9jX2NvbnRleHQzKGF2X2NvZGVjKTsgXAotKwkJCSAgIGF2Y29kZWNf cGFyYW1ldGVyc190b19jb250ZXh0KGNvbnRleHQsIGF2X3N0cmVhbS0+Y29kZWNwYXIpOyBcCi0r CQkJICAgY29udGV4dDsgfSkKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX1BBUl9DT05URVhUKGF2 X3N0cmVhbSwgYXZfY29kZWMpIGF2X2NvZGVjOwotIAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfRlJP TV9TVFJFQU0oYXZfc3RyZWFtLGNvZGVjX2luKQotIAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQVRU UklCVVRFUyhhdl9zdHJlYW0sIGF2X2NvbnRleHQpIGF2X3N0cmVhbS0+Y29kZWNwYXIKLUBAIC0x OTksMTEgKzE5OCwxMCBAQAotIAkJI2RlZmluZSBBVl9GUkVFX0NPTlRFWFQoYXZfY29udGV4dCkg YXZjb2RlY19mcmVlX2NvbnRleHQoJmF2X2NvbnRleHQpCi0gCQkjZGVmaW5lIEFWX0dFVF9DT0RF Q19UWVBFKGF2X3N0cmVhbSkgYXZfc3RyZWFtLT5jb2RlY3Bhci0+Y29kZWNfdHlwZQotIAkJI2Rl ZmluZSBBVl9GSU5EX0RFQ09ERVJfQ09ERUNfSUQoYXZfc3RyZWFtKSBhdl9zdHJlYW0tPmNvZGVj cGFyLT5jb2RlY19pZAotLQkJYXV0byBBVl9HRVRfQ09ERUNfQ09OVEVYVCA9IFtdKEFWU3RyZWFt KiBhdl9zdHJlYW0sIEFWQ29kZWMqIGF2X2NvZGVjKSB7IFwKLS0JCQlBVkNvZGVjQ29udGV4dCAq Y29udGV4dCA9IGF2Y29kZWNfYWxsb2NfY29udGV4dDMoYXZfY29kZWMpOyBcCi0tCQkJYXZjb2Rl Y19wYXJhbWV0ZXJzX3RvX2NvbnRleHQoY29udGV4dCwgYXZfc3RyZWFtLT5jb2RlY3Bhcik7IFwK LS0JCQlyZXR1cm4gY29udGV4dDsgXAotLQkJfTsKLSsJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0NP TlRFWFQoYXZfc3RyZWFtLCBhdl9jb2RlYykgXAotKwkJCSh7IEFWQ29kZWNDb250ZXh0ICpjb250 ZXh0ID0gYXZjb2RlY19hbGxvY19jb250ZXh0Myhhdl9jb2RlYyk7IFwKLSsJCQkgICBhdmNvZGVj X3BhcmFtZXRlcnNfdG9fY29udGV4dChjb250ZXh0LCBhdl9zdHJlYW0tPmNvZGVjcGFyKTsgXAot KwkJCSAgIGNvbnRleHQ7IH0pCi0gCQkjZGVmaW5lIEFWX0dFVF9DT0RFQ19QQVJfQ09OVEVYVChh dl9zdHJlYW0sIGF2X2NvZGVjKSBhdl9jb2RlYzsKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0ZS T01fU1RSRUFNKGF2X3N0cmVhbSxjb2RlY19pbikKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX0FU VFJJQlVURVMoYXZfc3RyZWFtLCBhdl9jb250ZXh0KSBhdl9zdHJlYW0tPmNvZGVjcGFyCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4LW11c2wucGF0Y2ggYi9zcmNw a2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42NzQyNGE4NDgwODYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMvZml4LW11c2wucGF0Y2gKQEAgLTAsMCArMSwzNCBA QAorZGlmZiAtLWdpdCBhL2V4YW1wbGVzL0NNYWtlTGlzdHMudHh0IGIvZXhhbXBsZXMvQ01ha2VM aXN0cy50eHQKK2luZGV4IGJkZTc0NGQ3Li5kMDc5MjRmYiAxMDA2NDQKKy0tLSBhL2V4YW1wbGVz L0NNYWtlTGlzdHMudHh0CisrKysgYi9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAorQEAgLTM5LDEx ICszOSwxOSBAQCBmaWxlKFRPX05BVElWRV9QQVRIICIke1BST0pFQ1RfU09VUkNFX0RJUn0vZXhh bXBsZXMvIiBURVNUX01FRElBX1BBVEgpCisgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3Bl bnNob3QtZXhhbXBsZSBQUklWQVRFCisgCS1EVEVTVF9NRURJQV9QQVRIPSIke1RFU1RfTUVESUFf UEFUSH0iICkKKyAKKytmaW5kX2xpYnJhcnkoRVhFQ0lORk9fRk9VTkQgZXhlY2luZm8pCisrCisg IyBMaW5rIHRlc3QgZXhlY3V0YWJsZSB0byB0aGUgbmV3IGxpYnJhcnkKKyB0YXJnZXRfbGlua19s aWJyYXJpZXMob3BlbnNob3QtZXhhbXBsZSBvcGVuc2hvdCkKKytpZihFWEVDSU5GT19GT1VORCkK KysJdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5zaG90LWV4YW1wbGUgZXhlY2luZm8pCisrZW5k aWYoKQorIAorIGFkZF9leGVjdXRhYmxlKG9wZW5zaG90LWh0bWwtZXhhbXBsZSBFeGFtcGxlSHRt bC5jcHApCisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5zaG90LWh0bWwtZXhhbXBsZSBvcGVu c2hvdCBRdDU6Okd1aSkKKytpZihFWEVDSU5GT19GT1VORCkKKysJdGFyZ2V0X2xpbmtfbGlicmFy aWVzKG9wZW5zaG90LWh0bWwtZXhhbXBsZSBleGVjaW5mbykKKytlbmRpZigpCisgCisgIyMjIyMj IyMjIyMjIyMjIFBMQVlFUiBFWEVDVVRBQkxFICMjIyMjIyMjIyMjIyMjIyMKKyAjIENyZWF0ZSB0 ZXN0IGV4ZWN1dGFibGUKK0BAIC01Myw2ICs2MSw5IEBAIHNldF90YXJnZXRfcHJvcGVydGllcyhv cGVuc2hvdC1wbGF5ZXIgUFJPUEVSVElFUyBBVVRPTU9DIE9OKQorIAorICMgTGluayB0ZXN0IGV4 ZWN1dGFibGUgdG8gdGhlIG5ldyBsaWJyYXJ5CisgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wZW5z aG90LXBsYXllciBvcGVuc2hvdCkKKytpZihFWEVDSU5GT19GT1VORCkKKysJdGFyZ2V0X2xpbmtf bGlicmFyaWVzKG9wZW5zaG90LXBsYXllciBleGVjaW5mbykKKytlbmRpZigpCisgCisgIyMjIyMj IyMjIyMjIyMjIFRFU1QgQkxBQ0tNQUdJQyBDQVBUVVJFIEFQUCAjIyMjIyMjIyMjIyMjIyMjCisg aWYgKEJMQUNLTUFHSUNfRk9VTkQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90L3Rl bXBsYXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC90ZW1wbGF0ZQppbmRleCBiNTk0NzIxMDViMzUu LjI3NGYwOGU5OTI1MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdsaWJvcGVuc2hvdCcKIHBrZ25hbWU9bGlib3BlbnNob3QKLXZlcnNp b249MC4yLjUKLXJldmlzaW9uPTYKLWFyY2hzPSJpNjg2IHg4Nl82NCBwcGM2NGxlIgordmVyc2lv bj0wLjIuNworcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSIt REVOQUJMRV9SVUJZPU9GRiAtRFVTRV9TWVNURU1fSlNPTkNQUD1PTiIgIyBCdWlsZHMgZmFpbCB3 aXRoIFJ1YnktMi40LjEKLWhvc3RtYWtlZGVwZW5kcz0ic3dpZyBkb3h5Z2VuIHJ1YnkgcHl0aG9u MyBwa2ctY29uZmlnIgorIyBCdWlsZHMgZmFpbCB3aXRoIFJ1YnktMi40LjEKK2NvbmZpZ3VyZV9h cmdzPSItREVOQUJMRV9SVUJZPU9GRiAtRFVTRV9TWVNURU1fSlNPTkNQUD1PTiIKK2hvc3RtYWtl ZGVwZW5kcz0ic3dpZyBkb3h5Z2VuIHJ1YnkgcHl0aG9uMyBwa2ctY29uZmlnIHF0NS1xbWFrZSBx dDUtaG9zdC10b29scyIKIG1ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIGZmbXBlZy1kZXZlbCBs aWJtYWdpY2stZGV2ZWwgcXQ1LWRldmVsIGxpYmdvbXAtZGV2ZWwKICBsaWJvcGVuc2hvdC1hdWRp by1kZXZlbCBxdDUtbXVsdGltZWRpYS1kZXZlbCB1bml0dGVzdC1jcHAgemVyb21xLWRldmVsIGNw cHptcQogIGpzb25jcHAtZGV2ZWwiCkBAIC0xNSwxMCArMTUsMTQgQEAgbWFpbnRhaW5lcj0iU3Bl bmNlciBIaWxsIDxzcGVuY2Vybmg3N0BnbWFpbC5jb20+IgogbGljZW5zZT0iTEdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5TaG90L2xpYm9wZW5zaG90 IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vT3BlblNob3QvbGlib3BlbnNob3QvYXJj aGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT04YWU3ZDIyNmZiZDJlZmJjODRkYTRm N2Q5ZDhjN2YzY2M5NjE2ZTRkZTQ2ZTEyMzNlM2IwYTg0YWMwYTQyOWJjCitjaGVja3N1bT01Njhl YWI2ZDY5ZDQ2OWM1Zjc0NWYwZTI1Mzg3Y2E1ZTAwMGY3YzI4YmU0ODQxN2IwZDc3NzA1NzdhYzc0 YTI4CiAjIEZJWE1FOiB0ZXN0cyBzZWdmYXVsdAogbWFrZV9jaGVjaz1leHRlbmRlZAogCitpZiBb ICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJl eGVjaW5mby1kZXZlbCIKK2ZpCisKIGxpYm9wZW5zaG90LWRldmVsX3BhY2thZ2UoKSB7CiAJc2hv cnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewoKRnJvbSAx MjI0ZDM4NjYzYjBlZTVmMjdhMmVkN2E5ODE0OGYyNmFlNTZmMTAyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5kZT4KRGF0 ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0Mjo1MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBv cGVuc2hvdDogdXBkYXRlIHRvIDIuNi4xLgoKZW5hYmxlIGZvciBhbGwgYXJjaHMgYW5kIGxpYmMK cGF0Y2hlcyBhcmUgdXBzdHJlYW0KLS0tCiAuLi4vb3BlbnNob3QvcGF0Y2hlcy8wMDAxLXZpZGVv X3dpZGdldC5wYXRjaCAgfCAgIDc0ICsKIC4uLi9wYXRjaGVzLzAwMDItcHl0aG9uMy4xMF9pbnQu cGF0Y2ggICAgICAgICB8IDE5OTMgKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvb3BlbnNob3Qv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKy0KIDMgZmlsZXMgY2hhbmdlZCwg MjA3MyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8wMDAxLXZpZGVvX3dpZGdldC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8wMDAyLXB5dGhvbjMuMTBfaW50LnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9fd2lk Z2V0LnBhdGNoIGIvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9fd2lkZ2V0LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWU5M2Q3NjRjNGJm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlkZW9f d2lkZ2V0LnBhdGNoCkBAIC0wLDAgKzEsNzQgQEAKK0Zyb20gOTc0OGExMzI2OGQ2NmE1OTQ5YWVi Yzk3MDYzN2I1OTAzNzU2ZDAxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvbmF0 aGFuIFRob21hcyA8am9uYXRoYW5Ab3BlbnNob3Qub3JnPgorRGF0ZTogVGh1LCA3IE9jdCAyMDIx IDEzOjUzOjA5IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFN1cHBvcnQgZm9yIHByZXZpZXdpbmcg YW5hbW9ycGhpYyB2aWRlbyBwcm9maWxlcywgaW5jbHVkaW5nIGEKKyBmZXcgY29kZSBjbGVhbi11 cHMuCisKKy0tLQorIHNyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSB8IDIyICsrKysrKystLS0t LS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSBiL3NyYy93 aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggNzMyNjU5OGQzLi44NDJkZWIzYmEgMTAwNjQ0 CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3NyYy93aW5kb3dzL3Zp ZGVvX3dpZGdldC5weQorQEAgLTc3LDI4ICs3NywyMCBAQCBkZWYgY2hhbmdlZChzZWxmLCBhY3Rp b24pOgorICAgICAgICAgICAgIGlmIGFjdGlvbi50eXBlID09ICJsb2FkIiBhbmQgYWN0aW9uLnZh bHVlcy5nZXQoInBpeGVsX3JhdGlvIik6CisgICAgICAgICAgICAgICAgIHBpeGVsX3JhdGlvX2No YW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgIHNlbGYucGl4ZWxfcmF0aW8gPSBvcGVuc2hv dC5GcmFjdGlvbigKKy0gICAgICAgICAgICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJwaXhl bF9yYXRpbyIpLmdldCgibnVtIiwgMTYpLAorLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uLnZh bHVlcy5nZXQoInBpeGVsX3JhdGlvIikuZ2V0KCJkZW4iLCA5KSkKKysgICAgICAgICAgICAgICAg ICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJwaXhlbF9yYXRpbyIpLmdldCgibnVtIiwgMSksCisrICAg ICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgicGl4ZWxfcmF0aW8iKS5nZXQoImRl biIsIDEpKQorICAgICAgICAgICAgICAgICBsb2cuaW5mbygKKyAgICAgICAgICAgICAgICAgICAg ICJTZXQgdmlkZW8gd2lkZ2V0IHBpeGVsIGFzcGVjdCByYXRpbyB0bzogJXMiLAorICAgICAgICAg ICAgICAgICAgICAgc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkpCisgICAgICAgICAgICAgZWxp ZiBhY3Rpb24ua2V5IGFuZCBhY3Rpb24ua2V5WzBdID09ICJwaXhlbF9yYXRpbyI6CisgICAgICAg ICAgICAgICAgIHBpeGVsX3JhdGlvX2NoYW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgIHNl bGYucGl4ZWxfcmF0aW8gPSBvcGVuc2hvdC5GcmFjdGlvbigKKy0gICAgICAgICAgICAgICAgICAg IGFjdGlvbi52YWx1ZXMuZ2V0KCJudW0iLCAxNiksCistICAgICAgICAgICAgICAgICAgICBhY3Rp b24udmFsdWVzLmdldCgiZGVuIiwgOSkpCisrICAgICAgICAgICAgICAgICAgICBhY3Rpb24udmFs dWVzLmdldCgibnVtIiwgMSksCisrICAgICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdl dCgiZGVuIiwgMSkpCisgICAgICAgICAgICAgICAgIGxvZy5pbmZvKAorICAgICAgICAgICAgICAg ICAgICAgIlVwZGF0ZTogU2V0IHZpZGVvIHdpZGdldCBwaXhlbCBhc3BlY3QgcmF0aW8gdG86ICVz IiwKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYucGl4ZWxfcmF0aW8uVG9GbG9hdCgpKQorIAor LSAgICAgICAgICAgICMgVXBkYXRlIG1heCBzaXplICh0byBzaXplIG9mIHZpZGVvIHByZXZpZXcg dmlld3BvcnQpCistICAgICAgICAgICAgaWYgZGlzcGxheV9yYXRpb19jaGFuZ2VkIG9yIHBpeGVs X3JhdGlvX2NoYW5nZWQ6CistICAgICAgICAgICAgICAgIHRpbWVsaW5lID0gZ2V0X2FwcCgpLndp bmRvdy50aW1lbGluZV9zeW5jLnRpbWVsaW5lCistICAgICAgICAgICAgICAgIHRpbWVsaW5lLlNl dE1heFNpemUoCistICAgICAgICAgICAgICAgICAgICByb3VuZChzZWxmLndpZHRoKCkgKiBzZWxm LnBpeGVsX3JhdGlvLlRvRmxvYXQoKSksCistICAgICAgICAgICAgICAgICAgICByb3VuZChzZWxm LmhlaWdodCgpICogc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkpCistICAgICAgICAgICAgICAg ICAgICApCistCisgCisgICAgIGRlZiBkcmF3VHJhbnNmb3JtSGFuZGxlcihzZWxmLCBwYWludGVy LCBzeCwgc3ksIHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdodCwgb3JpZ2luX3gsIG9yaWdpbl95 LAorICAgICAgeDE9Tm9uZSwgeTE9Tm9uZSwgeDI9Tm9uZSwgeTI9Tm9uZSwgcm90YXRpb24gPSBO b25lKToKK0BAIC0yMzYsNyArMjI4LDcgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICph cmdzKToKKyAgICAgICAgICAgICAjIERldGVybWluZSBvcmlnaW5hbCBzaXplIG9mIGNsaXAncyBy ZWFkZXIKKyAgICAgICAgICAgICBzb3VyY2Vfd2lkdGggPSBzZWxmLnRyYW5zZm9ybWluZ19jbGlw LmRhdGFbJ3JlYWRlciddWyd3aWR0aCddCisgICAgICAgICAgICAgc291cmNlX2hlaWdodCA9IHNl bGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YVsncmVhZGVyJ11bJ2hlaWdodCddCistICAgICAgICAg ICAgc291cmNlX3NpemUgPSBRU2l6ZShzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQpCisrICAg ICAgICAgICAgc291cmNlX3NpemUgPSBRU2l6ZShzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQg KiBzZWxmLnBpeGVsX3JhdGlvLlJlY2lwcm9jYWwoKS5Ub0RvdWJsZSgpKQorIAorICAgICAgICAg ICAgICMgRGV0ZXJtaW5lIHNjYWxlIG9mIGNsaXAKKyAgICAgICAgICAgICBzY2FsZSA9IHNlbGYu dHJhbnNmb3JtaW5nX2NsaXAuZGF0YVsnc2NhbGUnXQorQEAgLTQwNSw3ICszOTcsNyBAQCBkZWYg cGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgc2VsZi5tdXRleC51bmxv Y2soKQorIAorICAgICBkZWYgY2VudGVyZWRWaWV3cG9ydChzZWxmLCB3aWR0aCwgaGVpZ2h0KToK Ky0gICAgICAgICIiIiBDYWxjdWxhdGUgc2l6ZSBvZiB2aWV3cG9ydCB0byBtYWludGFpbiBhcHNl Y3QgcmF0aW8gIiIiCisrICAgICAgICAiIiIgQ2FsY3VsYXRlIHNpemUgb2Ygdmlld3BvcnQgdG8g bWFpbnRhaW4gYXNwZWN0IHJhdGlvICIiIgorIAorICAgICAgICAgIyBDYWxjdWxhdGUgcGFkZGlu ZworICAgICAgICAgdG9wX3BhZGRpbmcgPSAoaGVpZ2h0IC0gKGhlaWdodCAqIHNlbGYuem9vbSkp IC8gMi4wCitAQCAtNDE2LDcgKzQwOCw3IEBAIGRlZiBjZW50ZXJlZFZpZXdwb3J0KHNlbGYsIHdp ZHRoLCBoZWlnaHQpOgorICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0ICogc2VsZi56b29tCisgCisg ICAgICAgICAjIENhbGN1bGF0ZSB3aGljaCBkaXJlY3Rpb24gdG8gc2NhbGUgKGZvciBwZXJmZWN0 IGNlbnRlcmluZykKKy0gICAgICAgIGFzcGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9G bG9hdCgpICogc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkKKysgICAgICAgIGFzcGVjdFJhdGlv ID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9GbG9hdCgpCisgICAgICAgICBoZWlnaHRGcm9tV2lkdGgg PSB3aWR0aCAvIGFzcGVjdFJhdGlvCisgICAgICAgICB3aWR0aEZyb21IZWlnaHQgPSBoZWlnaHQg KiBhc3BlY3RSYXRpbworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAw MDItcHl0aG9uMy4xMF9pbnQucGF0Y2ggYi9zcmNwa2dzL29wZW5zaG90L3BhdGNoZXMvMDAwMi1w eXRob24zLjEwX2ludC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjhmNmRjNTNkYmY0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbnNob3QvcGF0 Y2hlcy8wMDAyLXB5dGhvbjMuMTBfaW50LnBhdGNoCkBAIC0wLDAgKzEsMTk5MyBAQAorRnJvbSBh MzA4ODUwMzUwMGU3OTg3N2NlOTg1ZTQ3ODRmNzU0NzhkOWI3OTJlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+CitE YXRlOiBNb24sIDIwIFNlcCAyMDIxIDA1OjM2OjE5IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMS82 XSBQcmVmZXJlbmNlczogRml4IGxvZ2dpbmcgY2FsbHMKKworLS0tCisgc3JjL2xhdW5jaC5weSAg ICAgICAgICAgICAgfCAgMiArLQorIHNyYy93aW5kb3dzL3ByZWZlcmVuY2VzLnB5IHwgMTggKysr KysrKysrKystLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2xhdW5jaC5weSBiL3NyYy9sYXVuY2gucHkK K2luZGV4IDlmYzYwMGIyMy4uYjYxNGU5YmM3IDEwMDc1NQorLS0tIGEvc3JjL2xhdW5jaC5weQor KysrIGIvc3JjL2xhdW5jaC5weQorQEAgLTQxLDcgKzQxLDcgQEAKKyAgIiIiCisgCisgaW1wb3J0 IHN5cworLWltcG9ydCBvcy5wYXRoCisraW1wb3J0IG9zCisgaW1wb3J0IGFyZ3BhcnNlCisgCisg ZnJvbSBQeVF0NS5RdENvcmUgaW1wb3J0IFF0CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvcHJl ZmVyZW5jZXMucHkgYi9zcmMvd2luZG93cy9wcmVmZXJlbmNlcy5weQoraW5kZXggYmY3ZDY3YjBj Li4zMjVmNDk2YjMgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy9wcmVmZXJlbmNlcy5weQorKysr IGIvc3JjL3dpbmRvd3MvcHJlZmVyZW5jZXMucHkKK0BAIC0xMDIsNyArMTAyLDcgQEAgZGVmIF9f aW5pdF9fKHNlbGYpOgorIAorICAgICBkZWYgdHh0U2VhcmNoX2NoYW5nZWQoc2VsZik6CisgICAg ICAgICAiIiJ0ZXh0Q2hhbmdlZCBldmVudCBoYW5kbGVyIGZvciBzZWFyY2ggYm94IiIiCistICAg ICAgICBsb2cuaW5mbygiU2VhcmNoIGZvciAlcyIgJSBzZWxmLnR4dFNlYXJjaC50ZXh0KCkpCisr ICAgICAgICBsb2cuaW5mbygiU2VhcmNoIGZvciAlcyIsIHNlbGYudHh0U2VhcmNoLnRleHQoKSkK KyAKKyAgICAgICAgICMgUG9wdWxhdGUgcHJlZmVyZW5jZXMKKyAgICAgICAgIHNlbGYuUG9wdWxh dGUoZmlsdGVyPXNlbGYudHh0U2VhcmNoLnRleHQoKSkKK0BAIC0zMTcsNyArMzE3LDcgQEAgZGVm IFBvcHVsYXRlKHNlbGYsIGZpbHRlcj0iIik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YWx1ZV9saXN0LnJlbW92ZSh2YWx1ZV9pdGVtKQorIAorICAgICAgICAgICAgICAgICAg ICAgICAgICMgUmVtb3ZlIGhhcmR3YXJlIG1vZGUgaXRlbXMgd2hpY2ggY2Fubm90IGRlY29kZSB0 aGUgZXhhbXBsZSB2aWRlbworLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiUHJl cGFyaW5nIHRvIHRlc3QgaGFyZHdhcmUgZGVjb2Rpbmc6ICVzIiAlICh2YWx1ZV9saXN0KSkKKysg ICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoIlByZXBhcmluZyB0byB0ZXN0IGhhcmR3 YXJlIGRlY29kaW5nOiAlcyIsIHZhbHVlX2xpc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIHZhbHVlX2l0ZW0gaW4gbGlzdCh2YWx1ZV9saXN0KToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHZhbHVlX2l0ZW1bInZhbHVlIl0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKG5vdCBzZWxmLnRlc3RIYXJkd2FyZURlY29kZSh2YWx1ZV9saXN0LCB2LCAwKQor QEAgLTQ3MCw3ICs0NzAsNyBAQCBkZWYgYm9vbF92YWx1ZV9jaGFuZ2VkKHNlbGYsIHdpZGdldCwg cGFyYW0sIHN0YXRlKToKKyAgICAgICAgICMgVHJpZ2dlciBzcGVjaWZpYyBhY3Rpb25zCisgICAg ICAgICBpZiBwYXJhbVsic2V0dGluZyJdID09ICJkZWJ1Zy1tb2RlIjoKKyAgICAgICAgICAgICAj IFVwZGF0ZSBkZWJ1ZyBzZXR0aW5nIG9mIHRpbWVsaW5lCistICAgICAgICAgICAgbG9nLmluZm8o IlNldHRpbmcgZGVidWctbW9kZSB0byAlcyIgJSAoc3RhdGUgPT0gUXQuQ2hlY2tlZCkpCisrICAg ICAgICAgICAgbG9nLmluZm8oIlNldHRpbmcgZGVidWctbW9kZSB0byAlcyIsIHN0YXRlID09IFF0 LkNoZWNrZWQpCisgICAgICAgICAgICAgZGVidWdfZW5hYmxlZCA9IChzdGF0ZSA9PSBRdC5DaGVj a2VkKQorIAorICAgICAgICAgICAgICMgRW5hYmxlIC8gRGlzYWJsZSBsb2dnZXIKK0BAIC01Mjgs NyArNTI4LDkgQEAgZGVmIHRleHRfdmFsdWVfY2hhbmdlZChzZWxmLCB3aWRnZXQsIHBhcmFtLCB2 YWx1ZT1Ob25lKToKKyAgICAgICAgIGlmIHBhcmFtLmdldCgiY2F0ZWdvcnkiKSA9PSAiS2V5Ym9h cmQiOgorICAgICAgICAgICAgIHByZXZpb3VzX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgICB2 YWx1ZSA9IFFLZXlTZXF1ZW5jZSh2YWx1ZSkudG9TdHJpbmcoKQorLSAgICAgICAgICAgIGxvZy5p bmZvKCJQYXJzaW5nIGtleWJvYXJkIG1hcHBpbmcgdmlhIFFLZXlTZXF1ZW5jZSBmcm9tICVzIHRv ICVzIiAlIChwcmV2aW91c192YWx1ZSwgdmFsdWUpKQorKyAgICAgICAgICAgIGxvZy5pbmZvKAor KyAgICAgICAgICAgICAgICAiUGFyc2luZyBrZXlib2FyZCBtYXBwaW5nIHZpYSBRS2V5U2VxdWVu Y2UgZnJvbSAlcyB0byAlcyIsCisrICAgICAgICAgICAgICAgIHByZXZpb3VzX3ZhbHVlLCB2YWx1 ZSkKKyAKKyAgICAgICAgICMgU2F2ZSBzZXR0aW5nCisgICAgICAgICBzZWxmLnMuc2V0KHBhcmFt WyJzZXR0aW5nIl0sIHZhbHVlKQorQEAgLTYwNCwxMSArNjA2LDEzIEBAIGRlZiB0ZXN0SGFyZHdh cmVEZWNvZGUoc2VsZiwgYWxsX2RlY29kZXJzLCBkZWNvZGVyLCBkZWNvZGVyX2NhcmQ9IjAiKToK KyAgICAgICAgICAgICBpZiByZWFkZXIuR2V0RnJhbWUoMCkuQ2hlY2tQaXhlbCgwLCAwLCAyLCAx MzMsIDI1NSwgMjU1LCA1KToKKyAgICAgICAgICAgICAgICAgaXNfc3VwcG9ydGVkID0gVHJ1ZQor ICAgICAgICAgICAgICAgICBzZWxmLmhhcmR3YXJlX3Rlc3RzX2NhcmRzW2RlY29kZXJfY2FyZF0u YXBwZW5kKGludChkZWNvZGVyKSkKKy0gICAgICAgICAgICAgICAgbG9nLmRlYnVnKCJTdWNjZXNz ZnVsIGhhcmR3YXJlIGRlY29kZXIhICVzICglcy0lcykiICUgKGRlY29kZXJfbmFtZSwgZGVjb2Rl ciwgZGVjb2Rlcl9jYXJkKSkKKysgICAgICAgICAgICAgICAgbG9nLmRlYnVnKAorKyAgICAgICAg ICAgICAgICAgICAgIlN1Y2Nlc3NmdWwgaGFyZHdhcmUgZGVjb2RlciEgJXMgKCVzLSVzKSIsCisr ICAgICAgICAgICAgICAgICAgICBkZWNvZGVyX25hbWUsIGRlY29kZXIsIGRlY29kZXJfY2FyZCkK KyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBsb2cuZGVidWcoCisgICAgICAg ICAgICAgICAgICAgICAiQ2hlY2tQaXhlbCBmYWlsZWQgdGVzdGluZyBoYXJkd2FyZSBkZWNvZGlu ZyAoaS5lLiB3cm9uZyBjb2xvciBmb3VuZCk6ICVzICglcy0lcykiLAorLSAgICAgICAgICAgICAg ICAgICAgKGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKSkKKysgICAgICAgICAg ICAgICAgICAgIGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKQorIAorICAgICAg ICAgICAgIHJlYWRlci5DbG9zZSgpCisgICAgICAgICAgICAgY2xpcC5DbG9zZSgpCitAQCAtNjE2 LDcgKzYyMCw3IEBAIGRlZiB0ZXN0SGFyZHdhcmVEZWNvZGUoc2VsZiwgYWxsX2RlY29kZXJzLCBk ZWNvZGVyLCBkZWNvZGVyX2NhcmQ9IjAiKToKKyAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Cisg ICAgICAgICAgICAgbG9nLmRlYnVnKAorICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uIHRyeWlu ZyB0byB0ZXN0IGhhcmR3YXJlIGRlY29kaW5nICh0aGlzIGlzIGV4cGVjdGVkKTogJXMgKCVzLSVz KSIsCistICAgICAgICAgICAgICAgIChkZWNvZGVyX25hbWUsIGRlY29kZXIsIGRlY29kZXJfY2Fy ZCkpCisrICAgICAgICAgICAgICAgIGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJk KQorIAorICAgICAgICAgIyBSZXN1bWUgY3VycmVudCBzZXR0aW5ncworICAgICAgICAgb3BlbnNo b3QuU2V0dGluZ3MuSW5zdGFuY2UoKS5IQVJEV0FSRV9ERUNPREVSID0gY3VycmVudF9kZWNvZGVy CisKK0Zyb20gMWIxNDg5NmQyMDU3ZGY4MGIwYjIwYmEyMmUxMzgwYmE5ZTliZDZlNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJGZVJEIChGcmFuayBEYW5hKSIgPGZlcmRueWNAZ21h aWwuY29tPgorRGF0ZTogVGh1LCA0IE5vdiAyMDIxIDIxOjAxOjM5IC0wNDAwCitTdWJqZWN0OiBb UEFUQ0ggMi82XSBFbmZvcmNlIGludGVnZXIgZnVuY3Rpb24gYXJndW1lbnRzCisKKy0tLQorIHNy Yy93aW5kb3dzL2V4cG9ydC5weSAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCisgc3JjL3dp bmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkgICAgfCAgMzQgKy0KKyBzcmMvd2luZG93 cy9wcm9jZXNzX2VmZmVjdC5weSAgICAgICAgICAgICB8ICAgMiArLQorIHNyYy93aW5kb3dzL3Zp ZGVvX3dpZGdldC5weSAgICAgICAgICAgICAgIHwgNTk2ICsrKysrKysrKysrKysrLS0tLS0tLS0K KyBzcmMvd2luZG93cy92aWV3cy9lZmZlY3RzX2xpc3R2aWV3LnB5ICAgICB8ICAgNyArLQorIHNy Yy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfdHJlZXZpZXcucHkgICAgIHwgICA3ICstCisgc3JjL3dp bmRvd3Mvdmlld3MvZW1vamlzX2xpc3R2aWV3LnB5ICAgICAgfCAgIDcgKy0KKyBzcmMvd2luZG93 cy92aWV3cy9maWxlc19saXN0dmlldy5weSAgICAgICB8ICAgNyArLQorIHNyYy93aW5kb3dzL3Zp ZXdzL2ZpbGVzX3RyZWV2aWV3LnB5ICAgICAgIHwgICA3ICstCisgc3JjL3dpbmRvd3Mvdmlld3Mv cHJvcGVydGllc190YWJsZXZpZXcucHkgfCAgMzggKy0KKyBzcmMvd2luZG93cy92aWV3cy90cmFu c2l0aW9uc19saXN0dmlldy5weSB8ICAgNyArLQorIHNyYy93aW5kb3dzL3ZpZXdzL3RyYW5zaXRp b25zX3RyZWV2aWV3LnB5IHwgICA3ICstCisgc3JjL3dpbmRvd3Mvdmlld3MvdHV0b3JpYWwucHkg ICAgICAgICAgICAgfCAgMTQgKy0KKyAxMyBmaWxlcyBjaGFuZ2VkLCA0NzYgaW5zZXJ0aW9ucygr KSwgMjY1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3MvZXhwb3J0LnB5 IGIvc3JjL3dpbmRvd3MvZXhwb3J0LnB5CitpbmRleCBhNjI0ZWIyZTIuLjY0NjFhZmIyNSAxMDA2 NDQKKy0tLSBhL3NyYy93aW5kb3dzL2V4cG9ydC5weQorKysrIGIvc3JjL3dpbmRvd3MvZXhwb3J0 LnB5CitAQCAtMjkwLDcgKzI5MCw3IEBAIGRlZiB1cGRhdGVQcm9ncmVzc0JhcihzZWxmLCB0aXRs ZV9tZXNzYWdlLCBzdGFydF9mcmFtZSwgZW5kX2ZyYW1lLCBjdXJyZW50X2ZyYW1lCisgICAgICAg ICAgICAgcGVyY2VudGFnZV9zdHJpbmcgPSBmb3JtYXRfb2ZfcHJvZ3Jlc3Nfc3RyaW5nICUgKCgg Y3VycmVudF9mcmFtZSAtIHN0YXJ0X2ZyYW1lICkgLyAoIGVuZF9mcmFtZSAtIHN0YXJ0X2ZyYW1l ICkgKiAxMDApCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHBlcmNlbnRhZ2Vfc3RyaW5n ID0gIjEwMCUiCistICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0VmFsdWUoY3Vy cmVudF9mcmFtZSkKKysgICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRWYWx1ZShp bnQoY3VycmVudF9mcmFtZSkpCisgICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0 Rm9ybWF0KHBlcmNlbnRhZ2Vfc3RyaW5nKQorICAgICAgICAgc2VsZi5zZXRXaW5kb3dUaXRsZSgi JXMgJXMiICUgKHBlcmNlbnRhZ2Vfc3RyaW5nLCB0aXRsZV9tZXNzYWdlKSkKKyAKK0BAIC02OTAs OSArNjkwLDkgQEAgZGVmIHRpdGxlc3RyaW5nKHNlYywgZnBzLCBtZXNzKToKKyAgICAgICAgIGZw c19lbmNvZGUgPSAwCisgCisgICAgICAgICAjIEluaXQgcHJvZ3Jlc3MgYmFyCistICAgICAgICBz ZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0TWluaW11bShzZWxmLnR4dFN0YXJ0RnJhbWUudmFs dWUoKSkKKy0gICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRNYXhpbXVtKHNlbGYu dHh0RW5kRnJhbWUudmFsdWUoKSkKKy0gICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5z ZXRWYWx1ZShzZWxmLnR4dFN0YXJ0RnJhbWUudmFsdWUoKSkKKysgICAgICAgIHNlbGYucHJvZ3Jl c3NFeHBvcnRWaWRlby5zZXRNaW5pbXVtKGludChzZWxmLnR4dFN0YXJ0RnJhbWUudmFsdWUoKSkp CisrICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0TWF4aW11bShpbnQoc2VsZi50 eHRFbmRGcmFtZS52YWx1ZSgpKSkKKysgICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5z ZXRWYWx1ZShpbnQoc2VsZi50eHRTdGFydEZyYW1lLnZhbHVlKCkpKQorIAorICAgICAgICAgIyBQ cm9tcHQgZXJyb3IgbWVzc2FnZQorICAgICAgICAgaWYgc2VsZi50eHRTdGFydEZyYW1lLnZhbHVl KCkgPT0gc2VsZi50eHRFbmRGcmFtZS52YWx1ZSgpOgorZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dz L21vZGVscy9wcm9wZXJ0aWVzX21vZGVsLnB5IGIvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRp ZXNfbW9kZWwucHkKK2luZGV4IGMzMjM2ZWQ4NC4uNDA4OTdmNjQyIDEwMDY0NAorLS0tIGEvc3Jj L3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKKysrKyBiL3NyYy93aW5kb3dzL21v ZGVscy9wcm9wZXJ0aWVzX21vZGVsLnB5CitAQCAtNDE0LDggKzQxNCw4IEBAIGRlZiB2YWx1ZV91 cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9s YXRpb25fZGV0YWlsCisgICAgICAgICAgICAgbmV3X3ZhbHVlID0gTm9uZQorIAorICAgICAgICAg bG9nLmluZm8oCistICAgICAgICAgICAgIiVzIGZvciAlcyBjaGFuZ2VkIHRvICVzIGF0IGZyYW1l ICVzIHdpdGggaW50ZXJwb2xhdGlvbjogJXMgYXQgY2xvc2VzdCB4OiAlcyIKKy0gICAgICAgICAg ICAlIChwcm9wZXJ0eV9rZXksIGNsaXBfaWQsIG5ld192YWx1ZSwgc2VsZi5mcmFtZV9udW1iZXIs IGludGVycG9sYXRpb24sIGNsb3Nlc3RfcG9pbnRfeCkpCisrICAgICAgICAgICAgIiVzIGZvciAl cyBjaGFuZ2VkIHRvICVzIGF0IGZyYW1lICVzIHdpdGggaW50ZXJwb2xhdGlvbjogJXMgYXQgY2xv c2VzdCB4OiAlcyIsCisrICAgICAgICAgICAgcHJvcGVydHlfa2V5LCBjbGlwX2lkLCBuZXdfdmFs dWUsIHNlbGYuZnJhbWVfbnVtYmVyLCBpbnRlcnBvbGF0aW9uLCBjbG9zZXN0X3BvaW50X3gpCisg CisgICAgICAgICAjIEZpbmQgdGhpcyBjbGlwCisgICAgICAgICBjID0gTm9uZQorQEAgLTUxOCwz NSArNTE4LDM1IEBAIGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249 LTEsIHZhbHVlPU5vbmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAgICAgICAgICAgICAg ICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9kYXRhW3Byb3BlcnR5X2tleV0g PSBpbnQobmV3X3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBJbnRlZ2Vy IHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eTogJXMnICUgZXgpCisrICAgICAgICAgICAgICAgICAg ICAgICAgbG9nLndhcm4oJ0ludmFsaWQgSW50ZWdlciB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHkn LCBleGNfaW5mbz0xKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3BlcnR5X3R5cGUgPT0g ImZsb2F0IjoKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAg ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFb cHJvcGVydHlfa2V5XSA9IGZsb2F0KG5ld192YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZXg6CistICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4o J0ludmFsaWQgRmxvYXQgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycgJSBleCkKKysgICAg ICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBGbG9hdCB2YWx1ZSBwYXNzZWQg dG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3Bl cnR5X3R5cGUgPT0gImJvb2wiOgorICAgICAgICAgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0g VHJ1ZQorICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAg IGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldID0gYm9vbChuZXdfdmFsdWUpCisgICAgICAgICAgICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorLSAgICAgICAgICAgICAgICAgICAgICAg IGxvZy53YXJuKCdJbnZhbGlkIEJvb2xlYW4gdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycg JSBleCkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBCb29sZWFu IHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAg ICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9PSAic3RyaW5nIjoKKyAgICAgICAgICAgICAgICAgICAg IGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IHN0cihuZXdfdmFsdWUp CistICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxvZy53YXJuKCdJbnZhbGlkIFN0cmluZyB2YWx1ZSBwYXNzZWQgdG8g cHJvcGVydHk6ICVzJyAlIGV4KQorKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv bjoKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBTdHJpbmcgdmFs dWUgcGFzc2VkIHRvIHByb3BlcnR5JywgZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAgICAgICAg ZWxpZiBwcm9wZXJ0eV90eXBlIGluIFsiZm9udCIsICJjYXB0aW9uIl06CisgICAgICAgICAgICAg ICAgICAgICBjbGlwX3VwZGF0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICB0cnk6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9kYXRhW3Byb3BlcnR5X2tleV0gPSBzdHIobmV3 X3ZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBGb250L0NhcHRpb24gdmFs dWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycgJSBleCkKKysgICAgICAgICAgICAgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb246CisrICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFs aWQgRm9udC9DYXB0aW9uIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZvPTEpCisg CisgICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9PSAicmVhZGVyIjoKKyAgICAg ICAgICAgICAgICAgICAgICMgVHJhbnNpdGlvbgorQEAgLTU1Nyw4ICs1NTcsOCBAQCBkZWYgdmFs dWVfdXBkYXRlZChzZWxmLCBpdGVtLCBpbnRlcnBvbGF0aW9uPS0xLCB2YWx1ZT1Ob25lLCBpbnRl cnBvbGF0aW9uX2RldGFpbAorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9w ZXJ0eV9rZXldID0ganNvbi5sb2FkcyhjbGlwX29iamVjdC5SZWFkZXIoKS5Kc29uKCkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgY2xpcF9vYmplY3QuQ2xvc2UoKQorICAgICAgICAgICAgICAg ICAgICAgICAgIGNsaXBfb2JqZWN0ID0gTm9uZQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52 YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMpJyAlICh2YWx1ZSwg ZXgpKQorKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKysgICAgICAgICAg ICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2VkIHRvIHBy b3BlcnR5OiAlcyAoJXMpJywgdmFsdWUsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgIyBS ZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9v c3QpCisgICAgICAgICAgICAgY2xpcF9kYXRhID0ge3Byb3BlcnR5X2tleTogY2xpcF9kYXRhLmdl dChwcm9wZXJ0eV9rZXkpfQorQEAgLTY4OCw5ICs2ODgsOSBAQCBkZWYgc2V0X3Byb3BlcnR5KHNl bGYsIHByb3BlcnR5LCBmaWx0ZXIsIGMsIGl0ZW1fdHlwZSwgb2JqZWN0X2lkPU5vbmUpOgorIAor ICAgICAgICAgICAgIGlmIHR5cGUgPT0gImNvbG9yIjoKKyAgICAgICAgICAgICAgICAgIyBDb2xv ciBuZWVkcyB0byBiZSBoYW5kbGVkIHNwZWNpYWwKKy0gICAgICAgICAgICAgICAgcmVkID0gcHJv cGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgICAgIGdyZWVuID0gcHJvcGVy dHlbMV1bImdyZWVuIl1bInZhbHVlIl0KKy0gICAgICAgICAgICAgICAgYmx1ZSA9IHByb3BlcnR5 WzFdWyJibHVlIl1bInZhbHVlIl0KKysgICAgICAgICAgICAgICAgcmVkID0gaW50KHByb3BlcnR5 WzFdWyJyZWQiXVsidmFsdWUiXSkKKysgICAgICAgICAgICAgICAgZ3JlZW4gPSBpbnQocHJvcGVy dHlbMV1bImdyZWVuIl1bInZhbHVlIl0pCisrICAgICAgICAgICAgICAgIGJsdWUgPSBpbnQocHJv cGVydHlbMV1bImJsdWUiXVsidmFsdWUiXSkKKyAgICAgICAgICAgICAgICAgY29sLnNldEJhY2tn cm91bmQoUUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUpKQorIAorICAgICAgICAgICAgIGlmIHJlYWRv bmx5IG9yIHR5cGUgaW4gWyJjb2xvciIsICJmb250IiwgImNhcHRpb24iXSBvciBjaG9pY2VzIG9y IGxhYmVsID09ICJUcmFjayI6CitAQCAtNzg5LDkgKzc4OSw5IEBAIGRlZiBzZXRfcHJvcGVydHko c2VsZiwgcHJvcGVydHksIGZpbHRlciwgYywgaXRlbV90eXBlLCBvYmplY3RfaWQ9Tm9uZSk6Cisg CisgICAgICAgICAgICAgaWYgdHlwZSA9PSAiY29sb3IiOgorICAgICAgICAgICAgICAgICAjIFVw ZGF0ZSB0aGUgY29sb3IgYmFzZWQgb24gdGhlIGNvbG9yIGN1cnZlcworLSAgICAgICAgICAgICAg ICByZWQgPSBwcm9wZXJ0eVsxXVsicmVkIl1bInZhbHVlIl0KKy0gICAgICAgICAgICAgICAgZ3Jl ZW4gPSBwcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXQorLSAgICAgICAgICAgICAgICBibHVl ID0gcHJvcGVydHlbMV1bImJsdWUiXVsidmFsdWUiXQorKyAgICAgICAgICAgICAgICByZWQgPSBp bnQocHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdKQorKyAgICAgICAgICAgICAgICBncmVlbiA9 IGludChwcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXSkKKysgICAgICAgICAgICAgICAgYmx1 ZSA9IGludChwcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdKQorICAgICAgICAgICAgICAgICBj b2wuc2V0QmFja2dyb3VuZChRQ29sb3IocmVkLCBncmVlbiwgYmx1ZSkpCisgCisgICAgICAgICAg ICAgIyBVcGRhdGUgaGVscGVyIGRpY3Rpb25hcnkKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy9w cm9jZXNzX2VmZmVjdC5weSBiL3NyYy93aW5kb3dzL3Byb2Nlc3NfZWZmZWN0LnB5CitpbmRleCBl NGYzMTIwYzAuLmVhMGMyOTQ2ZSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3Byb2Nlc3NfZWZm ZWN0LnB5CisrKysgYi9zcmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weQorQEAgLTM1Miw3ICsz NTIsNyBAQCBkZWYgYWNjZXB0KHNlbGYpOgorICAgICAgICAgd2hpbGUobm90IHByb2Nlc3Npbmcu SXNEb25lKCkgKToKKyAgICAgICAgICAgICAjIHVwZGF0ZSBwcm9ncmVzc2JhcgorICAgICAgICAg ICAgIHByb2dyZXNzaW9uU3RhdHVzID0gcHJvY2Vzc2luZy5HZXRQcm9ncmVzcygpCistICAgICAg ICAgICAgc2VsZi5wcm9ncmVzc0Jhci5zZXRWYWx1ZShwcm9ncmVzc2lvblN0YXR1cykKKysgICAg ICAgICAgICBzZWxmLnByb2dyZXNzQmFyLnNldFZhbHVlKGludChwcm9ncmVzc2lvblN0YXR1cykp CisgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQorIAorICAgICAgICAgICAgICMgUHJvY2Vz cyBhbnkgcXVldWVkIGV2ZW50cworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdl dC5weSBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggZDVjODlhMjA0Li5mMzM2 OTZjNWMgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3Ny Yy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorQEAgLTI1LDggKzI1LDExIEBACisgIGFsb25nIHdp dGggT3BlblNob3QgTGlicmFyeS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKyAgIiIiCisgCisraW1wb3J0IGpzb24KKysKKyBmcm9tIFB5UXQ1LlF0Q29yZSBp bXBvcnQgKAorLSAgICBRdCwgUUNvcmVBcHBsaWNhdGlvbiwgUVBvaW50RiwgUVBvaW50LCBRUmVj dCwgUVJlY3RGLCBRU2l6ZSwgUU11dGV4LCBRVGltZXIKKysgICAgUXQsIFFDb3JlQXBwbGljYXRp b24sIFFNdXRleCwgUVRpbWVyLAorKyAgICBRUG9pbnQsIFFQb2ludEYsIFFTaXplLCBRU2l6ZUYs IFFSZWN0LCBRUmVjdEYsCisgKQorIGZyb20gUHlRdDUuUXRHdWkgaW1wb3J0ICgKKyAgICAgUVRy YW5zZm9ybSwgUVBhaW50ZXIsIFFJY29uLCBRQ29sb3IsIFFQZW4sIFFCcnVzaCwgUUN1cnNvciwg UUltYWdlLCBRUmVnaW9uCitAQCAtNDEsOCArNDQsNiBAQAorIGZyb20gY2xhc3Nlcy5hcHAgaW1w b3J0IGdldF9hcHAKKyBmcm9tIGNsYXNzZXMucXVlcnkgaW1wb3J0IENsaXAsIEVmZmVjdAorIAor LWltcG9ydCBqc29uCistCisgCisgY2xhc3MgVmlkZW9XaWRnZXQoUVdpZGdldCwgdXBkYXRlcy5V cGRhdGVJbnRlcmZhY2UpOgorICAgICAiIiIgQSBRV2lkZ2V0IHVzZWQgb24gdGhlIHZpZGVvIGRp c3BsYXkgd2lkZ2V0ICIiIgorQEAgLTg2LDM3ICs4Nyw2OCBAQCBkZWYgY2hhbmdlZChzZWxmLCBh Y3Rpb24pOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkp CisgCisgCistICAgIGRlZiBkcmF3VHJhbnNmb3JtSGFuZGxlcihzZWxmLCBwYWludGVyLCBzeCwg c3ksIHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdodCwgb3JpZ2luX3gsIG9yaWdpbl95LAorLSAg ICAgeDE9Tm9uZSwgeTE9Tm9uZSwgeDI9Tm9uZSwgeTI9Tm9uZSwgcm90YXRpb24gPSBOb25lKToK KysgICAgZGVmIGRyYXdUcmFuc2Zvcm1IYW5kbGVyKAorKyAgICAgICAgc2VsZiwgcGFpbnRlciwg c3gsIHN5LCBzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQsCisrICAgICAgICBvcmlnaW5feCwg b3JpZ2luX3ksCisrICAgICAgICB4MT1Ob25lLCB5MT1Ob25lLCB4Mj1Ob25lLCB5Mj1Ob25lLCBy b3RhdGlvbiA9IE5vbmUKKysgICAgKToKKyAgICAgICAgICMgRHJhdyB0cmFuc2Zvcm0gY29ybmVy cyBhbmQgY2VudGVyIG9yaWdpbiBjaXJjbGUKKyAgICAgICAgICMgQ29ybmVyIHNpemUKKyAgICAg ICAgIGNzID0gc2VsZi5jcworICAgICAgICAgb3MgPSAxMi4wCisgCisrICAgICAgICBjc3ggPSBj cyAvIHN4CisrICAgICAgICBjc3kgPSBjcyAvIHN5CisrCisgICAgICAgICAjIFJvdGF0ZSB0aGUg dHJhbnNmb3JtIGhhbmRsZXIKKyAgICAgICAgIGlmIHJvdGF0aW9uOgorLSAgICAgICAgICAgIGJi b3hfY2VudGVyX3ggPSAoKCh4MSpzb3VyY2Vfd2lkdGggKyB4Mipzb3VyY2Vfd2lkdGgpIC8gMi4w KSApIC0gKCAob3MvMikgL3N4KQorLSAgICAgICAgICAgIGJib3hfY2VudGVyX3kgPSAoKCh5MSpz b3VyY2VfaGVpZ2h0ICsgeTIqc291cmNlX2hlaWdodCkgLyAyLjApICkgLSAoIChvcy8yKSAvc3kp CisrICAgICAgICAgICAgYmJveF9jZW50ZXJfeCA9ICgoeDEqc291cmNlX3dpZHRoICsgeDIqc291 cmNlX3dpZHRoKSAvIDIuMCkgLSAoKG9zIC8gMikgLyBzeCkKKysgICAgICAgICAgICBiYm94X2Nl bnRlcl95ID0gKCh5MSpzb3VyY2VfaGVpZ2h0ICsgeTIqc291cmNlX2hlaWdodCkgLyAyLjApIC0g KChvcyAvIDIpIC8gc3kpCisgICAgICAgICAgICAgcGFpbnRlci50cmFuc2xhdGUoYmJveF9jZW50 ZXJfeCwgYmJveF9jZW50ZXJfeSkKKyAgICAgICAgICAgICBwYWludGVyLnJvdGF0ZShyb3RhdGlv bikKKyAgICAgICAgICAgICBwYWludGVyLnRyYW5zbGF0ZSgtYmJveF9jZW50ZXJfeCwgLWJib3hf Y2VudGVyX3kpCisgCistICAgICAgICBpZih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAg ICAgICBpZiBhbGwoW3gxLCB5MSwgeDIsIHkyXSk6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUg Ym91bmRzIG9mIGNsaXAKKy0gICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMgPSBRUmVjdEYoUVBv aW50Rih4MSpzb3VyY2Vfd2lkdGgsIHkxKnNvdXJjZV9oZWlnaHQpLCBRUG9pbnRGKHgyKnNvdXJj ZV93aWR0aCwgeTIqc291cmNlX2hlaWdodCkpCisrICAgICAgICAgICAgc2VsZi5jbGlwQm91bmRz ID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBRUG9pbnRGKHgxICogc291cmNlX3dpZHRoLCB5 MSAqIHNvdXJjZV9oZWlnaHQpLAorKyAgICAgICAgICAgICAgICBRUG9pbnRGKHgyICogc291cmNl X3dpZHRoLCB5MiAqIHNvdXJjZV9oZWlnaHQpCisrICAgICAgICAgICAgKQorICAgICAgICAgICAg ICMgQ2FsY3VsYXRlIDQgY29ybmVycyBjb29yZGluYXRlcworLSAgICAgICAgICAgIHNlbGYudG9w TGVmdEhhbmRsZSA9IFFSZWN0Rih4MSpzb3VyY2Vfd2lkdGggLShjcy9zeC8yLjApLCB5MSpzb3Vy Y2VfaGVpZ2h0LShjcy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi50 b3BSaWdodEhhbmRsZSA9IFFSZWN0Rih4Mipzb3VyY2Vfd2lkdGgtKGNzL3N4LzIuMCksIHkxKnNv dXJjZV9oZWlnaHQtKGNzL3N5LzIuMCksIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxm LmJvdHRvbUxlZnRIYW5kbGUgPSBRUmVjdEYoeDEqc291cmNlX3dpZHRoIC0oY3Mvc3gvMi4wKSwg eTIqc291cmNlX2hlaWdodC0oY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAg IHNlbGYuYm90dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoeDIqc291cmNlX3dpZHRoLShjcy9zeC8y LjApLCB5Mipzb3VyY2VfaGVpZ2h0LShjcy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCisrICAgICAg ICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICB4MSAq IHNvdXJjZV93aWR0aCAtIChjc3ggLyAyLjApLAorKyAgICAgICAgICAgICAgICB5MSAqIHNvdXJj ZV9oZWlnaHQgLSAoY3N5IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgY3N4LAorKyAgICAgICAg ICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZSA9IFFSZWN0RigK KysgICAgICAgICAgICAgICAgeDIgKiBzb3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4wKSwKKysgICAg ICAgICAgICAgICAgeTEgKiBzb3VyY2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAgICAg ICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90 dG9tTGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgeDEgKiBzb3VyY2Vfd2lk dGggLSAoY3N4IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgeTIgKiBzb3VyY2VfaGVpZ2h0IC0g KGNzeSAvIDIuMCksCisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5 KQorKyAgICAgICAgICAgIHNlbGYuYm90dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoCisrICAgICAg ICAgICAgICAgIHgyICogc291cmNlX3dpZHRoIC0gKGNzeCAvIDIuMCksCisrICAgICAgICAgICAg ICAgIHkyICogc291cmNlX2hlaWdodCAtIChjc3kgLyAyLjApLAorKyAgICAgICAgICAgICAgICBj c3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg IyBDYWxjdWxhdGUgYm91bmRzIG9mIGNsaXAKKy0gICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMg PSBRUmVjdEYoUVBvaW50RigwLjAsIDAuMCksIFFQb2ludEYoc291cmNlX3dpZHRoLCBzb3VyY2Vf aGVpZ2h0KSkKKysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMgPSBRUmVjdEYoCisrICAgICAg ICAgICAgICAgIFFQb2ludEYoMC4wLCAwLjApLAorKyAgICAgICAgICAgICAgICBRUG9pbnRGKHNv dXJjZV93aWR0aCwgc291cmNlX2hlaWdodCkpCisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBj b3JuZXJzIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJl Y3RGKC1jcy9zeC8yLjAsIC1jcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBz ZWxmLnRvcFJpZ2h0SGFuZGxlID0gUVJlY3RGKHNvdXJjZV93aWR0aCAtIChjcy9zeCkgKyBjcy9z eC8yLjAsIC1jcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLmJvdHRv bUxlZnRIYW5kbGUgPSBRUmVjdEYoLWNzL3N4LzIuMCwgc291cmNlX2hlaWdodCAtIChjcy9zeSkg KyBjcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxmLmJvdHRvbVJpZ2h0 SGFuZGxlID0gUVJlY3RGKHNvdXJjZV93aWR0aCAtIChjcy9zeCkgKyBjcy9zeC8yLjAsIHNvdXJj ZV9oZWlnaHQgLSAoY3Mvc3kpICsgY3Mvc3kvMi4wLCBjcy9zeCwgY3Mvc3kpCisrICAgICAgICAg ICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAtY3N4IC8g Mi4wLCAtY3N5IC8gMi4wLCBjc3gsIGNzeSkKKysgICAgICAgICAgICBzZWxmLnRvcFJpZ2h0SGFu ZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBzb3VyY2Vfd2lkdGggLSBjc3ggLyAyLjAs IC1jc3kgLyAyLjAsIGNzeCwgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90dG9tTGVmdEhhbmRs ZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgLWNzeCAvIDIuMCwgc291cmNlX2hlaWdodCAt IGNzeSAvIDIuMCwgY3N4LCBjc3kpCisrICAgICAgICAgICAgc2VsZi5ib3R0b21SaWdodEhhbmRs ZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgc291cmNlX3dpZHRoIC0gY3N4IC8gMi4wLCBz b3VyY2VfaGVpZ2h0IC0gY3N5IC8gMi4wLCBjc3gsIGNzeSkKKyAKKyAgICAgICAgICMgRHJhdyA0 IGNvcm5lcnMKKyAgICAgICAgIHBlbiA9IFFQZW4oUUJydXNoKFFDb2xvcigiIzUzYTBlZCIpKSwg MS41KQorQEAgLTEyNyw0NyArMTU5LDExMCBAQCBkZWYgZHJhd1RyYW5zZm9ybUhhbmRsZXIoc2Vs ZiwgcGFpbnRlciwgc3gsIHN5LCBzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQsIG9yaQorICAg ICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLmJvdHRvbUxlZnRIYW5kbGUpCisgICAgICAgICBw YWludGVyLmRyYXdSZWN0KHNlbGYuYm90dG9tUmlnaHRIYW5kbGUpCisgCistICAgICAgICBpZih4 MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIsIHky XSk6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBzaWRlIGNvb3JkaW5hdGVzCistICAgICAg ICAgICAgc2VsZi50b3BIYW5kbGUgPSBRUmVjdEYoKCh4MSpzb3VyY2Vfd2lkdGgreDIqc291cmNl X3dpZHRoKSAvIDIuMCkgLSAoY3Mvc3gvMi4wKSwgKHkxKnNvdXJjZV9oZWlnaHQpLWNzL3N5LzIu MCwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYuYm90dG9tSGFuZGxlID0gUVJlY3RG KCgoeDEqc291cmNlX3dpZHRoK3gyKnNvdXJjZV93aWR0aCkgLyAyLjApIC0gKGNzL3N4LzIuMCks ICh5Mipzb3VyY2VfaGVpZ2h0KS0oIGNzL3N5LzIuMCksIGNzL3N4LCBjcy9zeSkKKy0gICAgICAg ICAgICBzZWxmLmxlZnRIYW5kbGUgPSBRUmVjdEYoKHgxKnNvdXJjZV93aWR0aCktKGNzL3N4LzIu MCksICgoeTEqc291cmNlX2hlaWdodCt5Mipzb3VyY2VfaGVpZ2h0KSAvIDIuMCkgLSAoY3Mvc3kv Mi4wKSwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYucmlnaHRIYW5kbGUgPSBRUmVj dEYoKHgyKnNvdXJjZV93aWR0aCkgLSAoY3Mvc3gpICsgY3Mvc3gvMi4wLCAoKHkxKnNvdXJjZV9o ZWlnaHQreTIqc291cmNlX2hlaWdodCkgLyAyLjApIC0gKGNzL3N5LzIuMCksIGNzL3N4LCBjcy9z eSkKKysgICAgICAgICAgICBzZWxmLnRvcEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAg ICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAtIGNzeCkgLyAyLjAsCisrICAgICAgICAgICAg ICAgICh5MSAqIHNvdXJjZV9oZWlnaHQpIC0gY3N5IC8gMi4wLAorKyAgICAgICAgICAgICAgICBj c3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUhhbmRs ZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAt IGNzeCkgLyAyLjAsCisrICAgICAgICAgICAgICAgICh5MiAqIHNvdXJjZV9oZWlnaHQpIC0gY3N5 IC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysg ICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgICh4 MSAqIHNvdXJjZV93aWR0aCkgLSBjc3ggLyAyLjAsCisrICAgICAgICAgICAgICAgICgoeTEgKyB5 MikgKiBzb3VyY2VfaGVpZ2h0IC0gY3N5KSAvIDIuMCwKKysgICAgICAgICAgICAgICAgY3N4LAor KyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSA9IFFS ZWN0RigKKysgICAgICAgICAgICAgICAgKHgyICogc291cmNlX3dpZHRoKSAtIGNzeCAvIDIuMCwK KysgICAgICAgICAgICAgICAgKCh5MSArIHkyKSAqIHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4w LAorKyAgICAgICAgICAgICAgICBjc3gsIGNzeSkKKyAKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgIyBDYWxjdWxhdGUgNCBzaWRlIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgc2VsZi50 b3BIYW5kbGUgPSBRUmVjdEYoKHNvdXJjZV93aWR0aCAvIDIuMCkgLSAoY3Mvc3gvMi4wKSwgLWNz L3N5LzIuMCwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYuYm90dG9tSGFuZGxlID0g UVJlY3RGKChzb3VyY2Vfd2lkdGggLyAyLjApIC0gKGNzL3N4LzIuMCksIHNvdXJjZV9oZWlnaHQg LSAoY3Mvc3kpICsgY3Mvc3kvMi4wLCBjcy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi5s ZWZ0SGFuZGxlID0gUVJlY3RGKC1jcy9zeC8yLjAsIChzb3VyY2VfaGVpZ2h0IC8gMi4wKSAtIChj cy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSA9 IFFSZWN0Rihzb3VyY2Vfd2lkdGggLSAoY3Mvc3gpICsgY3Mvc3gvMi4wLCAoc291cmNlX2hlaWdo dCAvIDIuMCkgLSAoY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQorKyAgICAgICAgICAgIHNlbGYu dG9wSGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAoc291cmNlX3dpZHRoIC0gY3N4 KSAvIDIuMCwKKysgICAgICAgICAgICAgICAgLWNzeSAvIDIuMCwKKysgICAgICAgICAgICAgICAg Y3N4LAorKyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2VsZi5ib3R0b21IYW5k bGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgIChzb3VyY2Vfd2lkdGggLSBjc3gpIC8gMi4w LAorKyAgICAgICAgICAgICAgICBzb3VyY2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAg ICAgICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYu bGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgLWNzeCAvIDIuMCwKKysgICAg ICAgICAgICAgICAgKHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4wLAorKyAgICAgICAgICAgICAg ICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysgICAgICAgICAgICBzZWxmLnJpZ2h0SGFu ZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBzb3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4w KSwKKysgICAgICAgICAgICAgICAgKHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4wLAorKyAgICAg ICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKyAKKyAgICAgICAgICMgQ2Fs Y3VsYXRlIHNoZWFyIGhhbmRsZXMKKy0gICAgICAgIHNlbGYudG9wU2hlYXJIYW5kbGUgPSBRUmVj dEYoc2VsZi50b3BMZWZ0SGFuZGxlLngoKSwgc2VsZi50b3BMZWZ0SGFuZGxlLnkoKSwgc2VsZi5j bGlwQm91bmRzLndpZHRoKCksIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKy0gICAgICAg IHNlbGYubGVmdFNoZWFySGFuZGxlID0gUVJlY3RGKHNlbGYudG9wTGVmdEhhbmRsZS54KCksIHNl bGYudG9wTGVmdEhhbmRsZS55KCksIHNlbGYudG9wTGVmdEhhbmRsZS53aWR0aCgpLCBzZWxmLmNs aXBCb3VuZHMuaGVpZ2h0KCkpCistICAgICAgICBzZWxmLnJpZ2h0U2hlYXJIYW5kbGUgPSBRUmVj dEYoc2VsZi50b3BSaWdodEhhbmRsZS54KCksIHNlbGYudG9wUmlnaHRIYW5kbGUueSgpLCBzZWxm LnRvcFJpZ2h0SGFuZGxlLndpZHRoKCksIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSkKKy0gICAg ICAgIHNlbGYuYm90dG9tU2hlYXJIYW5kbGUgPSBRUmVjdEYoc2VsZi5ib3R0b21MZWZ0SGFuZGxl LngoKSwgc2VsZi5ib3R0b21MZWZ0SGFuZGxlLnkoKSwgc2VsZi5jbGlwQm91bmRzLndpZHRoKCks IHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYudG9wU2hlYXJIYW5k bGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlLngoKSwKKysgICAg ICAgICAgICBzZWxmLnRvcExlZnRIYW5kbGUueSgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkK KysgICAgICAgIHNlbGYubGVmdFNoZWFySGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgIHNl bGYudG9wTGVmdEhhbmRsZS54KCksCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlLnko KSwKKysgICAgICAgICAgICBzZWxmLnRvcExlZnRIYW5kbGUud2lkdGgoKSwKKysgICAgICAgICAg ICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpCisrICAgICAgICBzZWxmLnJpZ2h0U2hlYXJIYW5k bGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZS54KCksCisrICAg ICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZS55KCksCisrICAgICAgICAgICAgc2VsZi50b3BS aWdodEhhbmRsZS53aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQo KSkKKysgICAgICAgIHNlbGYuYm90dG9tU2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAg ICAgc2VsZi5ib3R0b21MZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUxl ZnRIYW5kbGUueSgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpLAorKyAg ICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKyAKKyAgICAgICAgICMgRHJh dyA0IHNpZGVzIChjZW50ZXJlZCkKKy0gICAgICAgIHBhaW50ZXIuZHJhd1JlY3Qoc2VsZi50b3BI YW5kbGUpCistICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYuYm90dG9tSGFuZGxlKQorLSAg ICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLmxlZnRIYW5kbGUpCistICAgICAgICBwYWludGVy LmRyYXdSZWN0KHNlbGYucmlnaHRIYW5kbGUpCistICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNl bGYuY2xpcEJvdW5kcykKKysgICAgICAgIHBhaW50ZXIuZHJhd1JlY3RzKFsKKysgICAgICAgICAg ICBzZWxmLnRvcEhhbmRsZSwKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUhhbmRsZSwKKysgICAg ICAgICAgICBzZWxmLmxlZnRIYW5kbGUsCisrICAgICAgICAgICAgc2VsZi5yaWdodEhhbmRsZSwK KysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMsCisrICAgICAgICAgICAgXSkKKyAKKyAgICAg ICAgICMgQ2FsY3VsYXRlIGNlbnRlciBjb29yZGluYXRlCistICAgICAgICBpZih4MSBhbmQgeTEg YW5kIHgyIGFuZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIsIHkyXSk6CisgICAg ICAgICAgICAgY3MgPSA1LjAKKyAgICAgICAgICAgICBvcyA9IDcuMAorLSAgICAgICAgICAgIHNl bGYuY2VudGVySGFuZGxlID0gUVJlY3RGKCAoKCh4MSpzb3VyY2Vfd2lkdGgreDIqc291cmNlX3dp ZHRoKSAvIDIuMCkgKSAtIChvcy9zeCksICgoKHkxKnNvdXJjZV9oZWlnaHQreTIqc291cmNlX2hl aWdodCkgLyAyLjApICkgLSAob3Mvc3kpLCBvcy9zeCoyLjAsIG9zL3N5KjIuMCkKKysgICAgICAg ICAgICBzZWxmLmNlbnRlckhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKCh4MSAr IHgyKSAqIHNvdXJjZV93aWR0aCAvIDIuMCkgLSAob3MgLyBzeCksCisrICAgICAgICAgICAgICAg ICgoeTEgKyB5MikgKiBzb3VyY2VfaGVpZ2h0IC8gMi4wKSAtIChvcyAvIHN5KSwKKysgICAgICAg ICAgICAgICAgb3MgLyBzeCAqIDIuMCwKKysgICAgICAgICAgICAgICAgb3MgLyBzeSAqIDIuMAor KyAgICAgICAgICAgICkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgc2VsZi5jZW50ZXJI YW5kbGUgPSBRUmVjdEYoKHNvdXJjZV93aWR0aCAqIG9yaWdpbl94KSAtIChvcy9zeCksIChzb3Vy Y2VfaGVpZ2h0ICogb3JpZ2luX3kpIC0gKG9zL3N5KSwgb3Mvc3gqMi4wLCBvcy9zeSoyLjApCisr ICAgICAgICAgICAgc2VsZi5jZW50ZXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAg IHNvdXJjZV93aWR0aCAqIG9yaWdpbl94IC0gKG9zIC8gc3gpLAorKyAgICAgICAgICAgICAgICBz b3VyY2VfaGVpZ2h0ICogb3JpZ2luX3kgLSAob3MgLyBzeSksCisrICAgICAgICAgICAgICAgIG9z IC8gc3ggKiAyLjAsCisrICAgICAgICAgICAgICAgIG9zIC8gc3kgKiAyLjApCisgCisgICAgICAg ICAjIERyYXcgb3JpZ2luCisgICAgICAgICBwYWludGVyLmRyYXdFbGxpcHNlKHNlbGYuY2VudGVy SGFuZGxlKQorLSAgICAgICAgcGFpbnRlci5kcmF3TGluZShzZWxmLmNlbnRlckhhbmRsZS54KCkg KyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApLCBzZWxmLmNlbnRlckhhbmRsZS55KCkg KyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSAtIHNlbGYuY2VudGVySGFuZGxlLmhl aWdodCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNlbnRlckhhbmRsZS54 KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApLCBzZWxmLmNlbnRlckhhbmRsZS55 KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSArIHNlbGYuY2VudGVySGFuZGxl LmhlaWdodCgpKQorLSAgICAgICAgcGFpbnRlci5kcmF3TGluZShzZWxmLmNlbnRlckhhbmRsZS54 KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApIC0gc2VsZi5jZW50ZXJIYW5kbGUu d2lkdGgoKSwgc2VsZi5jZW50ZXJIYW5kbGUueSgpICsgKHNlbGYuY2VudGVySGFuZGxlLmhlaWdo dCgpLzIuMCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2VudGVySGFuZGxl LngoKSArIChzZWxmLmNlbnRlckhhbmRsZS53aWR0aCgpLzIuMCkgKyBzZWxmLmNlbnRlckhhbmRs ZS53aWR0aCgpLCBzZWxmLmNlbnRlckhhbmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVp Z2h0KCkvMi4wKSkKKysKKysgICAgICAgICMgRHJhdyBjcm9zcyBhdCBvcmlnaW4gY2VudGVyLCBl eHRlbmRpbmcgYmV5b25kIGVsbGlwc2UgYnkgMjUlCisrICAgICAgICBjZW50ZXIgPSBzZWxmLmNl bnRlckhhbmRsZS5jZW50ZXIoKQorKyAgICAgICAgaGFsZlcgPSBRUG9pbnRGKHNlbGYuY2VudGVy SGFuZGxlLndpZHRoKCkgKiAwLjc1LCAwKQorKyAgICAgICAgaGFsZkggPSBRUG9pbnRGKDAsIHNl bGYuY2VudGVySGFuZGxlLmhlaWdodCgpICogMC43NSkKKysgICAgICAgIHBhaW50ZXIuZHJhd0xp bmVzKAorKyAgICAgICAgICAgIGNlbnRlciAtIGhhbGZXLCBjZW50ZXIgKyBoYWxmVywKKysgICAg ICAgICAgICBjZW50ZXIgLSBoYWxmSCwgY2VudGVyICsgaGFsZkgsCisrICAgICAgICApCisgCisg ICAgICAgICAjIFJlbW92ZSB0cmFuc2Zvcm0KKyAgICAgICAgIHBhaW50ZXIucmVzZXRUcmFuc2Zv cm0oKQorQEAgLTE3OSw3ICsyNzQsMTEgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICph cmdzKToKKyAKKyAgICAgICAgICMgUGFpbnQgY3VzdG9tIGZyYW1lIGltYWdlIG9uIFFXaWRnZXQK KyAgICAgICAgIHBhaW50ZXIgPSBRUGFpbnRlcihzZWxmKQorLSAgICAgICAgcGFpbnRlci5zZXRS ZW5kZXJIaW50cyhRUGFpbnRlci5BbnRpYWxpYXNpbmcgfCBRUGFpbnRlci5TbW9vdGhQaXhtYXBU cmFuc2Zvcm0gfCBRUGFpbnRlci5UZXh0QW50aWFsaWFzaW5nLCBUcnVlKQorKyAgICAgICAgcGFp bnRlci5zZXRSZW5kZXJIaW50cygKKysgICAgICAgICAgICBRUGFpbnRlci5BbnRpYWxpYXNpbmcK KysgICAgICAgICAgICB8IFFQYWludGVyLlNtb290aFBpeG1hcFRyYW5zZm9ybQorKyAgICAgICAg ICAgIHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywKKysgICAgICAgICAgICBUcnVlKQorIAor ICAgICAgICAgIyBGaWxsIHRoZSB3aG9sZSB3aWRnZXQgd2l0aCB0aGUgc29saWQgY29sb3IKKyAg ICAgICAgIHBhaW50ZXIuZmlsbFJlY3QoZXZlbnQucmVjdCgpLCBRQ29sb3IoIiMxOTE5MTkiKSkK K0BAIC0xOTEsNyArMjkwLDcgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToK KyAgICAgICAgICAgICAjIERSQVcgRlJBTUUKKyAgICAgICAgICAgICAjIENhbGN1bGF0ZSBuZXcg ZnJhbWUgaW1hZ2Ugc2l6ZSwgbWFpbnRhaW5pbmcgYXNwZWN0IHJhdGlvCisgICAgICAgICAgICAg cGl4U2l6ZSA9IHNlbGYuY3VycmVudF9pbWFnZS5zaXplKCkKKy0gICAgICAgICAgICBwaXhTaXpl LnNjYWxlKGV2ZW50LnJlY3QoKS53aWR0aCgpLCBldmVudC5yZWN0KCkuaGVpZ2h0KCksIFF0Lktl ZXBBc3BlY3RSYXRpbykKKysgICAgICAgICAgICBwaXhTaXplLnNjYWxlKGV2ZW50LnJlY3QoKS5z aXplKCksIFF0LktlZXBBc3BlY3RSYXRpbykKKyAgICAgICAgICAgICBzZWxmLmN1cnJfZnJhbWVf c2l6ZSA9IHBpeFNpemUKKyAKKyAgICAgICAgICAgICAjIFNjYWxlIGltYWdlICh0YWtlIGludG8g YWNjb3VudCBkaXNwbGF5IHNjYWxpbmcgZm9yIEhpZ2ggRFBJIG1vbml0b3JzKQorQEAgLTIyMywx MyArMzIyLDE5IEBAIGRlZiBwYWludEV2ZW50KHNlbGYsIGV2ZW50LCAqYXJncyk6CisgICAgICAg ICAgICAgIyBEZXRlcm1pbmUgb3JpZ2luYWwgc2l6ZSBvZiBjbGlwJ3MgcmVhZGVyCisgICAgICAg ICAgICAgc291cmNlX3dpZHRoID0gc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5kYXRhWydyZWFkZXIn XVsnd2lkdGgnXQorICAgICAgICAgICAgIHNvdXJjZV9oZWlnaHQgPSBzZWxmLnRyYW5zZm9ybWlu Z19jbGlwLmRhdGFbJ3JlYWRlciddWydoZWlnaHQnXQorLSAgICAgICAgICAgIHNvdXJjZV9zaXpl ID0gUVNpemUoc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0ICogc2VsZi5waXhlbF9yYXRpby5S ZWNpcHJvY2FsKCkuVG9Eb3VibGUoKSkKKysgICAgICAgICAgICBwaXhlbF9hZGp1c3QgPSBzZWxm LnBpeGVsX3JhdGlvLlJlY2lwcm9jYWwoKS5Ub0RvdWJsZSgpCisrICAgICAgICAgICAgc291cmNl X3NpemUgPSBRU2l6ZSgKKysgICAgICAgICAgICAgICAgaW50KHNvdXJjZV93aWR0aCksCisrICAg ICAgICAgICAgICAgIGludChzb3VyY2VfaGVpZ2h0ICogcGl4ZWxfYWRqdXN0KSkKKyAKKyAgICAg ICAgICAgICAjIERldGVybWluZSBzY2FsZSBvZiBjbGlwCisgICAgICAgICAgICAgc2NhbGUgPSBz ZWxmLnRyYW5zZm9ybWluZ19jbGlwLmRhdGFbJ3NjYWxlJ10KKyAKKyAgICAgICAgICAgICAjIFNl dCBzY2FsZSBhcyBTVFJFVENIIGlmIHRoZSBjbGlwIGlzIGF0dGFjaGVkIHRvIGFuIG9iamVjdAor LSAgICAgICAgICAgIGlmIChyYXdfcHJvcGVydGllcy5nZXQoJ3BhcmVudE9iamVjdElkJykuZ2V0 KCdtZW1vJykgIT0gJ05vbmUnIGFuZCBsZW4ocmF3X3Byb3BlcnRpZXMuZ2V0KCdwYXJlbnRPYmpl Y3RJZCcpLmdldCgnbWVtbycpKSA+IDAgKToKKysgICAgICAgICAgICBpZiAoCisrICAgICAgICAg ICAgICAgICAgICByYXdfcHJvcGVydGllcy5nZXQoJ3BhcmVudE9iamVjdElkJykuZ2V0KCdtZW1v JykgIT0gJ05vbmUnCisrICAgICAgICAgICAgICAgICAgICBhbmQgbGVuKHJhd19wcm9wZXJ0aWVz LmdldCgncGFyZW50T2JqZWN0SWQnKS5nZXQoJ21lbW8nKSkgPiAwCisrICAgICAgICAgICAgKToK KyAgICAgICAgICAgICAgICAgc2NhbGUgPSBvcGVuc2hvdC5TQ0FMRV9TVFJFVENICisgCisgICAg ICAgICAgICAgaWYgc2NhbGUgPT0gb3BlbnNob3QuU0NBTEVfRklUOgorQEAgLTIzOSwxMiArMzQ0 LDcgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAgICAgICAgICAgICAg ICAgc291cmNlX3NpemUuc2NhbGUocGxheWVyX3dpZHRoLCBwbGF5ZXJfaGVpZ2h0LCBRdC5JZ25v cmVBc3BlY3RSYXRpbykKKyAKKyAgICAgICAgICAgICBlbGlmIHNjYWxlID09IG9wZW5zaG90LlND QUxFX0NST1A6CistICAgICAgICAgICAgICAgIHdpZHRoX3NpemUgPSBRU2l6ZShwbGF5ZXJfd2lk dGgsIHJvdW5kKHBsYXllcl93aWR0aCAvIChmbG9hdChzb3VyY2Vfd2lkdGgpIC8gZmxvYXQoc291 cmNlX2hlaWdodCkpKSkKKy0gICAgICAgICAgICAgICAgaGVpZ2h0X3NpemUgPSBRU2l6ZShyb3Vu ZChwbGF5ZXJfaGVpZ2h0IC8gKGZsb2F0KHNvdXJjZV9oZWlnaHQpIC8gZmxvYXQoc291cmNlX3dp ZHRoKSkpLCBwbGF5ZXJfaGVpZ2h0KQorLSAgICAgICAgICAgICAgICBpZiB3aWR0aF9zaXplLndp ZHRoKCkgPj0gcGxheWVyX3dpZHRoIGFuZCB3aWR0aF9zaXplLmhlaWdodCgpID49IHBsYXllcl9o ZWlnaHQ6CistICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc2l6ZS5zY2FsZSh3aWR0aF9zaXpl LndpZHRoKCksIHdpZHRoX3NpemUuaGVpZ2h0KCksIFF0LktlZXBBc3BlY3RSYXRpbykKKy0gICAg ICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zaXplLnNjYWxl KGhlaWdodF9zaXplLndpZHRoKCksIGhlaWdodF9zaXplLmhlaWdodCgpLCBRdC5LZWVwQXNwZWN0 UmF0aW8pCisrICAgICAgICAgICAgICAgIHNvdXJjZV9zaXplLnNjYWxlKHBsYXllcl93aWR0aCwg cGxheWVyX2hlaWdodCwgUXQuS2VlcEFzcGVjdFJhdGlvQnlFeHBhbmRpbmcpCisgCisgICAgICAg ICAgICAgIyBHZXQgbmV3IHNvdXJjZSB3aWR0aCAvIGhlaWdodCAoYWZ0ZXIgc2NhbGluZyBtb2Rl IGFwcGxpZWQpCisgICAgICAgICAgICAgc291cmNlX3dpZHRoID0gc291cmNlX3NpemUud2lkdGgo KQorQEAgLTI4NSw5ICszODUsNiBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3Mp OgorICAgICAgICAgICAgICAgICB4ICs9IHBsYXllcl93aWR0aCAtIHNjYWxlZF9zb3VyY2Vfd2lk dGggICMgcmlnaHQKKyAgICAgICAgICAgICAgICAgeSArPSAocGxheWVyX2hlaWdodCAtIHNjYWxl ZF9zb3VyY2VfaGVpZ2h0KSAgIyBib3R0b20KKyAKKy0gICAgICAgICAgICAjIFRyYWNrIGdyYXZp dHkgc3RhcnRpbmcgY29vcmRpbmF0ZQorLSAgICAgICAgICAgIHNlbGYuZ3Jhdml0eV9wb2ludCA9 IFFQb2ludEYoeCwgeSkKKy0KKyAgICAgICAgICAgICAjIEFkanVzdCB4LHkgZm9yIGxvY2F0aW9u CisgICAgICAgICAgICAgeF9vZmZzZXQgPSByYXdfcHJvcGVydGllcy5nZXQoJ2xvY2F0aW9uX3gn KS5nZXQoJ3ZhbHVlJykKKyAgICAgICAgICAgICB5X29mZnNldCA9IHJhd19wcm9wZXJ0aWVzLmdl dCgnbG9jYXRpb25feScpLmdldCgndmFsdWUnKQorQEAgLTMyOSw3ICs0MjYsNiBAQCBkZWYgcGFp bnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICAgICAgcmF3X3By b3BlcnRpZXNfZWZmZWN0ID0ganNvbi5sb2FkcyhzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3Rfb2Jq ZWN0LlByb3BlcnRpZXNKU09OKGNsaXBfZnJhbWVfbnVtYmVyKSkKKyAgICAgICAgICAgICAgICAg ICAgICMgR2V0IHByb3BlcnRpZXMgZm9yIHRoZSBmaXJzdCBvYmplY3QgaW4gZGljdC4gUHJvcGVy dGllc0pTT04gc2hvdWxkIHJldHVybiBvbmUgb2JqZWN0IGF0IHRoZSB0aW1lCisgICAgICAgICAg ICAgICAgICAgICB0bXAgPSByYXdfcHJvcGVydGllc19lZmZlY3QuZ2V0KCdvYmplY3RzJykKKy0g ICAgICAgICAgICAgICAgICAgIHRtcDIgPSB0bXAua2V5cygpCisgICAgICAgICAgICAgICAgICAg ICBvYmpfaWQgPSBsaXN0KHRtcC5rZXlzKCkpWzBdCisgICAgICAgICAgICAgICAgICAgICByYXdf cHJvcGVydGllc19lZmZlY3QgPSByYXdfcHJvcGVydGllc19lZmZlY3QuZ2V0KCdvYmplY3RzJyku Z2V0KG9ial9pZCkKKyAKK0BAIC0zNDIsMTAgKzQzOCwxOSBAQCBkZWYgcGFpbnRFdmVudChzZWxm LCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MSA9IHJhd19w cm9wZXJ0aWVzX2VmZmVjdFsneTEnXVsndmFsdWUnXQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4MiA9IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneDInXVsndmFsdWUnXQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB5MiA9IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneTInXVsndmFs dWUnXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRyYXdUcmFuc2Zvcm1IYW5k bGVyKHBhaW50ZXIsIHN4LCBzeSwgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LCBvcmlnaW5f eCwgb3JpZ2luX3ksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MSwgeTEsIHgy LCB5Miwgcm90YXRpb24pCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZHJhd1Ry YW5zZm9ybUhhbmRsZXIoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWludGVy LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3gsIHN5LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3gsIG9yaWdpbl95LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeDEsIHkxLCB4MiwgeTIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByb3RhdGlvbikKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAg ICAgICAgICBzZWxmLmRyYXdUcmFuc2Zvcm1IYW5kbGVyKHBhaW50ZXIsIHN4LCBzeSwgc291cmNl X3dpZHRoLCBzb3VyY2VfaGVpZ2h0LCBvcmlnaW5feCwgb3JpZ2luX3kpCisrICAgICAgICAgICAg ICAgIHNlbGYuZHJhd1RyYW5zZm9ybUhhbmRsZXIoCisrICAgICAgICAgICAgICAgICAgICBwYWlu dGVyLAorKyAgICAgICAgICAgICAgICAgICAgc3gsIHN5LAorKyAgICAgICAgICAgICAgICAgICAg c291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgb3JpZ2lu X3gsIG9yaWdpbl95KQorIAorICAgICAgICAgaWYgc2VsZi5yZWdpb25fZW5hYmxlZDoKKyAgICAg ICAgICAgICAjIFBhaW50IHJlZ2lvbiBzZWxlY3RvciBvbnRvIHZpZGVvIHByZXZpZXcKK0BAIC0z NzYsMTEgKzQ4MSwyMSBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAg ICAgICAgICAgICAgICBwZW4gPSBRUGVuKFFCcnVzaChRQ29sb3IoIiM1M2EwZWQiKSksIDEuNSkK KyAgICAgICAgICAgICAgICAgcGVuLnNldENvc21ldGljKFRydWUpCisgICAgICAgICAgICAgICAg IHBhaW50ZXIuc2V0UGVuKHBlbikKKy0gICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVjdChz ZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBzZWxmLnJl Z2lvblRvcExlZnRIYW5kbGUueSgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBzZWxmLnJlZ2lvblRv cExlZnRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxl LmhlaWdodCgpIC8gc2VsZi56b29tKQorLSAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdSZWN0 KHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueCgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBz ZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAtIChjcy8yLjAvc2VsZi56b29tKSwgc2Vs Zi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZS53aWR0aCgpIC8gc2VsZi56b29tLCBzZWxmLnJlZ2lv bkJvdHRvbVJpZ2h0SGFuZGxlLmhlaWdodCgpIC8gc2VsZi56b29tKQorLSAgICAgICAgICAgICAg ICByZWdpb25fcmVjdCA9IFFSZWN0RihzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpLCBzZWxm LnJlZ2lvblRvcExlZnRIYW5kbGUueSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9u VG9wTGVmdEhhbmRsZS54KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueSgpIC0gc2VsZi5yZWdpb25Ub3BMZWZ0 SGFuZGxlLnkoKSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVjdCgKKysgICAgICAg ICAgICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCkgLSAoY3MgLyAyLjAgLyBz ZWxmLnpvb20pLAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxl LnkoKSAtIChjcyAvIDIuMCAvIHNlbGYuem9vbSksCisrICAgICAgICAgICAgICAgICAgICBzZWxm LnJlZ2lvblRvcExlZnRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwKKysgICAgICAgICAgICAg ICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS5oZWlnaHQoKSAvIHNlbGYuem9vbSkKKysg ICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVjdCgKKysgICAgICAgICAgICAgICAgICAgIHNl bGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueCgpIC0gKGNzIC8gMi4wIC8gc2VsZi56b29tKSwK KysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueSgpIC0g KGNzIC8gMi4wIC8gc2VsZi56b29tKSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9u Qm90dG9tUmlnaHRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwKKysgICAgICAgICAgICAgICAg ICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUuaGVpZ2h0KCkgLyBzZWxmLnpvb20pCisr ICAgICAgICAgICAgICAgIHJlZ2lvbl9yZWN0ID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICAgICAgICAgIHNl bGYucmVnaW9uVG9wTGVmdEhhbmRsZS55KCksCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJl Z2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCks CisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAt IHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS55KCkpCisgICAgICAgICAgICAgICAgIHBhaW50ZXIu ZHJhd1JlY3QocmVnaW9uX3JlY3QpCisgCisgICAgICAgICAgICAgIyBSZW1vdmUgdHJhbnNmb3Jt CitAQCAtMzk0LDIzICs1MDksMTUgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdz KToKKyAgICAgZGVmIGNlbnRlcmVkVmlld3BvcnQoc2VsZiwgd2lkdGgsIGhlaWdodCk6CisgICAg ICAgICAiIiIgQ2FsY3VsYXRlIHNpemUgb2Ygdmlld3BvcnQgdG8gbWFpbnRhaW4gYXNwZWN0IHJh dGlvICIiIgorIAorLSAgICAgICAgIyBDYWxjdWxhdGUgcGFkZGluZworLSAgICAgICAgdG9wX3Bh ZGRpbmcgPSAoaGVpZ2h0IC0gKGhlaWdodCAqIHNlbGYuem9vbSkpIC8gMi4wCistICAgICAgICBs ZWZ0X3BhZGRpbmcgPSAod2lkdGggLSAod2lkdGggKiBzZWxmLnpvb20pKSAvIDIuMAorKyAgICAg ICAgd2luZG93X3NpemUgPSBRU2l6ZUYod2lkdGgsIGhlaWdodCkKKysgICAgICAgIHdpbmRvd19y ZWN0ID0gUVJlY3RGKFFQb2ludEYoMCwgMCksIHdpbmRvd19zaXplKQorIAorLSAgICAgICAgIyBB ZGp1c3QgcGFyYW1ldGVycyB0byB6b29tCistICAgICAgICB3aWR0aCA9IHdpZHRoICogc2VsZi56 b29tCistICAgICAgICBoZWlnaHQgPSBoZWlnaHQgKiBzZWxmLnpvb20KKysgICAgICAgIGFzcGVj dFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9GbG9hdCgpICogc2VsZi5waXhlbF9yYXRpby5U b0Zsb2F0KCkKKysgICAgICAgIHZpZXdwb3J0X3NpemUgPSBRU2l6ZUYoYXNwZWN0UmF0aW8sIDEp LnNjYWxlZCh3aW5kb3dfc2l6ZSwgUXQuS2VlcEFzcGVjdFJhdGlvKQorKyAgICAgICAgdmlld3Bv cnRfcmVjdCA9IFFSZWN0RihRUG9pbnRGKDAsIDApLCB2aWV3cG9ydF9zaXplKQorKyAgICAgICAg dmlld3BvcnRfcmVjdC5tb3ZlQ2VudGVyKHdpbmRvd19yZWN0LmNlbnRlcigpKQorIAorLSAgICAg ICAgIyBDYWxjdWxhdGUgd2hpY2ggZGlyZWN0aW9uIHRvIHNjYWxlIChmb3IgcGVyZmVjdCBjZW50 ZXJpbmcpCistICAgICAgICBhc3BlY3RSYXRpbyA9IHNlbGYuYXNwZWN0X3JhdGlvLlRvRmxvYXQo KQorLSAgICAgICAgaGVpZ2h0RnJvbVdpZHRoID0gd2lkdGggLyBhc3BlY3RSYXRpbworLSAgICAg ICAgd2lkdGhGcm9tSGVpZ2h0ID0gaGVpZ2h0ICogYXNwZWN0UmF0aW8KKy0KKy0gICAgICAgIGlm IGhlaWdodEZyb21XaWR0aCA8PSBoZWlnaHQ6CistICAgICAgICAgICAgcmV0dXJuIFFSZWN0KGxl ZnRfcGFkZGluZywgKChoZWlnaHQgLSBoZWlnaHRGcm9tV2lkdGgpIC8gMikgKyB0b3BfcGFkZGlu Zywgd2lkdGgsIGhlaWdodEZyb21XaWR0aCkKKy0gICAgICAgIGVsc2U6CistICAgICAgICAgICAg cmV0dXJuIFFSZWN0KCgod2lkdGggLSB3aWR0aEZyb21IZWlnaHQpIC8gMi4wKSArIGxlZnRfcGFk ZGluZywgdG9wX3BhZGRpbmcsIHdpZHRoRnJvbUhlaWdodCwgaGVpZ2h0KQorKyAgICAgICAgcmV0 dXJuIHZpZXdwb3J0X3JlY3QudG9SZWN0KCkKKyAKKyAgICAgZGVmIHByZXNlbnQoc2VsZiwgaW1h Z2UsICphcmdzKToKKyAgICAgICAgICIiIiBQcmVzZW50IHRoZSBjdXJyZW50IGZyYW1lICIiIgor QEAgLTQ0OCwxMiArNTU1LDE2IEBAIGRlZiBtb3VzZVJlbGVhc2VFdmVudChzZWxmLCBldmVudCk6 CisgICAgICAgICAjIFRoaXMgY2FuIGJlIHVzZWQgb3RoZXIgd2lkZ2V0cyB0byBkaXNwbGF5IHRo ZSBzZWxlY3RlZCByZWdpb24KKyAgICAgICAgIGlmIHNlbGYucmVnaW9uX2VuYWJsZWQ6CisgICAg ICAgICAgICAgIyBHZXQgcmVnaW9uIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgcmVnaW9uX3Jl Y3QgPSBRUmVjdEYoc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwgc2VsZi5yZWdpb25Ub3BM ZWZ0SGFuZGxlLnkoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJl Z2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Cb3R0b21SaWdo dEhhbmRsZS55KCkgLSBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgpKS5ub3JtYWxpemVkKCkK KysgICAgICAgICAgICByZWdpb25fcmVjdCA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgc2Vs Zi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25U b3BMZWZ0SGFuZGxlLnkoKSwKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Cb3R0b21SaWdo dEhhbmRsZS54KCkgLSBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpLAorKyAgICAgICAgICAg ICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAtIHNlbGYucmVnaW9uVG9wTGVm dEhhbmRsZS55KCkKKysgICAgICAgICAgICApLm5vcm1hbGl6ZWQoKQorIAorICAgICAgICAgICAg ICMgTWFwIHJlZ2lvbiAoZHVlIHRvIHpvb21pbmcpCistICAgICAgICAgICAgbWFwcGVkX3JlZ2lv bl9yZWN0ID0gc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihyZWdpb25fcmVjdC50 b1JlY3QoKSkuYm91bmRpbmdSZWN0KCkKKysgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3Qg PSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKAorKyAgICAgICAgICAgICAgICBy ZWdpb25fcmVjdC50b1JlY3QoKSkuYm91bmRpbmdSZWN0KCkKKyAKKyAgICAgICAgICAgICAjIFJl bmRlciBhIHNjYWxlZCB2ZXJzaW9uIG9mIHRoZSByZWdpb24gKGFzIGEgUUltYWdlKQorICAgICAg ICAgICAgICMgVE9ETzogR3JhYiBoaWdoZXIgcXVhbGl0eSBwaXhtYXAgZnJvbSB0aGUgUVdpZGdl dCwgYXMgdGhpcyBtZXRob2Qgc2VlbXMgdG8gYmUgMS8yIHJlc29sdXRpb24KK0BAIC00NjEsMTQg KzU3MiwyNSBAQCBkZWYgbW91c2VSZWxlYXNlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAg ICAgIHNjYWxlID0gMy4wCisgCisgICAgICAgICAgICAgIyBNYXAgcmVjdCB0byB0cmFuc2Zvcm0g KGZvciBzY2FsaW5nIHZpZGVvIGVsZW1lbnRzKQorLSAgICAgICAgICAgIG1hcHBlZF9yZWdpb25f cmVjdCA9IFFSZWN0KG1hcHBlZF9yZWdpb25fcmVjdC54KCksIG1hcHBlZF9yZWdpb25fcmVjdC55 KCksIG1hcHBlZF9yZWdpb25fcmVjdC53aWR0aCgpICogc2NhbGUsIG1hcHBlZF9yZWdpb25fcmVj dC5oZWlnaHQoKSAqIHNjYWxlKQorKyAgICAgICAgICAgIG1hcHBlZF9yZWdpb25fcmVjdCA9IFFS ZWN0KAorKyAgICAgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3QueCgpLAorKyAgICAgICAg ICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3QueSgpLAorKyAgICAgICAgICAgICAgICBpbnQobWFw cGVkX3JlZ2lvbl9yZWN0LndpZHRoKCkgKiBzY2FsZSksCisrICAgICAgICAgICAgICAgIGludCht YXBwZWRfcmVnaW9uX3JlY3QuaGVpZ2h0KCkgKiBzY2FsZSkpCisgCisgICAgICAgICAgICAgIyBS ZW5kZXIgUVdpZGdldCBvbnRvIHNjYWxlZCBRSW1hZ2UKKy0gICAgICAgICAgICBzZWxmLnJlZ2lv bl9xaW1hZ2UgPSBRSW1hZ2UobWFwcGVkX3JlZ2lvbl9yZWN0LndpZHRoKCksIG1hcHBlZF9yZWdp b25fcmVjdC5oZWlnaHQoKSwgUUltYWdlLkZvcm1hdF9SR0JBODg4OCkKKysgICAgICAgICAgICBz ZWxmLnJlZ2lvbl9xaW1hZ2UgPSBRSW1hZ2UoCisrICAgICAgICAgICAgICAgIG1hcHBlZF9yZWdp b25fcmVjdC5zaXplKCksIFFJbWFnZS5Gb3JtYXRfUkdCQTg4ODgpCisgICAgICAgICAgICAgcmVn aW9uX3BhaW50ZXIgPSBRUGFpbnRlcihzZWxmLnJlZ2lvbl9xaW1hZ2UpCistICAgICAgICAgICAg cmVnaW9uX3BhaW50ZXIuc2V0UmVuZGVySGludHMoUVBhaW50ZXIuQW50aWFsaWFzaW5nIHwgUVBh aW50ZXIuU21vb3RoUGl4bWFwVHJhbnNmb3JtIHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywg VHJ1ZSkKKysgICAgICAgICAgICByZWdpb25fcGFpbnRlci5zZXRSZW5kZXJIaW50cygKKysgICAg ICAgICAgICAgICAgUVBhaW50ZXIuQW50aWFsaWFzaW5nCisrICAgICAgICAgICAgICAgIHwgUVBh aW50ZXIuU21vb3RoUGl4bWFwVHJhbnNmb3JtCisrICAgICAgICAgICAgICAgIHwgUVBhaW50ZXIu VGV4dEFudGlhbGlhc2luZywKKysgICAgICAgICAgICAgICAgVHJ1ZSkKKyAgICAgICAgICAgICBy ZWdpb25fcGFpbnRlci5zY2FsZShzY2FsZSwgc2NhbGUpCistICAgICAgICAgICAgc2VsZi5yZW5k ZXIocmVnaW9uX3BhaW50ZXIsIFFQb2ludCgwLDApLCBRUmVnaW9uKG1hcHBlZF9yZWdpb25fcmVj dCwgUVJlZ2lvbi5SZWN0YW5nbGUpKQorKyAgICAgICAgICAgIHNlbGYucmVuZGVyKAorKyAgICAg ICAgICAgICAgICByZWdpb25fcGFpbnRlciwgUVBvaW50KDAsIDApLAorKyAgICAgICAgICAgICAg ICBRUmVnaW9uKG1hcHBlZF9yZWdpb25fcmVjdCwgUVJlZ2lvbi5SZWN0YW5nbGUpKQorICAgICAg ICAgICAgIHJlZ2lvbl9wYWludGVyLmVuZCgpCisgCisgICAgICAgICAjIEluZm9ybSBVcGRhdGVN YW5hZ2VyIHRvIGFjY2VwdCB1cGRhdGVzLCBhbmQgb25seSBzdG9yZSBvdXIgZmluYWwgdXBkYXRl CitAQCAtNDg0LDcgKzYwNiw4IEBAIGRlZiBtb3VzZVJlbGVhc2VFdmVudChzZWxmLCBldmVudCk6 CisgICAgIGRlZiByb3RhdGVDdXJzb3Ioc2VsZiwgcGl4bWFwLCByb3RhdGlvbiwgc2hlYXJfeCwg c2hlYXJfeSk6CisgICAgICAgICAiIiJSb3RhdGUgY3Vyc29yIGJhc2VkIG9uIHRoZSBjdXJyZW50 IHRyYW5zZm9ybSIiIgorICAgICAgICAgcm90YXRlZF9waXhtYXAgPSBwaXhtYXAudHJhbnNmb3Jt ZWQoCistICAgICAgICAgICAgUVRyYW5zZm9ybSgpLnJvdGF0ZShyb3RhdGlvbikuc2hlYXIoc2hl YXJfeCwgc2hlYXJfeSkuc2NhbGUoMC44LCAwLjgpLCBRdC5TbW9vdGhUcmFuc2Zvcm1hdGlvbikK KysgICAgICAgICAgICBRVHJhbnNmb3JtKCkucm90YXRlKHJvdGF0aW9uKS5zaGVhcihzaGVhcl94 LCBzaGVhcl95KS5zY2FsZSgwLjgsIDAuOCksCisrICAgICAgICAgICAgUXQuU21vb3RoVHJhbnNm b3JtYXRpb24pCisgICAgICAgICByZXR1cm4gUUN1cnNvcihyb3RhdGVkX3BpeG1hcCkKKyAKKyAg ICAgZGVmIGdldFRyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ks IGV2ZW50KToKK0BAIC02MjcsNiArNzUwLDEwIEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBl dmVudCk6CisgCisgICAgICAgICAgICAgIyBUcmFuc2Zvcm0gY2xpcCBvYmplY3QKKyAgICAgICAg ICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlOgorKworKyAgICAgICAgICAgICAgICB4X21vdGlv biA9IGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpCisrICAgICAgICAg ICAgICAgIHlfbW90aW9uID0gZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55 KCkKKysKKyAgICAgICAgICAgICAgICAgaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnb3JpZ2lu JzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgdmFsdWUKKyAg ICAgICAgICAgICAgICAgICAgIG9yaWdpbl94ID0gcmF3X3Byb3BlcnRpZXMuZ2V0KCdvcmlnaW5f eCcpLmdldCgndmFsdWUnKQorQEAgLTYzNSw4ICs3NjIsOCBAQCBkZWYgbW91c2VNb3ZlRXZlbnQo c2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IHJhd19wcm9wZXJ0 aWVzLmdldCgnc2NhbGVfeScpLmdldCgndmFsdWUnKQorIAorICAgICAgICAgICAgICAgICAgICAg IyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgICAgICAg ICBvcmlnaW5feCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkp IC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkKKy0gICAgICAgICAgICAgICAg ICAgIG9yaWdpbl95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnko KSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkKKysgICAgICAgICAgICAg ICAgICAgIG9yaWdpbl94ICs9IHhfbW90aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICog c2NhbGVfeCkKKysgICAgICAgICAgICAgICAgICAgIG9yaWdpbl95ICs9IHlfbW90aW9uIC8gKHNl bGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kpCisgCisgICAgICAgICAgICAgICAgICAg ICAjIENvbnN0cmFpbiB0byBjbGlwCisgICAgICAgICAgICAgICAgICAgICBpZiBvcmlnaW5feCA8 IDAuMDoKK0BAIC02NDgsOCArNzc1LDEzIEBAIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVu dCk6CisgICAgICAgICAgICAgICAgICAgICBpZiBvcmlnaW5feSA+IDEuMDoKKyAgICAgICAgICAg ICAgICAgICAgICAgICBvcmlnaW5feSA9IDEuMAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRh dGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAg ICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xp cF9mcmFtZV9udW1iZXIsICdvcmlnaW5feCcsIG9yaWdpbl94LCByZWZyZXNoPUZhbHNlKQorLSAg ICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1p bmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdvcmlnaW5feScsIG9yaWdpbl95KQorKyAg ICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdpbl94Jywgb3JpZ2luX3gsCisrICAgICAg ICAgICAgICAgICAgICAgICAgcmVmcmVzaD1GYWxzZSkKKysgICAgICAgICAgICAgICAgICAgIHNl bGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJh bnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICdvcmlnaW5feScsIG9yaWdpbl95KQorIAorICAgICAgICAgICAgICAgICBlbGlmIHNl bGYudHJhbnNmb3JtX21vZGUgPT0gJ2xvY2F0aW9uJzoKKyAgICAgICAgICAgICAgICAgICAgICMg R2V0IGN1cnJlbnQga2V5ZnJhbWUgdmFsdWUKK0BAIC02NTcsMTIgKzc4OSwxNyBAQCBkZWYgbW91 c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25f eSA9IHJhd19wcm9wZXJ0aWVzLmdldCgnbG9jYXRpb25feScpLmdldCgndmFsdWUnKQorIAorICAg ICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCist ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxm Lm1vdXNlX3Bvc2l0aW9uLngoKSkgLyB2aWV3cG9ydF9yZWN0LndpZHRoKCkKKy0gICAgICAgICAg ICAgICAgICAgIGxvY2F0aW9uX3kgKz0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9z aXRpb24ueSgpKSAvIHZpZXdwb3J0X3JlY3QuaGVpZ2h0KCkKKysgICAgICAgICAgICAgICAgICAg IGxvY2F0aW9uX3ggKz0geF9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0LndpZHRoKCkKKysgICAgICAg ICAgICAgICAgICAgIGxvY2F0aW9uX3kgKz0geV9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0LmhlaWdo dCgpCisgCisgICAgICAgICAgICAgICAgICAgICAjIFVwZGF0ZSBrZXlmcmFtZSB2YWx1ZSAob3Ig Y3JlYXRlIG5ldyBvbmUpCistICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9w ZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwgJ2xvY2F0 aW9uX3gnLCBsb2NhdGlvbl94LCByZWZyZXNoPUZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAg c2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9m cmFtZV9udW1iZXIsICdsb2NhdGlvbl95JywgbG9jYXRpb25feSkKKysgICAgICAgICAgICAgICAg ICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICdsb2NhdGlvbl94JywgbG9jYXRpb25feCwKKysgICAgICAgICAgICAgICAg ICAgICAgICByZWZyZXNoPUZhbHNlKQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVD bGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdf Y2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgJ2xv Y2F0aW9uX3knLCBsb2NhdGlvbl95KQorIAorICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJh bnNmb3JtX21vZGUgPT0gJ3NoZWFyX3RvcCc6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBj dXJyZW50IGtleWZyYW1lIHNoZWFyIHZhbHVlCitAQCAtNjcyLDExICs4MDksMTMgQEAgZGVmIG1v dXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAgICAgICMgQ2FsY3Vs YXRlIG5ldyBsb2NhdGlvbiBjb29yZGluYXRlcworICAgICAgICAgICAgICAgICAgICAgYXNwZWN0 X3JhdGlvID0gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gc2VsZi5jbGlwQm91bmRzLmhlaWdo dCgpKSAqIDIuMAorICAgICAgICAgICAgICAgICAgICAgc2hlYXJfeCAtPSAoCistICAgICAgICAg ICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkp IC8gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHhfbW90aW9uKSAvICgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgKiBzY2FsZV94KSAvIGFzcGVj dF9yYXRpbykKKyAKKyAgICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtleWZyYW1lIHZhbHVl IChvciBjcmVhdGUgbmV3IG9uZSkKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xp cFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAn c2hlYXJfeCcsIHNoZWFyX3gpCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQ cm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19jbGlw LmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAnc2hlYXJf eCcsIHNoZWFyX3gpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9k ZSA9PSAnc2hlYXJfYm90dG9tJzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQg a2V5ZnJhbWUgc2hlYXIgdmFsdWUKK0BAIC02ODYsMTEgKzgyNSwxMyBAQCBkZWYgbW91c2VNb3Zl RXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3 IGxvY2F0aW9uIGNvb3JkaW5hdGVzCisgICAgICAgICAgICAgICAgICAgICBhc3BlY3RfcmF0aW8g PSAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpICog Mi4wCisgICAgICAgICAgICAgICAgICAgICBzaGVhcl94ICs9ICgKKy0gICAgICAgICAgICAgICAg ICAgICAgICBldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoCisr ICAgICAgICAgICAgICAgICAgICAgICAgeF9tb3Rpb24pIC8gKAorICAgICAgICAgICAgICAgICAg ICAgICAgIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3gpIC8gYXNwZWN0X3JhdGlv KQorIAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNy ZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVy dHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl94 Jywgc2hlYXJfeCkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5 KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNs aXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdzaGVhcl94Jywgc2hl YXJfeCkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdz aGVhcl9sZWZ0JzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUg c2hlYXIgdmFsdWUKK0BAIC03MDEsMTEgKzg0MiwxMyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2Vs ZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlvID0gKAorICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpKSAqIDIuMAorICAgICAgICAgICAgICAgICAgICAgc2hlYXJfeSAtPSAoCist ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3Np dGlvbi55KCkpIC8gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHlfbW90aW9uKSAvICgKKyAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2FsZV95 IC8gYXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJh bWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51 cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9u dW1iZXIsICdzaGVhcl95Jywgc2hlYXJfeSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBk YXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3Jt aW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICdzaGVhcl95Jywgc2hlYXJfeSkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5z Zm9ybV9tb2RlID09ICdzaGVhcl9yaWdodCc6CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBj dXJyZW50IGtleWZyYW1lIHNoZWFyIHZhbHVlCitAQCAtNzEzLDEzICs4NTYsMTYgQEAgZGVmIG1v dXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHNoZWFyX3kg PSByYXdfcHJvcGVydGllcy5nZXQoJ3NoZWFyX3knKS5nZXQoJ3ZhbHVlJykKKyAKKyAgICAgICAg ICAgICAgICAgICAgICMgQ2FsY3VsYXRlIG5ldyBsb2NhdGlvbiBjb29yZGluYXRlcworLSAgICAg ICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlvID0gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAv IHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorKyAgICAgICAgICAgICAgICAgICAgYXNw ZWN0X3JhdGlvID0gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5o ZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorICAgICAgICAgICAgICAg ICAgICAgc2hlYXJfeSArPSAoCistICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCku eSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKAorKyAgICAgICAgICAgICAgICAgICAg ICAgIHlfbW90aW9uKSAvICgKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsaXBCb3Vu ZHMuaGVpZ2h0KCkgKiBzY2FsZV95IC8gYXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAg ICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAg ICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdf Y2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl95Jywgc2hlYXJfeSkKKysgICAgICAg ICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICdzaGVhcl95Jywgc2hlYXJfeSkKKyAKKyAgICAgICAgICAg ICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdyb3RhdGlvbic6CisgICAgICAgICAg ICAgICAgICAgICAjIEdldCBjdXJyZW50IHJvdGF0aW9uIGtleWZyYW1lIHZhbHVlCitAQCAtNzI4 LDcxICs4NzQsNjggQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAg ICAgICAgICAgICAgIHNjYWxlX3kgPSBtYXgoZmxvYXQocmF3X3Byb3BlcnRpZXMuZ2V0KCdzY2Fs ZV95JykuZ2V0KCd2YWx1ZScpKSwgMC4wMDEpCisgCisgICAgICAgICAgICAgICAgICAgICAjIENh bGN1bGF0ZSBuZXcgbG9jYXRpb24gY29vcmRpbmF0ZXMKKy0gICAgICAgICAgICAgICAgICAgIGlz X29uX2xlZnQgPSBldmVudC5wb3MoKS54KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS54KCkKKysgICAg ICAgICAgICAgICAgICAgIGlzX29uX3JpZ2h0ID0gZXZlbnQucG9zKCkueCgpID4gc2VsZi5vcmln aW5IYW5kbGUueCgpCisgICAgICAgICAgICAgICAgICAgICBpc19vbl90b3AgPSBldmVudC5wb3Mo KS55KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS55KCkKKyAKKy0gICAgICAgICAgICAgICAgICAgIGlm IGlzX29uX3RvcDoKKy0gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAoCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9z aXRpb24ueCgpKSAvICgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpICogc2NhbGVfeCkgLyA5MCkKKy0gICAgICAgICAgICAgICAgICAgIGVsc2U6 CistICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gLT0gKAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkg LyAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMud2lkdGgo KSAqIHNjYWxlX3gpIC8gOTApCistCistICAgICAgICAgICAgICAgICAgICBpZiBpc19vbl9sZWZ0 OgorLSAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uIC09ICgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkp IC8gKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jbGlwQm91bmRzLmhlaWdo dCgpICogc2NhbGVfeSkgLyA5MCkKKy0gICAgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAg ICAgICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2Fs ZV95KSAvIDkwKQorKyAgICAgICAgICAgICAgICAgICAgeF9hZGp1c3QgPSB4X21vdGlvbiAvICgo c2VsZi5jbGlwQm91bmRzLndpZHRoKCkgKiBzY2FsZV94KSAvIDkwKQorKyAgICAgICAgICAgICAg ICAgICAgcm90YXRpb24gKz0gKHhfYWRqdXN0IGlmIGlzX29uX3RvcCBlbHNlIC14X2FkanVzdCkK KysKKysgICAgICAgICAgICAgICAgICAgIHlfYWRqdXN0ID0geV9tb3Rpb24gLyAoKHNlbGYuY2xp cEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kpIC8gOTApCisrICAgICAgICAgICAgICAgICAgICBy b3RhdGlvbiArPSAoeV9hZGp1c3QgaWYgaXNfb25fcmlnaHQgZWxzZSAteV9hZGp1c3QpCisgCisg ICAgICAgICAgICAgICAgICAgICAjIFVwZGF0ZSBrZXlmcmFtZSB2YWx1ZSAob3IgY3JlYXRlIG5l dyBvbmUpCistICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eShzZWxm LnRyYW5zZm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwgJ3JvdGF0aW9uJywgcm90 YXRpb24pCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQcm9wZXJ0eSgKKysg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLAorKyAgICAg ICAgICAgICAgICAgICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICdyb3RhdGlvbicsIHJvdGF0aW9uKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHNl bGYudHJhbnNmb3JtX21vZGUuc3RhcnRzd2l0aCgnc2NhbGVfJyk6CisgICAgICAgICAgICAgICAg ICAgICAjIEdldCBjdXJyZW50IHNjYWxlIGtleWZyYW1lIHZhbHVlCisgICAgICAgICAgICAgICAg ICAgICBzY2FsZV94ID0gbWF4KGZsb2F0KHJhd19wcm9wZXJ0aWVzLmdldCgnc2NhbGVfeCcpLmdl dCgndmFsdWUnKSksIDAuMDAxKQorICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IG1heChm bG9hdChyYXdfcHJvcGVydGllcy5nZXQoJ3NjYWxlX3knKS5nZXQoJ3ZhbHVlJykpLCAwLjAwMSkK KyAKKysgICAgICAgICAgICAgICAgICAgIGhhbGZfdyA9IHNlbGYuY2xpcEJvdW5kcy53aWR0aCgp IC8gMi4wCisrICAgICAgICAgICAgICAgICAgICBoYWxmX2ggPSBzZWxmLmNsaXBCb3VuZHMuaGVp Z2h0KCkgLyAyLjAKKysKKyAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21v ZGUgPT0gJ3NjYWxlX3RvcF9yaWdodCc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVf eCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYu Y2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxm LmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgc2Nh bGVfeCArPSB4X21vdGlvbiAvIGhhbGZfdworKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9u LngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCistICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGVfeSArPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlv bi55KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGVfeSArPSB5X21vdGlvbiAvIGhhbGZfaAorICAgICAgICAgICAgICAgICAg ICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3BfbGVmdCc6CistICAgICAg ICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3Vz ZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91 c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAg ICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSB4X21vdGlvbiAvIGhhbGZfdworKyAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAg ICAgICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX2xl ZnQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0gKGV2ZW50LnBvcygpLngo KSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpKSAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAv IDIuMCkKKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55 KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgp IC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0geF9tb3Rpb24gLyBo YWxmX3cKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IHlfbW90aW9uIC8gaGFs Zl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3Nj YWxlX3RvcCc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSAtPSAoZXZlbnQucG9z KCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWln aHQoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95IC09IHlfbW90aW9u IC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUg PT0gJ3NjYWxlX2JvdHRvbSc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSAo ZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xpcEJv dW5kcy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9 IHlfbW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNm b3JtX21vZGUgPT0gJ3NjYWxlX2xlZnQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3ggLT0gKGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpKSAvIChzZWxm LmNsaXBCb3VuZHMud2lkdGgoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2Fs ZV94IC09IHhfbW90aW9uIC8gaGFsZl93CisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYu dHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAgICAg ICBzY2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkg LyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAg ICAgc2NhbGVfeCArPSB4X21vdGlvbiAvIGhhbGZfdworIAorICAgICAgICAgICAgICAgICAgICAg aWYgaW50KFFDb3JlQXBwbGljYXRpb24uaW5zdGFuY2UoKS5rZXlib2FyZE1vZGlmaWVycygpICYg UXQuQ29udHJvbE1vZGlmaWVyKSA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiBD VFJMIGtleSBpcyBwcmVzc2VkLCBmaXggdGhlIHNjYWxlX3kgdG8gdGhlIGNvcnJlY3QgYXNwZWN0 IHJhdGlvbgorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNjYWxlX3ggYW5kIHNjYWxlX3k6 CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeDoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVfeSA9IHNjYWxlX3gKKyAgICAgICAgICAgICAgICAgICAgICAgICBl bGlmIHNjYWxlX3k6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggPSBzY2Fs ZV95CistICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBzY2FsZV94OgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorIAorICAgICAgICAgICAgICAgICAg ICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorICAgICAgICAg ICAgICAgICAgICAgYm90aF9zY2FsZWQgPSBzY2FsZV94ICE9IDAuMDAxIGFuZCBzY2FsZV95ICE9 IDAuMDAxCisgICAgICAgICAgICAgICAgICAgICBpZiBzY2FsZV94ICE9IDAuMDAxOgorLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3Jt aW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAnc2NhbGVfeCcsIHNjYWxlX3gsIHJlZnJl c2g9KG5vdCBib3RoX3NjYWxlZCkpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRh dGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNm b3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2NhbGVfeCcsIHNjYWxlX3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlZnJlc2g9KG5vdCBib3RoX3NjYWxlZCkpCisgICAgICAgICAgICAgICAgICAgICBpZiBzY2Fs ZV95ICE9IDAuMDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFBy b3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAnc2Nh bGVfeScsIHNjYWxlX3kpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlw UHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5n X2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnc2NhbGVfeScsIHNjYWxlX3kpCisgCisgICAgICAgICAgICAgIyBGb3JjZSByZS1wYWludAor ICAgICAgICAgICAgIHNlbGYudXBkYXRlKCkKK0BAIC04MDMsMTYgKzk0NiwyOSBAQCBkZWYgbW91 c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGNzID0gc2VsZi5jcworIAor ICAgICAgICAgICAgICMgQWRqdXN0IGV4aXN0aW5nIHJlZ2lvbiBjb29yZGluYXRlcyAoaWYgYW55 KQorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBzZWxmLnJlc2l6 ZV9idXR0b24uaXNWaXNpYmxlKCkgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5yZWN0KCkuY29udGFp bnMoZXZlbnQucG9zKCkpOgorKyAgICAgICAgICAgIGlmIChub3Qgc2VsZi5tb3VzZV9kcmFnZ2lu ZworKyAgICAgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0dG9uLmlzVmlzaWJsZSgpCisr ICAgICAgICAgICAgICAgIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24ucmVjdCgpLmNvbnRhaW5zKGV2 ZW50LnBvcygpKQorKyAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICMgTW91c2Ugb3Zl ciByZXNpemUgYnV0dG9uIChhbmQgbm90IGN1cnJlbnRseSBkcmFnZ2luZykKKyAgICAgICAgICAg ICAgICAgc2VsZi5zZXRDdXJzb3IoUXQuQXJyb3dDdXJzb3IpCistICAgICAgICAgICAgZWxpZiBz ZWxmLnJlZ2lvbl90cmFuc2Zvcm0gYW5kIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZSBhbmQgc2Vs Zi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUu dG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysg ICAgICAgICAgICBlbGlmICgKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uX3RyYW5z Zm9ybQorKyAgICAgICAgICAgICAgICAgICAgYW5kIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZQor KyAgICAgICAgICAgICAgICAgICAgYW5kIHNlbGYucmVnaW9uX3RyYW5zZm9ybS5tYXBUb1BvbHln b24oCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnRv UmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCkKKysgICAg ICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlZ2lvbl9t b2RlIG9yIHNlbGYucmVnaW9uX21vZGUgPT0gJ3NjYWxlX3RvcF9sZWZ0JzoKKyAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5n ZXQoJ3Jlc2l6ZV9mZGlhZycpLCAwLCAwLCAwKSkKKyAgICAgICAgICAgICAgICAgIyBTZXQgdGhl IHJlZ2lvbiBtb2RlCisgICAgICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5k IG5vdCBzZWxmLnJlZ2lvbl9tb2RlOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25f bW9kZSA9ICdzY2FsZV90b3BfbGVmdCcKKy0gICAgICAgICAgICBlbGlmIHNlbGYucmVnaW9uX3Ry YW5zZm9ybSBhbmQgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZSBhbmQgc2VsZi5yZWdpb25f dHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnRvUmVj dCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CisrICAgICAg ICAgICAgZWxpZiAoCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0K KysgICAgICAgICAgICAgICAgICAgIGFuZCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlCisr ICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdv bigKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxl LnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCkKKysg ICAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlZ2lv bl9tb2RlIG9yIHNlbGYucmVnaW9uX21vZGUgPT0gJ3NjYWxlX2JvdHRvbV9yaWdodCc6CisgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1 cnNvcnMuZ2V0KCdyZXNpemVfZmRpYWcnKSwgMCwgMCwgMCkpCisgICAgICAgICAgICAgICAgICMg U2V0IHRoZSByZWdpb24gbW9kZQorQEAgLTgyNCwxMyArOTgwLDI1IEBAIGRlZiBtb3VzZU1vdmVF dmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAgICAgIyBJbml0aWFsaXplIG5ldyByZWdpb24g Y29vcmRpbmF0ZXMgYXQgY3VycmVudCBldmVudC5wb3MoKQorICAgICAgICAgICAgIGlmIHNlbGYu bW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnJlZ2lvbl9tb2RlOgorICAgICAgICAgICAgICAg ICBzZWxmLnJlZ2lvbl9tb2RlID0gJ3NjYWxlX2JvdHRvbV9yaWdodCcKKy0gICAgICAgICAgICAg ICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlID0gUVJlY3RGKHNlbGYucmVnaW9uX3RyYW5zZm9y bV9pbnZlcnRlZC5tYXAoZXZlbnQucG9zKCkpLngoKSwgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2lu dmVydGVkLm1hcChldmVudC5wb3MoKSkueSgpLCBjcywgY3MpCistICAgICAgICAgICAgICAgIHNl bGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoc2VsZi5yZWdpb25fdHJhbnNmb3Jt X2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueCgpLCBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52 ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCksIGNzLCBjcykKKysgICAgICAgICAgICAgICAgc2Vs Zi5yZWdpb25Ub3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAgICAgc2Vs Zi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueCgpLAorKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5w b3MoKSkueSgpLAorKyAgICAgICAgICAgICAgICAgICAgY3MsIGNzKQorKyAgICAgICAgICAgICAg ICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueCgp LAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1h cChldmVudC5wb3MoKSkueSgpLAorKyAgICAgICAgICAgICAgICAgICAgY3MsIGNzKQorIAorICAg ICAgICAgICAgICMgTW92ZSBleGlzdGluZyByZWdpb24gY29vcmRpbmF0ZXMKKyAgICAgICAgICAg ICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nOgorLSAgICAgICAgICAgICAgICBkaWZmX3ggPSBzZWxm LnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS54KCkgLSBzZWxmLnJl Z2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKHNlbGYubW91c2VfcG9zaXRpb24pLngoKQorLSAg ICAgICAgICAgICAgICBkaWZmX3kgPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFw KGV2ZW50LnBvcygpKS55KCkgLSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKHNl bGYubW91c2VfcG9zaXRpb24pLnkoKQorKyAgICAgICAgICAgICAgICBkaWZmX3ggPSBpbnQoCisr ICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2 ZW50LnBvcygpKS54KCkKKysgICAgICAgICAgICAgICAgICAgIC0gc2VsZi5yZWdpb25fdHJhbnNm b3JtX2ludmVydGVkLm1hcChzZWxmLm1vdXNlX3Bvc2l0aW9uKS54KCkKKysgICAgICAgICAgICAg ICAgKQorKyAgICAgICAgICAgICAgICBkaWZmX3kgPSBpbnQoCisrICAgICAgICAgICAgICAgICAg ICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCkKKysg ICAgICAgICAgICAgICAgICAgIC0gc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChz ZWxmLm1vdXNlX3Bvc2l0aW9uKS55KCkKKysgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg ICAgICBpZiBzZWxmLnJlZ2lvbl9tb2RlID09ICdzY2FsZV90b3BfbGVmdCc6CisgICAgICAgICAg ICAgICAgICAgICBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUuYWRqdXN0KGRpZmZfeCwgZGlmZl95 LCBkaWZmX3gsIGRpZmZfeSkKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnJlZ2lvbl9tb2Rl ID09ICdzY2FsZV9ib3R0b21fcmlnaHQnOgorQEAgLTg1OSwxMiArMTAyNywxMSBAQCBkZWYgbW91 c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJh Z2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorICAgICAgICAgICAgICAgICBzZWxm Lm9yaWdpbmFsX2NsaXBfZGF0YSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YQorIAorLQor LQorICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdF9vYmplY3QuaW5mby5o YXNfdHJhY2tlZF9vYmplY3Q6CisgICAgICAgICAgICAgICAgICMgR2V0IHByb3BlcnRpZXMgb2Yg ZWZmZWN0IGF0IGN1cnJlbnQgZnJhbWUKKyAgICAgICAgICAgICAgICAgcmF3X3Byb3BlcnRpZXMg PSBqc29uLmxvYWRzKHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdF9vYmplY3QuUHJvcGVydGllc0pT T04oY2xpcF9mcmFtZV9udW1iZXIpKQorLSAgICAgICAgICAgICAgICAgIyBHZXQgcHJvcGVydGll cyBmb3IgdGhlIGZpcnN0IG9iamVjdCBpbiBkaWN0LiBQcm9wZXJ0aWVzSlNPTiBzaG91bGQgcmV0 dXJuIG9uZSBvYmplY3QgYXQgdGhlIHRpbWUKKysgICAgICAgICAgICAgICAgIyBHZXQgcHJvcGVy dGllcyBmb3IgdGhlIGZpcnN0IG9iamVjdCBpbiBkaWN0LgorKyAgICAgICAgICAgICAgICAjIFBy b3BlcnRpZXNKU09OIHNob3VsZCByZXR1cm4gb25lIG9iamVjdCBhdCB0aGUgdGltZQorICAgICAg ICAgICAgICAgICBvYmpfaWQgPSBsaXN0KHJhd19wcm9wZXJ0aWVzLmdldCgnb2JqZWN0cycpLmtl eXMoKSlbMF0KKyAgICAgICAgICAgICAgICAgcmF3X3Byb3BlcnRpZXMgPSByYXdfcHJvcGVydGll cy5nZXQoJ29iamVjdHMnKS5nZXQob2JqX2lkKQorIAorQEAgLTg3OCwxOCArMTA0NSwyOCBAQCBk ZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAjIFRyYW5z Zm9ybSBlZmZlY3Qgb2JqZWN0CisgICAgICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21v ZGU6CisgCisrICAgICAgICAgICAgICAgICAgICB4X21vdGlvbiA9IGV2ZW50LnBvcygpLngoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueCgpCisrICAgICAgICAgICAgICAgICAgICB5X21vdGlvbiA9 IGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpCisrCisgICAgICAgICAg ICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdsb2NhdGlvbic6CisgICAgICAg ICAgICAgICAgICAgICAgICAgIyBHZXQgY3VycmVudCBrZXlmcmFtZSB2YWx1ZQorICAgICAgICAg ICAgICAgICAgICAgICAgIGxvY2F0aW9uX3ggPSByYXdfcHJvcGVydGllcy5nZXQoJ2RlbHRhX3gn KS5nZXQoJ3ZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl95ID0gcmF3 X3Byb3BlcnRpZXMuZ2V0KCdkZWx0YV95JykuZ2V0KCd2YWx1ZScpCisgCisgICAgICAgICAgICAg ICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCistICAgICAg ICAgICAgICAgICAgICAgICAgbG9jYXRpb25feCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5t b3VzZV9wb3NpdGlvbi54KCkpIC8gdmlld3BvcnRfcmVjdC53aWR0aCgpCistICAgICAgICAgICAg ICAgICAgICAgICAgbG9jYXRpb25feSArPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9w b3NpdGlvbi55KCkpIC8gdmlld3BvcnRfcmVjdC5oZWlnaHQoKQorKyAgICAgICAgICAgICAgICAg ICAgICAgIGxvY2F0aW9uX3ggKz0geF9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0LndpZHRoKCkKKysg ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl95ICs9IHlfbW90aW9uIC8gdmlld3BvcnRf cmVjdC5oZWlnaHQoKQorIAorICAgICAgICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtleWZy YW1lIHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwgY2xp cF9mcmFtZV9udW1iZXIsIG9ial9pZCwgJ2RlbHRhX3gnLCBsb2NhdGlvbl94LCByZWZyZXNoPUZh bHNlKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlRWZmZWN0UHJvcGVydHko c2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwgb2JqX2lkLCAn ZGVsdGFfeScsIGxvY2F0aW9uX3kpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRh dGVFZmZlY3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFu c2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2JqX2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsdGFf eCcsIGxvY2F0aW9uX3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2g9RmFs c2UpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0Lmlk LCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqX2lk LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsdGFfeScsIGxvY2F0aW9uX3kpCisg CisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3JvdGF0 aW9uJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IHJvdGF0aW9uIGtl eWZyYW1lIHZhbHVlCitAQCAtODk4LDYzICsxMDc1LDcwIEBAIGRlZiBtb3VzZU1vdmVFdmVudChz ZWxmLCBldmVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IG1heChmbG9h dChyYXdfcHJvcGVydGllcy5nZXQoJ3NjYWxlX3knKS5nZXQoJ3ZhbHVlJykpLCAwLjAwMSkKKyAK KyAgICAgICAgICAgICAgICAgICAgICAgICAjIENhbGN1bGF0ZSBuZXcgbG9jYXRpb24gY29vcmRp bmF0ZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBpc19vbl9sZWZ0ID0gZXZlbnQucG9zKCku eCgpIDwgc2VsZi5vcmlnaW5IYW5kbGUueCgpCisrICAgICAgICAgICAgICAgICAgICAgICAgaXNf b25fcmlnaHQgPSBldmVudC5wb3MoKS54KCkgPiBzZWxmLm9yaWdpbkhhbmRsZS54KCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICBpc19vbl90b3AgPSBldmVudC5wb3MoKS55KCkgPCBzZWxmLm9y aWdpbkhhbmRsZS55KCkKKyAKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiBpc19vbl90b3A6 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uICs9IChldmVudC5wb3MoKS54 KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgp ICogc2NhbGVfeCkgLyA5MCkKKy0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2Vs Zi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxl X3gpIC8gOTApCisrICAgICAgICAgICAgICAgICAgICAgICAgeF9hZGp1c3QgPSB4X21vdGlvbiAv IChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3ggLyA5MCkKKysgICAgICAgICAgICAg ICAgICAgICAgICByb3RhdGlvbiArPSAoeF9hZGp1c3QgaWYgaXNfb25fdG9wIGVsc2UgLXhfYWRq dXN0KQorIAorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzX29uX2xlZnQ6CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uIC09IChldmVudC5wb3MoKS55KCkgLSBzZWxm Lm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxl X3kpIC8gOTApCistICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2Vf cG9zaXRpb24ueSgpKSAvICgoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkgLyA5 MCkKKysgICAgICAgICAgICAgICAgICAgICAgICB5X2FkanVzdCA9IHlfbW90aW9uIC8gKHNlbGYu Y2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kgLyA5MCkKKysgICAgICAgICAgICAgICAgICAg ICAgICByb3RhdGlvbiArPSAoeV9hZGp1c3QgaWYgaXNfb25fcmlnaHQgZWxzZSAteV9hZGp1c3Qp CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9y IGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlRWZm ZWN0UHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJl ciwgb2JqX2lkLCAncm90YXRpb24nLCByb3RhdGlvbikKKysgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdyb3RhdGlvbicsIHJvdGF0aW9uKQorIAorICAgICAgICAgICAgICAgICAgICAgZWxpZiBz ZWxmLnRyYW5zZm9ybV9tb2RlLnN0YXJ0c3dpdGgoJ3NjYWxlXycpOgorICAgICAgICAgICAgICAg ICAgICAgICAgICMgR2V0IGN1cnJlbnQgc2NhbGUga2V5ZnJhbWUgdmFsdWUKKyAgICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZV94ID0gbWF4KGZsb2F0KHJhd19wcm9wZXJ0aWVzLmdldCgnc2Nh bGVfeCcpLmdldCgndmFsdWUnKSksIDAuMDAxKQorICAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxlX3kgPSBtYXgoZmxvYXQocmF3X3Byb3BlcnRpZXMuZ2V0KCdzY2FsZV95JykuZ2V0KCd2YWx1 ZScpKSwgMC4wMDEpCisgCisrICAgICAgICAgICAgICAgICAgICAgICAgaGFsZl93ID0gc2VsZi5j bGlwQm91bmRzLndpZHRoKCkgLyAyLjAKKysgICAgICAgICAgICAgICAgICAgICAgICBoYWxmX2gg PSBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjAKKysKKyAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3BfcmlnaHQnOgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxm Lm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAy LjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggKz0geF9tb3Rpb24gLyBo YWxmX3cKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSAtPSB5X21vdGlvbiAv IGhhbGZfaAorICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9k ZSA9PSAnc2NhbGVfYm90dG9tX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NhbGVfeCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8g KHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnko KSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcF9sZWZ0JzoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgp IC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8g Mi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95IC09IChldmVudC5wb3Mo KS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdo dCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94IC09IHhfbW90 aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9t b3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNm b3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbV9sZWZ0JzoKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54 KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0 aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZV94IC09IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAg ICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcCc6 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnko KSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkg LyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24g LyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21v ZGUgPT0gJ3NjYWxlX2JvdHRvbSc6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxl X3kgKz0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxm LmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBl bGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2xlZnQnOgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZV94IC09IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bv c2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0geF9tb3Rpb24gLyBoYWxmX3cKKyAgICAgICAg ICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3JpZ2h0 JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCku eCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgp IC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9u IC8gaGFsZl93CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW50KFFDb3JlQXBwbGlj YXRpb24uaW5zdGFuY2UoKS5rZXlib2FyZE1vZGlmaWVycygpICYgUXQuQ29udHJvbE1vZGlmaWVy KSA+IDA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgQ1RSTCBrZXkgaXMgcHJl c3NlZCwgZml4IHRoZSBzY2FsZV95IHRvIHRoZSBjb3JyZWN0IGFzcGVjdCByYXRpb24KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeCBhbmQgc2NhbGVfeToKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBJZiBDVFJMIGtleSBpcyBwcmVzc2VkLCBmaXggdGhlIHNj YWxlX3kgdG8gdGhlIGNvcnJlY3QgYXNwZWN0IHJhdGlvCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIHNjYWxlX3g6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2Fs ZV95ID0gc2NhbGVfeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNjYWxlX3k6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ID0gc2NhbGVfeQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNjYWxlX3g6CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorIAorICAgICAgICAgICAgICAgICAg ICAgICAgICMgVXBkYXRlIGtleWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICBib3RoX3NjYWxlZCA9IHNjYWxlX3ggIT0gMC4wMDEgYW5kIHNj YWxlX3kgIT0gMC4wMDEKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzY2FsZV94ICE9IDAu MDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3Bl cnR5KHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9p ZCwgJ3NjYWxlX3gnLCBzY2FsZV94LCByZWZyZXNoPShub3QgYm90aF9zY2FsZWQpKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9p ZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FsZV94Jywgc2NhbGVfeCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxl ZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeSAhPSAwLjAwMToKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eShzZWxmLnRy YW5zZm9ybWluZ19lZmZlY3QuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsICdzY2FsZV95 Jywgc2NhbGVfeSkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZl Y3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNm b3JtaW5nX2VmZmVjdC5pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBf ZnJhbWVfbnVtYmVyLCBvYmpfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn c2NhbGVfeScsIHNjYWxlX3kpCisgCisgICAgICAgICAgICAgIyBGb3JjZSByZS1wYWludAorICAg ICAgICAgICAgIHNlbGYudXBkYXRlKCkKK0BAIC0xMDEyLDggKzExOTYsMTUgQEAgZGVmIHVwZGF0 ZUVmZmVjdFByb3BlcnR5KHNlbGYsIGVmZmVjdF9pZCwgZnJhbWVfbnVtYmVyLCBvYmpfaWQsIHBy b3BlcnR5X2tleSwgbmUKKyAgICAgICAgICAgICAjIE5vIGNsaXAgZm91bmQKKyAgICAgICAgICAg ICByZXR1cm4KKyAKKy0gICAgICAgIGZvciBwb2ludCBpbiBjLmRhdGFbJ29iamVjdHMnXVtvYmpf aWRdW3Byb3BlcnR5X2tleV1bIlBvaW50cyJdOgorLSAgICAgICAgICAgIGxvZy5pbmZvKCJsb29w aW5nIHBvaW50czogY28uWCA9ICVzIiAlIHBvaW50WyJjbyJdWyJYIl0pCisrICAgICAgICB0cnk6 CisrICAgICAgICAgICAgcHJvcHMgPSBjLmRhdGFbJ29iamVjdHMnXVtvYmpfaWRdCisrICAgICAg ICAgICAgcG9pbnRzX2xpc3QgPSBwcm9wc1twcm9wZXJ0eV9rZXldWyJQb2ludHMiXQorKyAgICAg ICAgZXhjZXB0IChUeXBlRXJyb3IsIEtleUVycm9yKToKKysgICAgICAgICAgICBsb2cuZXJyb3Io IkNvcnJ1cHRlZCBwcm9qZWN0IGRhdGEhIiwgZXhjX2luZm89MSkKKysgICAgICAgICAgICByZXR1 cm4KKysKKysgICAgICAgIGZvciBwb2ludCBpbiBwb2ludHNfbGlzdDoKKysgICAgICAgICAgICBs b2cuaW5mbygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIsIHBvaW50WyJjbyJdWyJYIl0pCisg CisgICAgICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisgICAg ICAgICAgICAgICAgIGZvdW5kX3BvaW50ID0gVHJ1ZQorQEAgLTEwMjMsMTIgKzEyMTQsMTUgQEAg ZGVmIHVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYsIGVmZmVjdF9pZCwgZnJhbWVfbnVtYmVyLCBv YmpfaWQsIHByb3BlcnR5X2tleSwgbmUKKyAKKyAgICAgICAgIGlmIG5vdCBmb3VuZF9wb2ludCBh bmQgbmV3X3ZhbHVlICE9IE5vbmU6CisgICAgICAgICAgICAgZWZmZWN0X3VwZGF0ZWQgPSBUcnVl CistICAgICAgICAgICAgbG9nLmluZm8oIkNyZWF0ZWQgbmV3IHBvaW50IGF0IFg9JXMiICUgZnJh bWVfbnVtYmVyKQorLSAgICAgICAgICAgIGMuZGF0YVsnb2JqZWN0cyddW29ial9pZF1bcHJvcGVy dHlfa2V5XVsiUG9pbnRzIl0uYXBwZW5kKHsnY28nOiB7J1gnOiBmcmFtZV9udW1iZXIsICdZJzog bmV3X3ZhbHVlfSwgJ2ludGVycG9sYXRpb24nOiBvcGVuc2hvdC5CRVpJRVJ9KQorKyAgICAgICAg ICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQor KyAgICAgICAgICAgIHBvaW50c19saXN0LmFwcGVuZCh7CisrICAgICAgICAgICAgICAgICdjbyc6 IHsgJ1gnOiBmcmFtZV9udW1iZXIsICdZJzogbmV3X3ZhbHVlIH0sCisrICAgICAgICAgICAgICAg ICdpbnRlcnBvbGF0aW9uJzogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQor IAorICAgICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAo cGVyZm9ybWFuY2UgYm9vc3QpCisgICAgICAgICAjVE9ETzogVGhpcyBpcyB0b28gc2xvdyB3aGVu IGRyYWdpbmcgdHJhbnNmb3JtIGhhbmRsZXJzCistICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMn OiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJykuZ2V0KG9ial9pZCl9fQorKyAgICAgICAg Yy5kYXRhID0geydvYmplY3RzJzoge29ial9pZDogYy5kYXRhLmdldCgnb2JqZWN0cycsIHt9KS5n ZXQob2JqX2lkKX19CisgCisgICAgICAgICBpZiBlZmZlY3RfdXBkYXRlZDoKKyAgICAgICAgICAg ICBjLnNhdmUoKQorQEAgLTEwNDAsMTAgKzEyMzQsMTAgQEAgZGVmIHJlZnJlc2hUcmlnZ2VyZWQo c2VsZik6CisgICAgICAgICAiIiJTaWduYWwgdG8gcmVmcmVzaCB2aWV3cG9ydCAoaS5lLiBhIHBy b3BlcnR5IG1pZ2h0IGhhdmUgY2hhbmdlZCB0aGF0IGVmZmVjdHMgdGhlIHByZXZpZXcpIiIiCisg CisgICAgICAgICAjIFVwZGF0ZSByZWZlcmVuY2UgdG8gY2xpcAorLSAgICAgICAgaWYgc2VsZiBh bmQgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcDoKKysgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtaW5n X2NsaXA6CisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcCA9IENsaXAuZ2V0KGlk PXNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQpCisgCistICAgICAgICBpZiBzZWxmIGFuZCBzZWxm LnRyYW5zZm9ybWluZ19lZmZlY3Q6CisrICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybWluZ19lZmZl Y3Q6CisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0ID0gRWZmZWN0LmdldChp ZD1zZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQpCisgCisgICAgIGRlZiB0cmFuc2Zvcm1Ucmln Z2VyZWQoc2VsZiwgY2xpcF9pZCk6CitAQCAtMTA1Myw3ICsxMjQ3LDcgQEAgZGVmIHRyYW5zZm9y bVRyaWdnZXJlZChzZWxmLCBjbGlwX2lkKToKKyAKKyAgICAgICAgICMgRGlzYWJsZSBUcmFuc2Zv cm0gVUkKKyAgICAgICAgICMgSXMgdGhpcyB0aGUgc2FtZSBjbGlwX2lkIGFscmVhZHkgYmVpbmcg dHJhbnNmb3JtZWQ/CistICAgICAgICBpZiBzZWxmIGFuZCBzZWxmLnRyYW5zZm9ybWluZ19jbGlw IGFuZCBub3QgY2xpcF9pZDoKKysgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAgYW5k IG5vdCBjbGlwX2lkOgorICAgICAgICAgICAgICMgQ2xlYXIgdHJhbnNmb3JtCisgICAgICAgICAg ICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcCA9IE5vbmUKKyAgICAgICAgICAgICBuZWVkX3JlZnJl c2ggPSBUcnVlCitAQCAtMTA3OCw3ICsxMjcyLDcgQEAgZGVmIGtleUZyYW1lVHJhbnNmb3JtVHJp Z2dlcmVkKHNlbGYsIGVmZmVjdF9pZCwgY2xpcF9pZCk6CisgCisgICAgICAgICAjIERpc2FibGUg VHJhbnNmb3JtIFVJCisgICAgICAgICAjIElzIHRoaXMgdGhlIHNhbWUgY2xpcF9pZCBhbHJlYWR5 IGJlaW5nIHRyYW5zZm9ybWVkPworLSAgICAgICAgaWYgc2VsZiBhbmQgc2VsZi50cmFuc2Zvcm1p bmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0X2lkOgorKyAgICAgICAgaWYgc2VsZi50cmFuc2Zvcm1p bmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0X2lkOgorICAgICAgICAgICAgICMgQ2xlYXIgdHJhbnNm b3JtCisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0ID0gTm9uZQorICAgICAg ICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAgPSBOb25lCitAQCAtMTEwMiwxMiArMTI5Niw4 IEBAIGRlZiBrZXlGcmFtZVRyYW5zZm9ybVRyaWdnZXJlZChzZWxmLCBlZmZlY3RfaWQsIGNsaXBf aWQpOgorIAorICAgICBkZWYgcmVnaW9uVHJpZ2dlcmVkKHNlbGYsIGNsaXBfaWQpOgorICAgICAg ICAgIiIiSGFuZGxlIHRoZSAnc2VsZWN0IHJlZ2lvbicgc2lnbmFsIHdoZW4gaXQncyBlbWl0dGVk IiIiCistICAgICAgICBpZiBzZWxmIGFuZCBub3QgY2xpcF9pZDoKKy0gICAgICAgICAgICAjIENs ZWFyIHRyYW5zZm9ybQorLSAgICAgICAgICAgIHNlbGYucmVnaW9uX2VuYWJsZWQgPSBGYWxzZQor LSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLnJlZ2lvbl9lbmFibGVkID0gVHJ1ZQor LQorKyAgICAgICAgIyBDbGVhciB0cmFuc2Zvcm0KKysgICAgICAgIHNlbGYucmVnaW9uX2VuYWJs ZWQgPSBib29sKG5vdCBjbGlwX2lkKQorICAgICAgICAgZ2V0X2FwcCgpLndpbmRvdy5yZWZyZXNo RnJhbWVTaWduYWwuZW1pdCgpCisgCisgICAgIGRlZiByZXNpemVFdmVudChzZWxmLCBldmVudCk6 CitAQCAtMTEzNSw3ICsxMzI1LDcgQEAgZGVmIGRlbGF5ZWRfcmVzaXplX2NhbGxiYWNrKHNlbGYp OgorICAgICAgICAgICAgIHJhdGlvID0gZmxvYXQocHJvamVjdF9zaXplLndpZHRoKCkpIC8gZmxv YXQocHJvamVjdF9zaXplLmhlaWdodCgpKQorICAgICAgICAgICAgIGV2ZW5fd2lkdGggPSByb3Vu ZChwcm9qZWN0X3NpemUud2lkdGgoKSAvIDIuMCkgKiAyCisgICAgICAgICAgICAgZXZlbl9oZWln aHQgPSByb3VuZChyb3VuZChldmVuX3dpZHRoIC8gcmF0aW8pIC8gMi4wKSAqIDIKKy0gICAgICAg ICAgICBwcm9qZWN0X3NpemUgPSBRU2l6ZShldmVuX3dpZHRoLCBldmVuX2hlaWdodCkKKysgICAg ICAgICAgICBwcm9qZWN0X3NpemUgPSBRU2l6ZShpbnQoZXZlbl93aWR0aCksIGludChldmVuX2hl aWdodCkpCisgCisgICAgICAgICAjIEVtaXQgc2lnbmFsIHRoYXQgdmlkZW8gd2lkZ2V0IGNoYW5n ZWQgc2l6ZQorICAgICAgICAgc2VsZi53aW4uTWF4U2l6ZUNoYW5nZWQuZW1pdChwcm9qZWN0X3Np emUpCitAQCAtMTE5OSw3ICsxMzg5LDYgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHdhdGNoX3Byb2pl Y3Q9VHJ1ZSwgKmFyZ3MpOgorICAgICAgICAgc2VsZi5tb3VzZV9kcmFnZ2luZyA9IEZhbHNlCisg ICAgICAgICBzZWxmLm1vdXNlX3Bvc2l0aW9uID0gTm9uZQorICAgICAgICAgc2VsZi50cmFuc2Zv cm1fbW9kZSA9IE5vbmUKKy0gICAgICAgIHNlbGYuZ3Jhdml0eV9wb2ludCA9IE5vbmUKKyAgICAg ICAgIHNlbGYub3JpZ2luYWxfY2xpcF9kYXRhID0gTm9uZQorICAgICAgICAgc2VsZi5yZWdpb25f cWltYWdlID0gTm9uZQorICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtID0gTm9uZQorQEAg LTEyMDgsOCArMTM5Nyw4IEBAIGRlZiBfX2luaXRfXyhzZWxmLCB3YXRjaF9wcm9qZWN0PVRydWUs ICphcmdzKToKKyAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZSA9IE5vbmUKKyAgICAg ICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUgPSBOb25lCisgICAgICAgICBzZWxmLmN1 cnJfZnJhbWVfc2l6ZSA9IE5vbmUgIyBGcmFtZSBzaXplCistICAgICAgICBzZWxmLnpvb20gPSAx LjAgIyBab29tIG9mIHdpZGdldCAoZG9lcyBub3QgYWZmZWN0IHZpZGVvLCBvbmx5IHdvcmtzcGFj ZSkKKy0gICAgICAgIHNlbGYuY3MgPSAxNC4wICMgQ29ybmVyIHNpemUgb2YgVHJhbnNmb3JtIEhh bmRsZXIgcmVjdGFuZ2xlcworKyAgICAgICAgc2VsZi56b29tID0gMS4wICAjIFpvb20gb2Ygd2lk Z2V0IChkb2VzIG5vdCBhZmZlY3QgdmlkZW8sIG9ubHkgd29ya3NwYWNlKQorKyAgICAgICAgc2Vs Zi5jcyA9IDE0LjAgICMgQ29ybmVyIHNpemUgb2YgVHJhbnNmb3JtIEhhbmRsZXIgcmVjdGFuZ2xl cworICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uID0gUVB1c2hCdXR0b24oXygnUmVzZXQgWm9v bScpLCBzZWxmKQorICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uLmhpZGUoKQorICAgICAgICAg c2VsZi5yZXNpemVfYnV0dG9uLnNldFN0eWxlU2hlZXQoJ1FQdXNoQnV0dG9uIHsgbWFyZ2luOiAx MHB4OyBwYWRkaW5nOiAycHg7IH0nKQorQEAgLTEyNTEsNyArMTQ0MCw2IEBAIGRlZiBfX2luaXRf XyhzZWxmLCB3YXRjaF9wcm9qZWN0PVRydWUsICphcmdzKToKKyAKKyAgICAgICAgICMgU2hvdyBQ cm9wZXJ0eSB0aW1lcgorICAgICAgICAgIyBUaW1lciB0byB1c2UgYSBkZWxheSBiZWZvcmUgc2Vu ZGluZyBNYXhTaXplQ2hhbmdlZCBzaWduYWxzIChzbyB3ZSBkb24ndCBzcGFtIGxpYm9wZW5zaG90 KQorLSAgICAgICAgc2VsZi5kZWxheWVkX3NpemUgPSBOb25lCisgICAgICAgICBzZWxmLmRlbGF5 ZWRfcmVzaXplX3RpbWVyID0gUVRpbWVyKHNlbGYpCisgICAgICAgICBzZWxmLmRlbGF5ZWRfcmVz aXplX3RpbWVyLnNldEludGVydmFsKDIwMCkKKyAgICAgICAgIHNlbGYuZGVsYXllZF9yZXNpemVf dGltZXIuc2V0U2luZ2xlU2hvdChUcnVlKQorZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZXdz L2VmZmVjdHNfbGlzdHZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3cy9lZmZlY3RzX2xpc3R2aWV3 LnB5CitpbmRleCBiN2RhMjhkYzQuLjNjZTNiNDE2NCAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dz L3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVj dHNfbGlzdHZpZXcucHkKK0BAIC0zNiw3ICszNiw4IEBACisgCisgY2xhc3MgRWZmZWN0c0xpc3RW aWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIFRyZWVWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUg bWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVt X3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQs IDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAg ICAjIFNldCBjb250ZXh0IG1lbnUgbW9kZQorQEAgLTY5LDggKzcwLDggQEAgZGVmIHN0YXJ0RHJh ZyhzZWxmLCBldmVudCk6CisgICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAgICAg ICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURhdGEoc2VsZi5tb2Rl bCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4 bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVtX3NpemUpKSkKKy0g ICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIsIHNl bGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4 bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRIb3RTcG90KHNlbGYu ZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRyYWcuZXhlY18oKQorIAorICAgICBkZWYgZmls dGVyX2NoYW5nZWQoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3Mvdmlld3MvZWZmZWN0 c190cmVldmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfdHJlZXZpZXcucHkKK2lu ZGV4IDZhNWFiNzlmNC4uOTEwNTkzNTI0IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmlld3Mv ZWZmZWN0c190cmVldmlldy5weQorKysrIGIvc3JjL3dpbmRvd3Mvdmlld3MvZWZmZWN0c190cmVl dmlldy5weQorQEAgLTM2LDcgKzM2LDggQEAKKyAKKyBjbGFzcyBFZmZlY3RzVHJlZVZpZXcoUVRy ZWVWaWV3KToKKyAgICAgIiIiIEEgVHJlZVZpZXcgUVdpZGdldCB1c2VkIG9uIHRoZSBtYWluIHdp bmRvdyAiIiIKKy0gICAgZHJhZ19pdGVtX3NpemUgPSA0OAorKyAgICBkcmFnX2l0ZW1fc2l6ZSA9 IFFTaXplKDQ4LCA0OCkKKysgICAgZHJhZ19pdGVtX2NlbnRlciA9IFFQb2ludCgyNCwgMjQpCisg CisgICAgIGRlZiBjb250ZXh0TWVudUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICMgU2V0 IGNvbnRleHQgbWVudSBtb2RlCitAQCAtNzAsOCArNzEsOCBAQCBkZWYgc3RhcnREcmFnKHNlbGYs IHN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAgIyBTdGFydCBkcmFnIG9wZXJhdGlvbgorICAg ICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYu bW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29u LnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkp CistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAy LCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29u LnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChz ZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFnLmV4ZWNfKCkKKyAKKyAgICAgZGVm IHJlZnJlc2hfY29sdW1ucyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9l bW9qaXNfbGlzdHZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3cy9lbW9qaXNfbGlzdHZpZXcucHkK K2luZGV4IDZmMDliYzU2Mi4uY2IxM2MzNWE3IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmll d3MvZW1vamlzX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy9lbW9qaXNfbGlz dHZpZXcucHkKK0BAIC0zOSw3ICszOSw4IEBACisgCisgY2xhc3MgRW1vamlzTGlzdFZpZXcoUUxp c3RWaWV3KToKKyAgICAgIiIiIEEgUUxpc3RWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3 aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUg PSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQor IAorICAgICBkZWYgZHJhZ0VudGVyRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBJZiBk cmFnZ2luZyB1cmxzIG9udG8gd2lkZ2V0LCBhY2NlcHQKK0BAIC01Nyw4ICs1OCw4IEBAIGRlZiBz dGFydERyYWcoc2VsZiwgZXZlbnQpOgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAg ICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwubWltZURhdGEoc2VsZWN0ZWQpKQorICAg ICAgICAgaWNvbiA9IHNlbGYubW9kZWwuZGF0YShzZWxlY3RlZFswXSwgUXQuRGVjb3JhdGlvblJv bGUpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdf aXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNw b3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8g MikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9z aXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisg CisgICAgICAgICAjIENyZWF0ZSBlbW9qaSBmaWxlIGJlZm9yZSBkcmFnIHN0YXJ0cworICAgICAg ICAgZGF0YSA9IGpzb24ubG9hZHMoZHJhZy5taW1lRGF0YSgpLnRleHQoKSkKK2RpZmYgLS1naXQg YS9zcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdz L2ZpbGVzX2xpc3R2aWV3LnB5CitpbmRleCA4M2NkZDAyNzIuLjBlNjczMDZhZSAxMDA2NDQKKy0t LSBhL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93 cy92aWV3cy9maWxlc19saXN0dmlldy5weQorQEAgLTM4LDcgKzM4LDggQEAKKyAKKyBjbGFzcyBG aWxlc0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIExpc3RWaWV3IFFXaWRnZXQgdXNl ZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAg ZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBR UG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVudCk6 CisgICAgICAgICBldmVudC5hY2NlcHQoKQorQEAgLTExMyw4ICsxMTQsOCBAQCBkZWYgc3RhcnRE cmFnKHNlbGYsIHN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAgIyBTdGFydCBkcmFnIG9wZXJh dGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVE YXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAgICBkcmFnLnNldFBp eG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRl bV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVt X3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBp eG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0 SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFnLmV4ZWNfKCkKKyAK KyAgICAgIyBXaXRob3V0IGRlZmluaW5nIHRoaXMgbWV0aG9kLCB0aGUgJ2NvcHknIGFjdGlvbiBk b2Vzbid0IHNob3cgd2l0aCBjdXJzb3IKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9m aWxlc190cmVldmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5Citp bmRleCBkM2ZlNzRkODguLjc3NmI3MWNjMiAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdz L2ZpbGVzX3RyZWV2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy9maWxlc190cmVldmll dy5weQorQEAgLTQxLDcgKzQxLDggQEAKKyAKKyBjbGFzcyBGaWxlc1RyZWVWaWV3KFFUcmVlVmll dyk6CisgICAgICIiIiBBIFRyZWVWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cg IiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6 ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAg ICBkZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVudCk6CisgCitAQCAtMTE0LDggKzExNSw4 IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgc3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICAjIFN0 YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAgICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAg IGRyYWcuc2V0TWltZURhdGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAg ICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUs IHNlbGYuZHJhZ19pdGVtX3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQo c2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAg ICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAg ICAgICAgZHJhZy5zZXRIb3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRy YWcuZXhlY18oKQorIAorICAgICAjIFdpdGhvdXQgZGVmaW5pbmcgdGhpcyBtZXRob2QsIHRoZSAn Y29weScgYWN0aW9uIGRvZXNuJ3Qgc2hvdyB3aXRoIGN1cnNvcgorZGlmZiAtLWdpdCBhL3NyYy93 aW5kb3dzL3ZpZXdzL3Byb3BlcnRpZXNfdGFibGV2aWV3LnB5IGIvc3JjL3dpbmRvd3Mvdmlld3Mv cHJvcGVydGllc190YWJsZXZpZXcucHkKK2luZGV4IGU3OWIxMzY0NC4uZmRhYTdlZTI0IDEwMDY0 NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZpZXcucHkKKysrKyBi L3NyYy93aW5kb3dzL3ZpZXdzL3Byb3BlcnRpZXNfdGFibGV2aWV3LnB5CitAQCAtNTMsOCArNTMs MTMgQEAKKyAKKyAKKyBjbGFzcyBQcm9wZXJ0eURlbGVnYXRlKFFJdGVtRGVsZWdhdGUpOgorLSAg ICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50PU5vbmUsICphcmdzKToKKy0gICAgICAgIFFJdGVt RGVsZWdhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCAqYXJncykKKysgICAgZGVmIF9faW5pdF9f KHNlbGYsIHBhcmVudD1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorKworKyAgICAgICAgc2VsZi5t b2RlbCA9IGt3YXJncy5wb3AoIm1vZGVsIiwgTm9uZSkKKysgICAgICAgIGlmIG5vdCBzZWxmLm1v ZGVsOgorKyAgICAgICAgICAgIGxvZy5lcnJvcigiQ2Fubm90IGNyZWF0ZSBkZWxlZ2F0ZSB3aXRo b3V0IGRhdGEgbW9kZWwhIikKKysKKysgICAgICAgIHN1cGVyKCkuX19pbml0X18ocGFyZW50LCAq YXJncywgKiprd2FyZ3MpCisgCisgICAgICAgICAjIHBpeG1hcHMgZm9yIGN1cnZlIGljb25zCisg ICAgICAgICBzZWxmLmN1cnZlX3BpeG1hcHMgPSB7CitAQCAtNjgsNyArNzMsNyBAQCBkZWYgcGFp bnQoc2VsZiwgcGFpbnRlciwgb3B0aW9uLCBpbmRleCk6CisgICAgICAgICBwYWludGVyLnNldFJl bmRlckhpbnQoUVBhaW50ZXIuQW50aWFsaWFzaW5nKQorIAorICAgICAgICAgIyBHZXQgZGF0YSBt b2RlbCBhbmQgc2VsZWN0aW9uCistICAgICAgICBtb2RlbCA9IGdldF9hcHAoKS53aW5kb3cucHJv cGVydHlUYWJsZVZpZXcuY2xpcF9wcm9wZXJ0aWVzX21vZGVsLm1vZGVsCisrICAgICAgICBtb2Rl bCA9IHNlbGYubW9kZWwKKyAgICAgICAgIHJvdyA9IG1vZGVsLml0ZW1Gcm9tSW5kZXgoaW5kZXgp LnJvdygpCisgICAgICAgICBzZWxlY3RlZF9sYWJlbCA9IG1vZGVsLml0ZW0ocm93LCAwKQorICAg ICAgICAgc2VsZWN0ZWRfdmFsdWUgPSBtb2RlbC5pdGVtKHJvdywgMSkKK0BAIC0xMDQsMTYgKzEw OSwxNiBAQCBkZWYgcGFpbnQoc2VsZiwgcGFpbnRlciwgb3B0aW9uLCBpbmRleCk6CisgICAgICAg ICBwYWludGVyLnNldFBlbihRUGVuKFF0Lk5vUGVuKSkKKyAgICAgICAgIGlmIHByb3BlcnR5X3R5 cGUgPT0gImNvbG9yIjoKKyAgICAgICAgICAgICAjIENvbG9yIGtleWZyYW1lCistICAgICAgICAg ICAgcmVkID0gY3VyX3Byb3BlcnR5WzFdWyJyZWQiXVsidmFsdWUiXQorLSAgICAgICAgICAgIGdy ZWVuID0gY3VyX3Byb3BlcnR5WzFdWyJncmVlbiJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgYmx1 ZSA9IGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgcGFpbnRl ci5zZXRCcnVzaChRQnJ1c2goUUNvbG9yKFFDb2xvcihyZWQsIGdyZWVuLCBibHVlKSkpKQorKyAg ICAgICAgICAgIHJlZCA9IGludChjdXJfcHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdKQorKyAg ICAgICAgICAgIGdyZWVuID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXSkK KysgICAgICAgICAgICBibHVlID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJd KQorKyAgICAgICAgICAgIHBhaW50ZXIuc2V0QnJ1c2goUUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUp KQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAjIE5vcm1hbCBLZXlmcmFtZQorICAgICAg ICAgICAgIGlmIG9wdGlvbi5zdGF0ZSAmIFFTdHlsZS5TdGF0ZV9TZWxlY3RlZDoKKy0gICAgICAg ICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChRQnJ1c2goUUNvbG9yKCIjNTc1NzU3IikpKQorKyAg ICAgICAgICAgICAgICBwYWludGVyLnNldEJydXNoKFFDb2xvcigiIzU3NTc1NyIpKQorICAgICAg ICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0QnJ1c2goUUJydXNoKFFD b2xvcigiIzNlM2UzZSIpKSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChRQ29s b3IoIiMzZTNlM2UiKSkKKyAKKyAgICAgICAgIGlmIHJlYWRvbmx5OgorICAgICAgICAgICAgICMg U2V0IHRleHQgY29sb3IgZm9yIHJlYWQgb25seSBmaWVsZHMKK0BAIC0xNDYsNyArMTUxLDEwIEBA IGRlZiBwYWludChzZWxmLCBwYWludGVyLCBvcHRpb24sIGluZGV4KToKKyAKKyAgICAgICAgICAg ICBpZiBwb2ludHMgPiAxOgorICAgICAgICAgICAgICAgICAjIERyYXcgaW50ZXJwb2xhdGlvbiBp Y29uIG9uIHRvcAorLSAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdQaXhtYXAob3B0aW9uLnJl Y3QueCgpICsgb3B0aW9uLnJlY3Qud2lkdGgoKSAtIDMwLjAsIG9wdGlvbi5yZWN0LnkoKSArIDQs IHNlbGYuY3VydmVfcGl4bWFwc1tpbnRlcnBvbGF0aW9uXSkKKysgICAgICAgICAgICAgICAgcGFp bnRlci5kcmF3UGl4bWFwKAorKyAgICAgICAgICAgICAgICAgICAgaW50KG9wdGlvbi5yZWN0Lngo KSArIG9wdGlvbi5yZWN0LndpZHRoKCkgLSAzMC4wKSwKKysgICAgICAgICAgICAgICAgICAgIGlu dChvcHRpb24ucmVjdC55KCkgKyA0KSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VydmVf cGl4bWFwc1tpbnRlcnBvbGF0aW9uXSkKKyAKKyAgICAgICAgICAgICAjIFNldCB0ZXh0IGNvbG9y CisgICAgICAgICAgICAgcGFpbnRlci5zZXRQZW4oUVBlbihRdC53aGl0ZSkpCitAQCAtODE4LDkg KzgyNiw5IEBAIGRlZiBDb2xvcl9QaWNrZXJfVHJpZ2dlcmVkKHNlbGYsIGN1cl9wcm9wZXJ0eSk6 CisgICAgICAgICBfID0gZ2V0X2FwcCgpLl90cgorIAorICAgICAgICAgIyBHZXQgY3VycmVudCB2 YWx1ZSBvZiBjb2xvcgorLSAgICAgICAgcmVkID0gY3VyX3Byb3BlcnR5WzFdWyJyZWQiXVsidmFs dWUiXQorLSAgICAgICAgZ3JlZW4gPSBjdXJfcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0K Ky0gICAgICAgIGJsdWUgPSBjdXJfcHJvcGVydHlbMV1bImJsdWUiXVsidmFsdWUiXQorKyAgICAg ICAgcmVkID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsicmVkIl1bInZhbHVlIl0pCisrICAgICAgICBn cmVlbiA9IGludChjdXJfcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0pCisrICAgICAgICBi bHVlID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdKQorIAorICAgICAgICAg IyBTaG93IGNvbG9yIGRpYWxvZworICAgICAgICAgY3VycmVudENvbG9yID0gUUNvbG9yKHJlZCwg Z3JlZW4sIGJsdWUpCitAQCAtODY1LDcgKzg3Myw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn cyk6CisgICAgICAgICBzZWxmLmZpbGVzX21vZGVsID0gc2VsZi53aW4uZmlsZXNfbW9kZWwubW9k ZWwKKyAKKyAgICAgICAgICMgQ29ubmVjdCB0byB1cGRhdGUgc2lnbmFscywgc28gb3VyIG1lbnVz IHN0YXkgY3VycmVudAorLSAgICAgICAgc2VsZi53aW4uZmlsZXNfbW9kZWwuTW9kZWxSZWZyZXNo ZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVudSkKKysgICAgICAgIHNlbGYuZmlsZXNfbW9kZWwu ZGF0YUNoYW5nZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVudSkKKyAgICAgICAgIHNlbGYud2lu LnRyYW5zaXRpb25fbW9kZWwuTW9kZWxSZWZyZXNoZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVu dSkKKyAgICAgICAgIHNlbGYubWVudV9yZXNldCA9IEZhbHNlCisgCitAQCAtODkwLDcgKzg5OCw3 IEBAIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgICBzZWxmLnNldFdvcmRXcmFw KFRydWUpCisgCisgICAgICAgICAjIFNldCBkZWxlZ2F0ZQorLSAgICAgICAgZGVsZWdhdGUgPSBQ cm9wZXJ0eURlbGVnYXRlKCkKKysgICAgICAgIGRlbGVnYXRlID0gUHJvcGVydHlEZWxlZ2F0ZSht b2RlbD1zZWxmLmNsaXBfcHJvcGVydGllc19tb2RlbC5tb2RlbCkKKyAgICAgICAgIHNlbGYuc2V0 SXRlbURlbGVnYXRlRm9yQ29sdW1uKDEsIGRlbGVnYXRlKQorICAgICAgICAgc2VsZi5wcmV2aW91 c194ID0gLTEKKyAKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc19s aXN0dmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL3RyYW5zaXRpb25zX2xpc3R2aWV3LnB5Citp bmRleCAwOWFmODZiMmIuLjNiYTMzNDZmNSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdz L3RyYW5zaXRpb25zX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0 aW9uc19saXN0dmlldy5weQorQEAgLTM2LDcgKzM2LDggQEAKKyAKKyBjbGFzcyBUcmFuc2l0aW9u c0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIFFMaXN0VmlldyBRV2lkZ2V0IHVzZWQg b24gdGhlIG1haW4gd2luZG93ICIiIgorLSAgICBkcmFnX2l0ZW1fc2l6ZSA9IDQ4CisrICAgIGRy YWdfaXRlbV9zaXplID0gUVNpemUoNDgsIDQ4KQorKyAgICBkcmFnX2l0ZW1fY2VudGVyID0gUVBv aW50KDI0LCAyNCkKKyAKKyAgICAgZGVmIGNvbnRleHRNZW51RXZlbnQoc2VsZiwgZXZlbnQpOgor ICAgICAgICAgZXZlbnQuYWNjZXB0KCkKK0BAIC03MCw4ICs3MSw4IEBAIGRlZiBzdGFydERyYWco c2VsZiwgc3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9u CisgICAgICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURhdGEo c2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4bWFw KGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVtX3Np emUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6 ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4bWFw KGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRIb3RT cG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRyYWcuZXhlY18oKQorIAorICAg ICBkZWYgZmlsdGVyX2NoYW5nZWQoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3Mvdmll d3MvdHJhbnNpdGlvbnNfdHJlZXZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9u c190cmVldmlldy5weQoraW5kZXggNmY5MDNlOTEzLi43YWEwY2Q0ODEgMTAwNjQ0CistLS0gYS9z cmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc190cmVldmlldy5weQorKysrIGIvc3JjL3dpbmRv d3Mvdmlld3MvdHJhbnNpdGlvbnNfdHJlZXZpZXcucHkKK0BAIC0zNiw3ICszNiw4IEBACisgCisg Y2xhc3MgVHJhbnNpdGlvbnNUcmVlVmlldyhRVHJlZVZpZXcpOgorICAgICAiIiIgQSBUcmVlVmll dyBRV2lkZ2V0IHVzZWQgb24gdGhlIG1haW4gd2luZG93ICIiIgorLSAgICBkcmFnX2l0ZW1fc2l6 ZSA9IDQ4CisrICAgIGRyYWdfaXRlbV9zaXplID0gUVNpemUoNDgsIDQ4KQorKyAgICBkcmFnX2l0 ZW1fY2VudGVyID0gUVBvaW50KDI0LCAyNCkKKyAKKyAgICAgZGVmIGNvbnRleHRNZW51RXZlbnQo c2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBTZXQgY29udGV4dCBtZW51IG1vZGUKK0BAIC02OCw4 ICs2OSw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBTdGFydCBk cmFnIG9wZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFn LnNldE1pbWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAgICBk cmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxm LmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYu ZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBk cmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAg IGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFnLmV4 ZWNfKCkKKyAKKyAgICAgZGVmIHJlZnJlc2hfY29sdW1ucyhzZWxmKToKK2RpZmYgLS1naXQgYS9z cmMvd2luZG93cy92aWV3cy90dXRvcmlhbC5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL3R1dG9yaWFs LnB5CitpbmRleCBlMmQ3ZmI4NjEuLjI0MTI0Nzk5ZiAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dz L3ZpZXdzL3R1dG9yaWFsLnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy90dXRvcmlhbC5weQor QEAgLTUzLDcgKzUzLDEyIEBAIGRlZiBwYWludEV2ZW50KHNlbGYsIGV2ZW50LCAqYXJncyk6Cisg CisgICAgICAgICBwYWludGVyLnNldFBlbihRUGVuKGZyYW1lQ29sb3IsIDIpKQorICAgICAgICAg cGFpbnRlci5zZXRCcnVzaChzZWxmLnBhbGV0dGUoKS5jb2xvcihRUGFsZXR0ZS5XaW5kb3cpKQor LSAgICAgICAgcGFpbnRlci5kcmF3Um91bmRlZFJlY3QoUVJlY3RGKDMxLCAwLCBzZWxmLndpZHRo KCkgLSAzMSwgc2VsZi5oZWlnaHQoKSksIDEwLCAxMCkKKysgICAgICAgIHBhaW50ZXIuZHJhd1Jv dW5kZWRSZWN0KAorKyAgICAgICAgICAgIFFSZWN0RigzMSwgMCwKKysgICAgICAgICAgICAgICAg ICAgc2VsZi53aWR0aCgpIC0gMzEsCisrICAgICAgICAgICAgICAgICAgIHNlbGYuaGVpZ2h0KCkK KysgICAgICAgICAgICAgICAgICAgKSwKKysgICAgICAgICAgICAxMCwgMTApCisgCisgICAgICAg ICAjIFBhaW50IGJsdWUgdHJpYW5nbGUgKGlmIG5lZWRlZCkKKyAgICAgICAgIGlmIHNlbGYuYXJy b3c6CitAQCAtNjEsNyArNjYsOCBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3Mp OgorICAgICAgICAgICAgIHBhdGggPSBRUGFpbnRlclBhdGgoKQorICAgICAgICAgICAgIHBhdGgu bW92ZVRvKDAsIDM1KQorICAgICAgICAgICAgIHBhdGgubGluZVRvKDMxLCAzNSAtIGFycm93X2hl aWdodCkKKy0gICAgICAgICAgICBwYXRoLmxpbmVUbygzMSwgKDM1IC0gYXJyb3dfaGVpZ2h0KSAr IChhcnJvd19oZWlnaHQgKiAyKSkKKysgICAgICAgICAgICBwYXRoLmxpbmVUbygKKysgICAgICAg ICAgICAgICAgMzEsIGludCgoMzUgLSBhcnJvd19oZWlnaHQpICsgKGFycm93X2hlaWdodCAqIDIp KSkKKyAgICAgICAgICAgICBwYXRoLmxpbmVUbygwLCAzNSkKKyAgICAgICAgICAgICBwYWludGVy LmZpbGxQYXRoKHBhdGgsIGZyYW1lQ29sb3IpCisgCitAQCAtMTk5LDcgKzIwNSw5IEBAIGRlZiBw cm9jZXNzKHNlbGYsIHBhcmVudF9uYW1lPU5vbmUpOgorIAorICAgICAgICAgICAgICMgQ3JlYXRl IHR1dG9yaWFsCisgICAgICAgICAgICAgc2VsZi5wb3NpdGlvbl93aWRnZXQgPSB0dXRvcmlhbF9v YmplY3QKKy0gICAgICAgICAgICBzZWxmLm9mZnNldCA9IFFQb2ludCh0dXRvcmlhbF9kZXRhaWxz WyJ4Il0sIHR1dG9yaWFsX2RldGFpbHNbInkiXSkKKysgICAgICAgICAgICBzZWxmLm9mZnNldCA9 IFFQb2ludCgKKysgICAgICAgICAgICAgICAgaW50KHR1dG9yaWFsX2RldGFpbHNbIngiXSksCisr ICAgICAgICAgICAgICAgIGludCh0dXRvcmlhbF9kZXRhaWxzWyJ5Il0pKQorICAgICAgICAgICAg IHR1dG9yaWFsX2RpYWxvZyA9IFR1dG9yaWFsRGlhbG9nKHR1dG9yaWFsX2lkLCB0dXRvcmlhbF9k ZXRhaWxzWyJ0ZXh0Il0sIHR1dG9yaWFsX2RldGFpbHNbImFycm93Il0sIHNlbGYpCisgCisgICAg ICAgICAgICAgIyBDb25uZWN0IHNpZ25hbHMKKworRnJvbSA5ZmM1NTEyMGYzNmMzNmIyYjZiNjdl NDk5MTI4OTkzYzI1ZTUzNWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkZlUkQg KEZyYW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+CitEYXRlOiBUaHUsIDQgTm92IDIwMjEg MjE6MDI6NTYgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzZdIFZpZGVvV2lkZ2V0OiBOZXcgY2hl Y2tUcmFuc2Zvcm1Nb2RlCisKK1JlcGxhY2VtZW50IGZvciBnZXRUcmFuc2Zvcm1Nb2RlIHdpdGgg bGVzcyByZXBldGl0aW91cyBjb2RlCistLS0KKyBzcmMvd2luZG93cy92aWRlb193aWRnZXQucHkg fCAxNjAgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5n ZWQsIDYxIGluc2VydGlvbnMoKyksIDk5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5IGIvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5Citp bmRleCBmMzM2OTZjNWMuLjFiOWMzNWI1NCAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZGVv X3dpZGdldC5weQorKysrIGIvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5CitAQCAtNjEwLDEw NiArNjEwLDY4IEBAIGRlZiByb3RhdGVDdXJzb3Ioc2VsZiwgcGl4bWFwLCByb3RhdGlvbiwgc2hl YXJfeCwgc2hlYXJfeSk6CisgICAgICAgICAgICAgUXQuU21vb3RoVHJhbnNmb3JtYXRpb24pCisg ICAgICAgICByZXR1cm4gUUN1cnNvcihyb3RhdGVkX3BpeG1hcCkKKyAKKy0gICAgZGVmIGdldFRy YW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50KToKKysg ICAgZGVmIGNoZWNrVHJhbnNmb3JtTW9kZShzZWxmLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJf eSwgZXZlbnQpOgorKyAgICAgICAgaGFuZGxlX3VpcyA9IFsKKysgICAgICAgICAgICB7ImhhbmRs ZSI6IHNlbGYuY2VudGVySGFuZGxlLCAibW9kZSI6ICdvcmlnaW4nLCAiY3Vyc29yIjogJ2hhbmQn fSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYudG9wUmlnaHRIYW5kbGUsICJtb2RlIjog J3NjYWxlX3RvcF9yaWdodCcsICJjdXJzb3IiOiAncmVzaXplX2JkaWFnJ30sCisrICAgICAgICAg ICAgeyJoYW5kbGUiOiBzZWxmLnRvcEhhbmRsZSwgIm1vZGUiOiAnc2NhbGVfdG9wJywgImN1cnNv ciI6ICdyZXNpemVfeSd9LAorKyAgICAgICAgICAgIHsiaGFuZGxlIjogc2VsZi50b3BMZWZ0SGFu ZGxlLCAibW9kZSI6ICdzY2FsZV90b3BfbGVmdCcsICJjdXJzb3IiOiAncmVzaXplX2ZkaWFnJ30s CisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLmxlZnRIYW5kbGUsICJtb2RlIjogJ3NjYWxl X2xlZnQnLCAiY3Vyc29yIjogJ3Jlc2l6ZV94J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBz ZWxmLnJpZ2h0SGFuZGxlLCAibW9kZSI6ICdzY2FsZV9yaWdodCcsICJjdXJzb3IiOiAncmVzaXpl X3gnfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYuYm90dG9tTGVmdEhhbmRsZSwgIm1v ZGUiOiAnc2NhbGVfYm90dG9tX2xlZnQnLCAiY3Vyc29yIjogJ3Jlc2l6ZV9iZGlhZyd9LAorKyAg ICAgICAgICAgIHsiaGFuZGxlIjogc2VsZi5ib3R0b21IYW5kbGUsICJtb2RlIjogJ3NjYWxlX2Jv dHRvbScsICJjdXJzb3IiOiAncmVzaXplX3knfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNl bGYuYm90dG9tUmlnaHRIYW5kbGUsICJtb2RlIjogJ3NjYWxlX2JvdHRvbV9yaWdodCcsICJjdXJz b3IiOiAncmVzaXplX2ZkaWFnJ30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnRvcFNo ZWFySGFuZGxlLCAibW9kZSI6ICdzaGVhcl90b3AnLCAiY3Vyc29yIjogJ3NoZWFyX3gnfSwKKysg ICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYubGVmdFNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVh cl9sZWZ0JywgImN1cnNvciI6ICdzaGVhcl95J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBz ZWxmLnJpZ2h0U2hlYXJIYW5kbGUsICJtb2RlIjogJ3NoZWFyX3JpZ2h0JywgImN1cnNvciI6ICdz aGVhcl95J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLmJvdHRvbVNoZWFySGFuZGxl LCAibW9kZSI6ICdzaGVhcl9ib3R0b20nLCAiY3Vyc29yIjogJ3NoZWFyX3gnfSwKKysgICAgICAg IF0KKysgICAgICAgIG5vbl9oYW5kbGVfdWlzID0geworKyAgICAgICAgICAgICJyZWdpb24iOiBz ZWxmLmNsaXBCb3VuZHMsCisrICAgICAgICAgICAgImluc2lkZSI6IHsibW9kZSI6ICdsb2NhdGlv bicsICJjdXJzb3IiOiAnbW92ZSd9LAorKyAgICAgICAgICAgICJvdXRzaWRlIjogeyJtb2RlIjog J3JvdGF0aW9uJywgImN1cnNvciI6ICJyb3RhdGUifQorKyAgICAgICAgICAgIH0KKysKKyAgICAg ICAgICMgTW91c2Ugb3ZlciByZXNpemUgYnV0dG9uIChhbmQgbm90IGN1cnJlbnRseSBkcmFnZ2lu ZykKKy0gICAgICAgIGlmIG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBzZWxmLnJlc2l6ZV9i dXR0b24uaXNWaXNpYmxlKCkgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5yZWN0KCkuY29udGFpbnMo ZXZlbnQucG9zKCkpOgorKyAgICAgICAgaWYgKG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nCisrICAg ICAgICAgICAgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5pc1Zpc2libGUoKQorKyAgICAgICAgICAg IGFuZCBzZWxmLnJlc2l6ZV9idXR0b24ucmVjdCgpLmNvbnRhaW5zKGV2ZW50LnBvcygpCisrICAg ICAgICApOgorICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKFF0LkFycm93Q3Vyc29yKQorLSAg ICAgICAgIyBEZXRlcm1pbmUgaWYgY3Vyc29yIGlzIG92ZXIgYSBoYW5kbGUKKy0gICAgICAgIGVs aWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHNlbGYuY2VudGVySGFuZGxlLnRvUmVjdCgp KS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAg ICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAn b3JpZ2luJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJz b3Ioc2VsZi5jdXJzb3JzLmdldCgnaGFuZCcpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkp CistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYg c2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAg ICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnb3JpZ2luJworLSAgICAgICAgZWxpZiBz ZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50b3BSaWdodEhhbmRsZS50b1JlY3QoKSku Y29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAg IGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3Nj YWxlX3RvcF9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90 YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9iZGlhZycpLCByb3RhdGlvbiwgc2hl YXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCist ICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3Jt X21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfdG9w X3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50 b3BIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5G aWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRy YW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3AnOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1 cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfeScpLCByb3Rh dGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9y bSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYu dHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAn c2NhbGVfdG9wJworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2Vs Zi50b3BMZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5P ZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Ig c2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfdG9wX2xlZnQnOgorLSAgICAgICAgICAgICAg ICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNp emVfZmRpYWcnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMg U2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dp bmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRy YW5zZm9ybV9tb2RlID0gJ3NjYWxlX3RvcF9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5z Zm9ybS5tYXBUb1BvbHlnb24oc2VsZi5sZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50 KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYu dHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfbGVmdCc6Cist ICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vy c29ycy5nZXQoJ3Jlc2l6ZV94JyksIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95KSkKKy0gICAg ICAgICAgICAjIFNldCB0aGUgdHJhbnNmb3JtIG1vZGUKKy0gICAgICAgICAgICBpZiBzZWxmLm1v dXNlX2RyYWdnaW5nIGFuZCBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKy0gICAgICAgICAgICAg ICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9ICdzY2FsZV9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxm LnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5yaWdodEhhbmRsZS50b1JlY3QoKSkuY29udGFp bnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5v dCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3Jp Z2h0JzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3Io c2VsZi5jdXJzb3JzLmdldCgncmVzaXplX3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kp KQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlm IHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAg ICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NjYWxlX3JpZ2h0JworLSAgICAgICAg ZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21MZWZ0SGFuZGxlLnRv UmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAg ICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9k ZSA9PSAnc2NhbGVfYm90dG9tX2xlZnQnOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNv cihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfYmRpYWcnKSwgcm90 YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zv cm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxm LnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0g J3NjYWxlX2JvdHRvbV9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1Bv bHlnb24oc2VsZi5ib3R0b21IYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9z KCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1f bW9kZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV9ib3R0b20nOgorLSAgICAgICAg ICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0 KCdyZXNpemVfeScpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAg IyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFn Z2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYu dHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfYm90dG9tJworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5z Zm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21SaWdodEhhbmRsZS50b1JlY3QoKSkuY29udGFp bnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5v dCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2Jv dHRvbV9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRl Q3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9mZGlhZycpLCByb3RhdGlvbiwgc2hlYXJf eCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAg ICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21v ZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfYm90dG9t X3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50 b3BTaGVhckhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2Rk RXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNl bGYudHJhbnNmb3JtX21vZGUgPT0gJ3NoZWFyX3RvcCc6CistICAgICAgICAgICAgICAgIHNlbGYu c2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3gnKSwg cm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFu c2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBz ZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2Rl ID0gJ3NoZWFyX3RvcCcKKy0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29u KHNlbGYubGVmdFNoZWFySGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygp LCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21v ZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2hlYXJfbGVmdCc6CistICAgICAgICAgICAg ICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3No ZWFyX3knKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0 IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcg YW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5z Zm9ybV9tb2RlID0gJ3NoZWFyX2xlZnQnCistICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtLm1h cFRvUG9seWdvbihzZWxmLnJpZ2h0U2hlYXJIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQo ZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2VsZi50 cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzaGVhcl9yaWdodCc6Cist ICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vy c29ycy5nZXQoJ3NoZWFyX3knKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAg ICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91 c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAg ICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxm LnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21TaGVhckhhbmRsZS50b1JlY3QoKSku Y29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAg IGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3No ZWFyX2JvdHRvbSc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRl Q3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNo ZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAg ICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgor LSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX2JvdHRvbScKKy0g ICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHNlbGYuY2xpcEJvdW5kcy50 b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAg ICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21v ZGUgPT0gJ2xvY2F0aW9uJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5y b3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgnbW92ZScpLCByb3RhdGlvbiwgc2hlYXJfeCwg c2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAg ICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6 CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnbG9jYXRpb24nCistICAg ICAgICBlbGlmIG5vdCBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5jbGlwQm91bmRz LnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6Cist ICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1f bW9kZSA9PSAncm90YXRpb24nOgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxm LnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyb3RhdGUnKSwgcm90YXRpb24sIHNoZWFy X3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAg ICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9t b2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3JvdGF0aW9uJwor LSAgICAgICAgZWxpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKy0gICAgICAgICAgICAjIFJl c2V0IGN1cnNvciB3aGVuIG5vdCBvdmVyIGEgaGFuZGxlCistICAgICAgICAgICAgc2VsZi5zZXRD dXJzb3IoUUN1cnNvcihRdC5BcnJvd0N1cnNvcikpCisrICAgICAgICAgICAgc2VsZi50cmFuc2Zv cm1fbW9kZSA9IE5vbmUKKysgICAgICAgICAgICByZXR1cm4KKysKKysgICAgICAgICMgSWYgbW91 c2UgaXMgb3ZlciBhIGhhbmRsZSwgc2V0IGNvcnJlc3BvbmRpbmcgcG9pbnRlci9tb2RlCisrICAg ICAgICBmb3IgaCBpbiBoYW5kbGVfdWlzOgorKyAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3Jt Lm1hcFRvUG9seWdvbigKKysgICAgICAgICAgICAgICAgICAgIGhbImhhbmRsZSJdLnRvUmVjdCgp CisrICAgICAgICAgICAgICAgICAgICApLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9k ZEV2ZW5GaWxsKToKKysgICAgICAgICAgICAgICAgIyBIYW5kbGUgY29udGFpbnMgY3Vyc29yCisr ICAgICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21vZGUgYW5kIHNlbGYudHJhbnNmb3Jt X21vZGUgIT0gaFsibW9kZSJdOgorKyAgICAgICAgICAgICAgICAgICAgIyBXZSdyZSBpbiBkaWZm ZXJlbnQgeGZvcm0gbW9kZSwgc2tpcAorKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKysg ICAgICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZzoKKysgICAgICAgICAgICAgICAg ICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSBoWyJtb2RlIl0KKysgICAgICAgICAgICAgICAgc2Vs Zi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3IoCisrICAgICAgICAgICAgICAgICAgICBzZWxm LmN1cnNvcnMuZ2V0KGhbImN1cnNvciJdKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQor KyAgICAgICAgICAgICAgICByZXR1cm4KKysKKysgICAgICAgICMgSWYgbm90IG92ZXIgYW55IGhh bmRsZXMsIGRldGVybW5lIGluc2lkZS9vdXRzaWRlIGNsaXAgcmVjdGFuZ2xlCisrICAgICAgICBy ID0gbm9uX2hhbmRsZV91aXMuZ2V0KCJyZWdpb24iKQorKyAgICAgICAgaWYgc2VsZi50cmFuc2Zv cm0ubWFwVG9Qb2x5Z29uKHIudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0 Lk9kZEV2ZW5GaWxsKToKKysgICAgICAgICAgICBuaCA9IG5vbl9oYW5kbGVfdWlzLmdldCgiaW5z aWRlIiwge30pCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIG5oID0gbm9uX2hhbmRsZV91 aXMuZ2V0KCJvdXRzaWRlIiwge30pCisrICAgICAgICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nIGFu ZCBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKysgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9t b2RlID0gbmguZ2V0KCJtb2RlIikKKysgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2Rl IG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gbmguZ2V0KCJtb2RlIik6CisrICAgICAgICAgICAg c2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3IoCisrICAgICAgICAgICAgICAgIHNlbGYu Y3Vyc29ycy5nZXQobmguZ2V0KCJjdXJzb3IiKSksIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95 KSkKKyAKKy0gICAgICAgIHJldHVybiBUcnVlCisrCisrICAgICAgICAjIElmIHdlIGdvdCB0aGlz IGZhciBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHRyYW5zZm9ybSBtb2RlLCByZXNldCB0aGUgY3Vyc29y CisrICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKysgICAgICAgICAgICBzZWxm LnNldEN1cnNvcihRQ3Vyc29yKFF0LkFycm93Q3Vyc29yKSkKKyAKKyAgICAgZGVmIG1vdXNlTW92 ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICIiIkNhcHR1cmUgbW91c2UgZXZlbnRzIG9u IHZpZGVvIHByZXZpZXcgd2luZG93ICIiIgorQEAgLTc0Niw3ICs3MDgsNyBAQCBkZWYgbW91c2VN b3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dp bmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorICAgICAgICAgICAgICAgICBzZWxmLm9y aWdpbmFsX2NsaXBfZGF0YSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YQorIAorLSAgICAg ICAgICAgIF8gPSBzZWxmLmdldFRyYW5zZm9ybU1vZGUocm90YXRpb24sIHNoZWFyX3gsIHNoZWFy X3ksIGV2ZW50KQorKyAgICAgICAgICAgIHNlbGYuY2hlY2tUcmFuc2Zvcm1Nb2RlKHJvdGF0aW9u LCBzaGVhcl94LCBzaGVhcl95LCBldmVudCkKKyAKKyAgICAgICAgICAgICAjIFRyYW5zZm9ybSBj bGlwIG9iamVjdAorICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21vZGU6CitAQCAtMTA0 MCw3ICsxMDAyLDcgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAg ICAgICAgICAgICAgIHNlbGYubXV0ZXgudW5sb2NrKCkKKyAgICAgICAgICAgICAgICAgICAgIHJl dHVybgorIAorLSAgICAgICAgICAgICAgICBfID0gc2VsZi5nZXRUcmFuc2Zvcm1Nb2RlKDAsIDAs IDAsIGV2ZW50KQorKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrVHJhbnNmb3JtTW9kZSgwLCAw LCAwLCBldmVudCkKKyAKKyAgICAgICAgICAgICAgICAgIyBUcmFuc2Zvcm0gZWZmZWN0IG9iamVj dAorICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlOgorCitGcm9tIDFmMDU4 ZjczMGJiMzYwNjhiY2U1YzY0NWVjZWE0NWI5ODI3OWI2MTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiAiRmVSRCAoRnJhbmsgRGFuYSkiIDxmZXJkbnljQGdtYWlsLmNvbT4KK0RhdGU6 IFRodSwgNCBOb3YgMjAyMSAyMTo0Mjo0OCAtMDQwMAorU3ViamVjdDogW1BBVENIIDQvNl0gVmlk ZW9XaWRnZXQ6IFByb3RlY3QgcHJvcGVydHkgYWNjZXNzZXMKKworLS0tCisgc3JjL3dpbmRvd3Mv dmlkZW9fd2lkZ2V0LnB5IHwgNjEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSBiL3NyYy93aW5kb3dzL3Zp ZGVvX3dpZGdldC5weQoraW5kZXggMWI5YzM1YjU0Li5hNGQ0Mjk2OWYgMTAwNjQ0CistLS0gYS9z cmMvd2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdl dC5weQorQEAgLTYzNSw3ICs2MzUsNyBAQCBkZWYgY2hlY2tUcmFuc2Zvcm1Nb2RlKHNlbGYsIHJv dGF0aW9uLCBzaGVhcl94LCBzaGVhcl95LCBldmVudCk6CisgICAgICAgICAjIE1vdXNlIG92ZXIg cmVzaXplIGJ1dHRvbiAoYW5kIG5vdCBjdXJyZW50bHkgZHJhZ2dpbmcpCisgICAgICAgICBpZiAo bm90IHNlbGYubW91c2VfZHJhZ2dpbmcKKyAgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0 dG9uLmlzVmlzaWJsZSgpCistICAgICAgICAgICAgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5yZWN0 KCkuY29udGFpbnMoZXZlbnQucG9zKCkKKysgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0 dG9uLnJlY3QoKS5jb250YWlucyhldmVudC5wb3MoKSkKKyAgICAgICAgICk6CisgICAgICAgICAg ICAgc2VsZi5zZXRDdXJzb3IoUXQuQXJyb3dDdXJzb3IpCisgICAgICAgICAgICAgc2VsZi50cmFu c2Zvcm1fbW9kZSA9IE5vbmUKK0BAIC02NjgsMTEgKzY2OCw2IEBAIGRlZiBjaGVja1RyYW5zZm9y bU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50KToKKyAgICAgICAg ICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcigKKyAgICAgICAgICAgICAgICAg c2VsZi5jdXJzb3JzLmdldChuaC5nZXQoImN1cnNvciIpKSwgcm90YXRpb24sIHNoZWFyX3gsIHNo ZWFyX3kpKQorIAorLQorLSAgICAgICAgIyBJZiB3ZSBnb3QgdGhpcyBmYXIgYW5kIHdlIGRvbid0 IGhhdmUgYSB0cmFuc2Zvcm0gbW9kZSwgcmVzZXQgdGhlIGN1cnNvcgorLSAgICAgICAgaWYgbm90 IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUUN1cnNv cihRdC5BcnJvd0N1cnNvcikpCistCisgICAgIGRlZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVu dCk6CisgICAgICAgICAiIiJDYXB0dXJlIG1vdXNlIGV2ZW50cyBvbiB2aWRlbyBwcmV2aWV3IHdp bmRvdyAiIiIKKyAgICAgICAgIHNlbGYubXV0ZXgubG9jaygpCitAQCAtMTEyMSwyNyArMTExNiwz NyBAQCBkZWYgdXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYsIGNsaXBfaWQsIGZyYW1lX251bWJlciwg cHJvcGVydHlfa2V5LCBuZXdfdmFsdWUsIHJlZgorICAgICAgICAgICAgICMgTm8gY2xpcCBmb3Vu ZAorICAgICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgZm9yIHBvaW50IGluIGMuZGF0YVtw cm9wZXJ0eV9rZXldWyJQb2ludHMiXToKKy0gICAgICAgICAgICBsb2cuaW5mbygibG9vcGluZyBw b2ludHM6IGNvLlggPSAlcyIgJSBwb2ludFsiY28iXVsiWCJdKQorKyAgICAgICAgIyBQcm9wZXJ0 eSBtaXNzaW5nPyBDcmVhdGUgaXQhCisrICAgICAgICBpZiBwcm9wZXJ0eV9rZXkgbm90IGluIGMu ZGF0YToKKysgICAgICAgICAgICBjLmRhdGFbcHJvcGVydHlfa2V5XSA9IHsiUG9pbnRzIjogW119 CisrICAgICAgICAgICAgbG9nLndhcm5pbmcoCisrICAgICAgICAgICAgICAgICIlczogQWRkZWQg bWlzc2luZyAnJXMnIHRvIHByb3BlcnR5IGRhdGEiLAorKyAgICAgICAgICAgICAgICBjbGlwX2lk LCBwcm9wZXJ0eV9rZXkpCisgCistICAgICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBm cmFtZV9udW1iZXI6CisrICAgICAgICBwb2ludHMgPSBjLmRhdGEuZ2V0KHByb3BlcnR5X2tleSku Z2V0KCJQb2ludHMiKQorKyAgICAgICAgZm9yIHBvaW50IGluIHBvaW50czoKKysgICAgICAgICAg ICBjbyA9IHBvaW50LmdldCgiY28iLCB7fSkKKysgICAgICAgICAgICBsb2cuaW5mbygibG9vcGlu ZyBwb2ludHM6IGNvLlggPSAlcyIgJSBjby5nZXQoIlgiKSkKKysKKysgICAgICAgICAgICBpZiBj by5nZXQoIlgiKSA9PSBmcmFtZV9udW1iZXI6CisgICAgICAgICAgICAgICAgIGZvdW5kX3BvaW50 ID0gVHJ1ZQorICAgICAgICAgICAgICAgICBjbGlwX3VwZGF0ZWQgPSBUcnVlCistICAgICAgICAg ICAgICAgIHBvaW50WyJpbnRlcnBvbGF0aW9uIl0gPSBvcGVuc2hvdC5CRVpJRVIKKy0gICAgICAg ICAgICAgICAgcG9pbnRbImNvIl1bIlkiXSA9IGZsb2F0KG5ld192YWx1ZSkKKysgICAgICAgICAg ICAgICAgcG9pbnQudXBkYXRlKHsKKysgICAgICAgICAgICAgICAgICAgICJjbyI6IHsiWCI6IGZy YW1lX251bWJlciwgIlkiOiBmbG9hdChuZXdfdmFsdWUpfSwKKysgICAgICAgICAgICAgICAgICAg ICJpbnRlcnBvbGF0aW9uIjogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQor IAorICAgICAgICAgaWYgbm90IGZvdW5kX3BvaW50IGFuZCBuZXdfdmFsdWUgaXMgbm90IE5vbmU6 CisgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0gVHJ1ZQorLSAgICAgICAgICAgIGxvZy5pbmZv KCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQorKyAgICAgICAgICAg IGxvZy5pbmZvKCJDcmVhdGluZyBuZXcgcG9pbnQgYXQgWD0lcyIsIGZyYW1lX251bWJlcikKKyAg ICAgICAgICAgICBjLmRhdGFbcHJvcGVydHlfa2V5XVsiUG9pbnRzIl0uYXBwZW5kKHsKKy0gICAg ICAgICAgICAgICAgJ2NvJzogeydYJzogZnJhbWVfbnVtYmVyLCAnWSc6IG5ld192YWx1ZX0sCisr ICAgICAgICAgICAgICAgICdjbyc6IHsnWCc6IGZyYW1lX251bWJlciwgJ1knOiBmbG9hdChuZXdf dmFsdWUpfSwKKyAgICAgICAgICAgICAgICAgJ2ludGVycG9sYXRpb24nOiBvcGVuc2hvdC5CRVpJ RVIKKyAgICAgICAgICAgICAgICAgfSkKKyAKKy0gICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBw cm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQorLSAgICAgICAgYy5k YXRhID0ge3Byb3BlcnR5X2tleTogYy5kYXRhLmdldChwcm9wZXJ0eV9rZXkpfQorLQorICAgICAg ICAgaWYgY2xpcF91cGRhdGVkOgorKyAgICAgICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBwcm9w ZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQorKyAgICAgICAgICAgIGMu ZGF0YSA9IHtwcm9wZXJ0eV9rZXk6IGMuZGF0YS5nZXQocHJvcGVydHlfa2V5KX0KKyAgICAgICAg ICAgICBjLnNhdmUoKQorICAgICAgICAgICAgICMgVXBkYXRlIHRoZSBwcmV2aWV3CisgICAgICAg ICAgICAgaWYgcmVmcmVzaDoKK0BAIC0xMTY2LDI3ICsxMTcxLDI5IEBAIGRlZiB1cGRhdGVFZmZl Y3RQcm9wZXJ0eShzZWxmLCBlZmZlY3RfaWQsIGZyYW1lX251bWJlciwgb2JqX2lkLCBwcm9wZXJ0 eV9rZXksIG5lCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBmb3IgcG9pbnQgaW4g cG9pbnRzX2xpc3Q6CistICAgICAgICAgICAgbG9nLmluZm8oImxvb3BpbmcgcG9pbnRzOiBjby5Y ID0gJXMiLCBwb2ludFsiY28iXVsiWCJdKQorKyAgICAgICAgICAgIGNvID0gcG9pbnQuZ2V0KCJj byIsIHt9KQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJsb29waW5nIHBvaW50czogY28uWCA9ICVz IiwgY28uZ2V0KCJYIikpCisgCistICAgICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBm cmFtZV9udW1iZXI6CisrICAgICAgICAgICAgaWYgY28uZ2V0KCJYIikgPT0gZnJhbWVfbnVtYmVy OgorICAgICAgICAgICAgICAgICBmb3VuZF9wb2ludCA9IFRydWUKKyAgICAgICAgICAgICAgICAg ZWZmZWN0X3VwZGF0ZWQgPSBUcnVlCistICAgICAgICAgICAgICAgIHBvaW50WyJpbnRlcnBvbGF0 aW9uIl0gPSBvcGVuc2hvdC5CRVpJRVIKKy0gICAgICAgICAgICAgICAgcG9pbnRbImNvIl1bIlki XSA9IGZsb2F0KG5ld192YWx1ZSkKKysgICAgICAgICAgICAgICAgcG9pbnQudXBkYXRlKHsKKysg ICAgICAgICAgICAgICAgICAgICJjbyI6IHsiWCI6IGZyYW1lX251bWJlciwgIlkiOiBmbG9hdChu ZXdfdmFsdWUpfSwKKysgICAgICAgICAgICAgICAgICAgICJpbnRlcnBvbGF0aW9uIjogb3BlbnNo b3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQorIAorLSAgICAgICAgaWYgbm90IGZvdW5k X3BvaW50IGFuZCBuZXdfdmFsdWUgIT0gTm9uZToKKysgICAgICAgIGlmIG5vdCBmb3VuZF9wb2lu dCBhbmQgbmV3X3ZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIGVmZmVjdF91cGRhdGVk ID0gVHJ1ZQorLSAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVz IiwgZnJhbWVfbnVtYmVyKQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGluZyBuZXcgcG9p bnQgYXQgWD0lcyIsIGZyYW1lX251bWJlcikKKyAgICAgICAgICAgICBwb2ludHNfbGlzdC5hcHBl bmQoeworLSAgICAgICAgICAgICAgICAnY28nOiB7ICdYJzogZnJhbWVfbnVtYmVyLCAnWSc6IG5l d192YWx1ZSB9LAorKyAgICAgICAgICAgICAgICAnY28nOiB7J1gnOiBmcmFtZV9udW1iZXIsICdZ JzogZmxvYXQobmV3X3ZhbHVlKX0sCisgICAgICAgICAgICAgICAgICdpbnRlcnBvbGF0aW9uJzog b3BlbnNob3QuQkVaSUVSLAorICAgICAgICAgICAgICAgICB9KQorIAorLSAgICAgICAgIyBSZWR1 Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9vc3Qp CistICAgICAgICAjVE9ETzogVGhpcyBpcyB0b28gc2xvdyB3aGVuIGRyYWdpbmcgdHJhbnNmb3Jt IGhhbmRsZXJzCistICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEu Z2V0KCdvYmplY3RzJywge30pLmdldChvYmpfaWQpfX0KKy0KKyAgICAgICAgIGlmIGVmZmVjdF91 cGRhdGVkOgorKyAgICAgICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFy ZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQorKyAgICAgICAgICAgICNUT0RPOiBUaGlzIGlz IHRvbyBzbG93IHdoZW4gZHJhZ2luZyB0cmFuc2Zvcm0gaGFuZGxlcnMKKysgICAgICAgICAgICBj LmRhdGEgPSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJywge30pLmdl dChvYmpfaWQpfX0KKyAgICAgICAgICAgICBjLnNhdmUoKQorICAgICAgICAgICAgICMgVXBkYXRl IHRoZSBwcmV2aWV3CisgICAgICAgICAgICAgaWYgcmVmcmVzaDoKKworRnJvbSA3ZGY4N2RkYzE4 OWM1ZTUwMzFmYmIxOWRmMTMzNzg0MjhmYWI5NTFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+CitEYXRlOiBUaHUs IDQgTm92IDIwMjEgMjE6NTI6MTkgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCA1LzZdIGNsYXNzZXMv dGh1bWJuYWlsOiBGaXggZGFuZ2xpbmcgZmlsZWhhbmRsZXMKKworLS0tCisgc3JjL2NsYXNzZXMv dGh1bWJuYWlsLnB5IHwgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2xhc3Nlcy90aHVtYm5haWwu cHkgYi9zcmMvY2xhc3Nlcy90aHVtYm5haWwucHkKK2luZGV4IGNjYTQ3ZDY4Zi4uZGFjNzQyMmEx IDEwMDY0NAorLS0tIGEvc3JjL2NsYXNzZXMvdGh1bWJuYWlsLnB5CisrKysgYi9zcmMvY2xhc3Nl cy90aHVtYm5haWwucHkKK0BAIC0yMDksMTMgKzIwOSwxMyBAQCBkZWYgZG9fR0VUKHNlbGYpOgor IAorICAgICAgICAgIyBTZW5kIG1lc3NhZ2UgYmFjayB0byBjbGllbnQKKyAgICAgICAgIGlmIG9z LnBhdGguZXhpc3RzKHRodW1iX3BhdGgpOgorLSAgICAgICAgICAgIGlmIG5vdCBvbmx5X3BhdGg6 CistICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUob3Blbih0aHVtYl9wYXRoLCAncmIn KS5yZWFkKCkpCistICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICBpZiBvbmx5X3BhdGg6 CisgICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXModGh1bWJfcGF0aCwgInV0 Zi04IikpCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHRo dW1iX3BhdGgsICdyYicpIGFzIGY6CisrICAgICAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndy aXRlKGYucmVhZCgpKQorIAorICAgICAgICAgIyBQYXVzZSBwcm9jZXNzaW5nIG9mIHJlcXVlc3Qg KHNpbmNlIHdlIGRvbid0IGN1cnJlbnRseSB1c2UgdGhyZWFkIHBvb2xpbmcsIHRoaXMgYWxsb3dz CisgICAgICAgICAjIHRoZSB0aHJlYWRzIHRvIGJlIHByb2Nlc3NlZCB3aXRob3V0IGNob2tpbmcg dGhlIENQVSBhcyBtdWNoCisgICAgICAgICAjIFRPRE86IE1ha2UgSFRUUFNlcnZlciB3b3JrIHdp dGggYSBsaW1pdGVkIHRocmVhZCBwb29sIGFuZCByZW1vdmUgdGhpcyBzbGVlcCgpIGhhY2suCisg ICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCistCisKK0Zyb20gMzNjZjY4Y2EwYjFlYTU3ZWRkNWRl YzNkYmI4YmEwNmQ2YTNmOGZhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJGZVJE IChGcmFuayBEYW5hKSIgPGZlcmRueWNAZ21haWwuY29tPgorRGF0ZTogVGh1LCAyNSBOb3YgMjAy MSAwMjoxODozMiAtMDUwMAorU3ViamVjdDogW1BBVENIIDYvNl0gcHJvcGVydGllc19tb2RlbDog Rml4IGJhZCBsb2dnaW5nIGNhbGwsIENvZGFjeSBmbGFncworCistLS0KKyBzcmMvd2luZG93cy9t b2RlbHMvcHJvcGVydGllc19tb2RlbC5weSB8IDEwICsrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3dp bmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkgYi9zcmMvd2luZG93cy9tb2RlbHMvcHJv cGVydGllc19tb2RlbC5weQoraW5kZXggNDA4OTdmNjQyLi42OTVlOWYzOWMgMTAwNjQ0CistLS0g YS9zcmMvd2luZG93cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5weQorKysrIGIvc3JjL3dpbmRv d3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKK0BAIC00NDQsNyArNDQ0LDcgQEAgZGVmIHZh bHVlX3VwZGF0ZWQoc2VsZiwgaXRlbSwgaW50ZXJwb2xhdGlvbj0tMSwgdmFsdWU9Tm9uZSwgaW50 ZXJwb2xhdGlvbl9kZXRhaWwKKyAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIlczogdXBkYXRl IHByb3BlcnR5ICVzLiAlcyIsIGxvZ19pZCwgcHJvcGVydHlfa2V5LCBjbGlwX2RhdGEuZ2V0KHBy b3BlcnR5X2tleSkpCisgCisgICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhlIHR5cGUgb2YgcHJv cGVydHkgKHNvbWUgYXJlIGtleWZyYW1lLCBhbmQgc29tZSBhcmUgbm90KQorLSAgICAgICAgICAg ICAgICBpZiBwcm9wZXJ0eV90eXBlICE9ICJyZWFkZXIiIGFuZCB0eXBlKGNsaXBfZGF0YVtwcm9w ZXJ0eV9rZXldKSA9PSBkaWN0OgorKyAgICAgICAgICAgICAgICBpZiBwcm9wZXJ0eV90eXBlICE9 ICJyZWFkZXIiIGFuZCBpc2luc3RhbmNlKGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldLCBkaWN0KToK KyAgICAgICAgICAgICAgICAgICAgICMgS2V5ZnJhbWUKKyAgICAgICAgICAgICAgICAgICAgICMg TG9vcCB0aHJvdWdoIHBvaW50cywgZmluZCBhIG1hdGNoaW5nIHBvaW50cyBvbiB0aGlzIGZyYW1l CisgICAgICAgICAgICAgICAgICAgICBmb3VuZF9wb2ludCA9IEZhbHNlCitAQCAtNTE3LDIxICs1 MTcsMjEgQEAgZGVmIHZhbHVlX3VwZGF0ZWQoc2VsZiwgaXRlbSwgaW50ZXJwb2xhdGlvbj0tMSwg dmFsdWU9Tm9uZSwgaW50ZXJwb2xhdGlvbl9kZXRhaWwKKyAgICAgICAgICAgICAgICAgICAgIGNs aXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg ICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGludChuZXdfdmFsdWUpCist ICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorKyAgICAgICAgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2cu d2FybignSW52YWxpZCBJbnRlZ2VyIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZv PTEpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9PSAiZmxvYXQiOgor ICAgICAgICAgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAg ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9wZXJ0eV9r ZXldID0gZmxvYXQobmV3X3ZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBleDoKKysgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg ICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgRmxvYXQgdmFsdWUgcGFzc2Vk IHRvIHByb3BlcnR5JywgZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBwcm9w ZXJ0eV90eXBlID09ICJib29sIjoKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9 IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAg ICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGJvb2wobmV3X3ZhbHVlKQorLSAgICAgICAgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKysgICAgICAgICAgICAgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFs aWQgQm9vbGVhbiB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAg ICAgICAgICAgICAgICBlbGlmIHByb3BlcnR5X3R5cGUgPT0gInN0cmluZyI6CitAQCAtNTU4LDcg KzU1OCw3IEBAIGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249LTEs IHZhbHVlPU5vbmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAgICAgICAgICAgICAgICAg ICAgY2xpcF9vYmplY3QuQ2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfb2Jq ZWN0ID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2Vk IHRvIHByb3BlcnR5OiAlcyAoJXMpJywgdmFsdWUsIGV4Y19pbmZvPTEpCisrICAgICAgICAgICAg ICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgUmVhZGVyIHZhbHVlIHBhc3NlZCB0byBwcm9w ZXJ0eTogJXMnLCB2YWx1ZSwgZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAgICAjIFJlZHVjZSAj IG9mIGNsaXAgcHJvcGVydGllcyB3ZSBhcmUgc2F2aW5nIChwZXJmb3JtYW5jZSBib29zdCkKKyAg ICAgICAgICAgICBjbGlwX2RhdGEgPSB7cHJvcGVydHlfa2V5OiBjbGlwX2RhdGEuZ2V0KHByb3Bl cnR5X2tleSl9CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtn cy9vcGVuc2hvdC90ZW1wbGF0ZQppbmRleCBkMTZlYTkyNWQyMjMuLjQyNDhiYWE4MWUzOSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5zaG90 L3RlbXBsYXRlCkBAIC0xLDEyICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuc2hv dCcKIHBrZ25hbWU9b3BlbnNob3QKLXZlcnNpb249Mi41LjEKLXJldmlzaW9uPTMKLWFyY2hzPSJp Njg2IHg4Nl82NCBwcGM2NGxlIgordmVyc2lvbj0yLjYuMQorcmV2aXNpb249MQogd3Jrc3JjPSIk e3BrZ25hbWV9LXF0LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQotaG9z dG1ha2VkZXBlbmRzPSJweXRob24zIgotbWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCBweXRob24z LVB5UXQ1IHB5dGhvbjMtc2V0dXB0b29scyIKK2hvc3RtYWtlZGVwZW5kcz0icHl0aG9uMyBweXRo b24zLXNldHVwdG9vbHMiCittYWtlZGVwZW5kcz0iZmZtcGVnLWRldmVsIHB5dGhvbjMtUHlRdDUi CiBkZXBlbmRzPSJJbWFnZU1hZ2ljayBsaWJvcGVuc2hvdCBtbHQgcHl0aG9uMy1QeVF0NS1zdmcK ICBweXRob24zLVB5UXQ1LXdlYmtpdCBweXRob24zLWh0dHBsaWIyIHB5dGhvbjMtcHl6bXEgcHl0 aG9uMy1yZXF1ZXN0cyIKIHNob3J0X2Rlc2M9Ik9wZW4tc291cmNlLCBub24tbGluZWFyIHZpZGVv IGVkaXRvciBmb3IgTGludXgiCkBAIC0xNCw0ICsxMyw1IEBAIG1haW50YWluZXI9IlNwZW5jZXIg SGlsbCA8c3BlbmNlcm5oNzdAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93d3cub3BlbnNob3Qub3JnIgogZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vT3BlblNob3Qvb3BlbnNob3QtcXQvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIu Z3oiCi1jaGVja3N1bT00YzI1ZWI5YTVkZTQyZTc0OWRlNGM2Y2EyZjdhMzEzYzYwZTEyODNmZTUy ZDcwYzEyMTYyOWRiYjhiYjJkZjdiCitjaGVja3N1bT0xMTY1MWQ1ZTcyODdkYTNjNzY2Y2U2YjQ0 N2FlZjhkYTVjZGFkYWY1NjI2YTI4MTZlOTAyNWM4MzFkMGUxYTY2CittYWtlX2NoZWNrPW5vICMg dGVzdHMgYXJlIGJyb2tlbgo= --===============1487849863788177172==--