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.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 1379 invoked from network); 27 Dec 2020 04:27:29 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 27 Dec 2020 04:27:29 -0000 Content-Type: multipart/mixed; boundary="===============6883898108392890947==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BRFC_WIP=5D_crosstoolchain_build-style?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 27 Dec 2020 05:27:27 +0100 List-Id: Message-ID: <20201227042727.7Zux59g2abBHN7I24mWYzwfK_qso3zLTK-_a8VzGAOI@z> GitHub notification mails are now in MIME to allow UTF8. --===============6883898108392890947== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBjcm9zcy1zdHlsZQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMjc0MTIKCltSRkMgV0lQXSBjcm9zc3Rvb2xjaGFpbiBidWlsZC1zdHls ZQpUaGlzIGludHJvZHVjZXMgYSBidWlsZC1zdHlsZSBmb3Igc3lzdGVtIGNyb3NzdG9vbGNoYWlu cy4gSXQgb25seSB3b3JrcywgYW5kIHdpbGwgb25seSB3b3JrLCBmb3IgdG9vbGNoYWlucyB0YXJn ZXRpbmcgVm9pZCBhbmQgb25lIG9mIGl0cyBzdGFuZGFyZCBsaWJyYXJpZXMuIFRoZSBub25lIHRh cmdldHMgYW5kIHN0dWZmIGxpa2UgbWluZ3cgYXJlIGV4cGxpY2l0bHkgYSBub24tZ29hbCwgdG8g cmVkdWNlIHRoZSBhbW91bnQgb2YgbWFnaWMgd2UgaGF2ZSB0byBkby4NCg0KVGhpcyBoYXMgYSBi dW5jaCBvZiBhZHZhbnRhZ2VzOg0KDQotIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlcyBjYW4gbm93 IGJlIHNtYWxsIGFuZCBzaW1wbGUNCi0gY3Jvc3N0b29sY2hhaW5zIHdyaXRlbiB3aXRoIHRoaXMg YnVpbGQtc3R5bGUgd2lsbCBubyBsb25nZXIgbWVzcyB1cCBtYXN0ZXJkaXJzIGxpa2UgdGhlIGV4 aXN0aW5nIG9uZXMgZG87IHlvdSBjYW4gc2FmZWx5IGJ1aWxkIHlvdXIgc3R1ZmYgd2l0aG91dCBg LXRgIGFuZCB5b3VyIGBtYXN0ZXJkaXJgIHdpbGwgYmUgcHJpc3RpbmUNCi0gdW5pZmljYXRpb24g b2Ygb3B0aW9ucyBwYXNzZWQgdG8gYGdjY2AvbGliYy9gYmludXRpbHNgIGNvbmZpZ3VyZSwgYXMg bXVjaCBhcyBwb3NzaWJsZQ0KLSByZWR1Y2VkIHJlcGVhdGVkIGJvaWxlcnBsYXRlIGNvZGUgYmV0 d2VlbiBpbmRpdmlkdWFsIGNyb3NzdG9vbGNoYWlucw0KLSBgY2NhY2hlYCBmcmllbmRseQ0KLSBl YXNpZXIgdXBncmFkZXMsIGVhc2llciBtYWludGVuYW5jZSwgZXRjDQoNClRoaXMgaXMgY3VycmVu dGx5IGluY29tcGxldGUuIFRoZXNlIHRoaW5ncyBhcmUgbGVmdCB0byBkbzoNCg0KLSBbeF0gQWRk IG11c2wgc3VwcG9ydA0KLSBbeF0gQ2xlYW4gdXAgdGhlIGNvbmZpZ3VyZSBwYXJhbXMsIG9ubHkg a2VlcCB0aGUgZ2VuZXJpYyBvbmVzIGluIHRoZSBidWlsZC1zdHlsZSwgc3BlY2lmaWMgb25lcyB3 aWxsIGdvIGludG8gaW5kaXZpZHVhbCBjcm9zc3Rvb2xjaGFpbnMgKHRoaXMgb25lIGlzIGxhcmdl bHkgYmFzZWQgb24gd2hhdCB0aGUgYWFyY2g2NCBvbmUgd2FzIGRvaW5nKQ0KLSBbeF0gNjQtYml0 IGNyb3NzIG9uIDMyLWJpdCBob3N0cyBpcyBwcm9iYWJseSBhY3R1YWxseSBmaW5lIGluIGdlbmVy YWwsIHdlIGp1c3QgbmVlZCB0byBlbmFibGUgaXQNCi0gfn5BbGxvdyBnbGliYyBjcm9zc3Rvb2xj aGFpbnMgb24gbXVzbH5+ICh0aGlzIG5lZWRzIGBnbGliY2AgMi4zMiBzbyBpdCB3aWxsIGJlIGRv bmUgbGF0ZXIpDQoNClRvb2xjaGFpbiByZXdyaXRlIFRPRE86DQoNCi0gW3hdIGBjcm9zcy1hYXJj aDY0LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1hYXJjaDY0LWxpbnV4LW11c2xgDQotIFt4XSBg Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmlgDQotIFt4XSBgY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJp YA0KLSBbeF0gYGNyb3NzLWFybS1saW51eC1nbnVlYWJpaGZgDQotIFt4XSBgY3Jvc3MtYXJtLWxp bnV4LW11c2xlYWJpaGZgDQotIFt4XSBgY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZmANCi0g W3hdIGBjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZmANCi0gW3hdIGBjcm9zcy1pNjg2LXBj LWxpbnV4LWdudWANCi0gW3hdIGBjcm9zcy1pNjg2LWxpbnV4LW11c2xgDQotIFt4XSBgY3Jvc3Mt bWlwcy1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLW1pcHMtbGludXgtbXVzbGhmYA0KLSBbeF0g YGNyb3NzLW1pcHNlbC1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLW1pcHNlbC1saW51eC1tdXNs aGZgDQotIFt4XSBgY3Jvc3MtcG93ZXJwYy1saW51eC1nbnVgDQotIFt4XSBgY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsYA0KLSBbeF0gYGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnVgDQotIFt4XSBg Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2xgDQotIFt4XSBgY3Jvc3MtcG93ZXJwYzY0LWxpbnV4 LWdudWANCi0gW3hdIGBjcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbGANCi0gW3hdIGBjcm9zcy1w b3dlcnBjNjRsZS1saW51eC1nbnVgDQotIFt4XSBgY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtbXVz bGANCi0gW3hdIGBjcm9zcy14ODZfNjQtbGludXgtZ251YA0KLSBbeF0gYGNyb3NzLXg4Nl82NC1s aW51eC1tdXNsYA0KDQpGb3Igbm93LCBwb3N0aW5nIGZvciBpbnB1dC4NCg0KQER1bmNhZW4gQGxl YWhuZXVraXJjaGVuIEBwdWxsbW9sbCBAZXJpY29uciBAdm9pZC1saW51eC9wa2ctY29tbWl0dGVy cyANCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjc0MTIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6883898108392890947== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-cross-style-27412.patch" RnJvbSBkODUwOTY3ZDViMzJjYTU3OTk0NGFjYzQ1ZTFmYjllZWJhMTA0NDVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmks IDI1IERlYyAyMDIwIDE0OjU4OjM4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gZ2NjOiB1 c2UgY29uc2lzdGVudCBwYXRjaCBsZXZlbCBmb3IgbXVzbCBwYXRjaGVzCgpuZWVkZWQgZm9yIGNy b3NzIGJ1aWxkIHN0eWxlCi0tLQogc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRj aCB8ICA4ICsrKystLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaCAgIHwg MTIgKysrKysrLS0tLS0tCiBzcmNwa2dzL2djYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwg IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoIGIv c3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCAzMWQzOTYwN2VhNC4u NWVkOWYxNmY1NTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYmduYXJsLW11c2wu cGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaApAQCAtMyw4 ICszLDggQEAgVXBzdHJlYW06IFVua25vd24KIFJlYXNvbjogUGF0Y2ggbGliZ25hcmwgdG8gbm90 IHVzZSBmdW5jdGlvbiBtaXNzaW5nIGZyb20gbXVzbC4KIAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMKLS0tLSBnY2MtOC4yLjAvZ2NjL2FkYS9saWJn bmFybC9zLW9zaW50ZV9fbGludXguYWRzCTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0w ODAwCi0rKysgZ2NjLTguMi4wLW5ldy9nY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5h ZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKKy0tLSBnY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAwMDAgLTA4 MDAKKysrKyBnY2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAx NjoxNjoyMy4zNzI0NTI5NTEgLTA3MDAKIEBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lz dGVtLk9TX0ludGVyZmFjZSBpcwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTlAg ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTsKICAgICBQVEhSRUFEX1JXTE9DS19QUkVGRVJf V1JJVEVSX05PTlJFQ1VSU0lWRV9OUCA6IGNvbnN0YW50IDo9IDI7CkBAIC0zMSw4ICszMSw4IEBA IGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz IGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgc2NoZWRfcHJpb3JpdHkgOiBpbnQ7ICAt LSAgc2NoZWR1bGluZyBwcmlvcml0eQogICAgIGVuZCByZWNvcmQ7CiBkaWZmIC1ydXAgZ2NjLTgu Mi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgotLS0tIGdjYy04LjIuMC9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIJMjAxOC0wMS0xMSAwMDo1NToyNS4wMDAwMDAw MDAgLTA4MDAKLSsrKyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xp bnV4LmFkYgkyMDE4LTExLTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAorLS0tIGdjYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAw MCAtMDgwMAorKysrIGdjYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYgkyMDE4LTEx LTEzIDExOjI4OjM2LjQzMzk2NDQ0OSAtMDgwMAogQEAgLTIwMiw5ICsyMDIsNiBAQCBwYWNrYWdl IGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCiAgICAgcHJhZ21hIEltcG9ydAogICAg ICAgKEMsIEdOQVRfcHRocmVhZF9jb25kYXR0cl9zZXR1cCwgIl9fZ25hdF9wdGhyZWFkX2NvbmRh dHRyX3NldHVwIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNoCmluZGV4IDhhNjkyYzBk NjY0Li44ZDQ3YjQ0MmFhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11 c2wucGF0Y2gKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvbGlic3NwLW11c2wucGF0Y2gKQEAgLTIs OCArMiw4IEBAIEZpcnN0IHBhcnQgdGFrZW4gZnJvbSBBbHBpbmUuCiAKIFNlY29uZCBwYXJ0IGFk ZGVkIHRvIHByZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBv biBtdXNsLgogCi0tLS0gYS9nY2MvZ2NjLmMKLSsrKyBiL2djYy9nY2MuYworLS0tIGdjYy9nY2Mu YworKysrIGdjYy9nY2MuYwogQEAgLTg3Niw5ICs4NzYsOCBAQAogICNlbmRpZgogIApAQCAtMTUs OCArMTUsOCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtp bmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVzbC4KICAjZWxzZQogICNkZWZpbmUgTElOS19T U1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZzdGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkg ICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9uZ3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0 IiBcCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LXVzZXItY29tbW9uLmgKLSsrKyBiL2djYy9j b25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNl ci1jb21tb24uaAorKysrIGdjYy9jb25maWcvaTM4Ni9nbnUtdXNlci1jb21tb24uaAogQEAgLTY0 LDkgKzY0LDMgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKICAKICAvKiBTdGF0aWMgc3RhY2sgY2hlY2tpbmcgaXMgc3VwcG9ydGVkIGJ5IG1lYW5z IG9mIHByb2Jlcy4gICovCkBAIC0yNyw4ICsyNyw4IEBAIFNlY29uZCBwYXJ0IGFkZGVkIHRvIHBy ZXZlbnQgZ2NjZ28gZnJvbSB0aGlua2luZyBpdCBjYW4gLWZzcGxpdC1zdGFjayBvbiBtdXNsLgog LSNpZiBIQVZFX0dBU19DRklfUEVSU09OQUxJVFlfRElSRUNUSVZFCiAtI2RlZmluZSBUQVJHRVRf Q0FOX1NQTElUX1NUQUNLCiAtI2VuZGlmCi0tLS0gYS9nY2MvY29uZmlnL2kzODYvZ251LmgKLSsr KyBiL2djYy9jb25maWcvaTM4Ni9nbnUuaAorLS0tIGdjYy9jb25maWcvaTM4Ni9nbnUuaAorKysr IGdjYy9jb25maWcvaTM4Ni9nbnUuaAogQEAgLTQwLDExICs0MCw2IEBAIGFsb25nIHdpdGggR0ND LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogIC8qIGkzODYg Z2xpYmMgcHJvdmlkZXMgX19zdGFja19jaGtfZ3VhcmQgaW4gJWdzOjB4MTQuICAqLwogICNkZWZp bmUgVEFSR0VUX1RIUkVBRF9TU1BfT0ZGU0VUICAgICAgICAweDE0CmRpZmYgLS1naXQgYS9zcmNw a2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmluZGV4IDQ3MmI5NTJlYWUz Li4wMmE3NTE2MDAyZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nY2MvdGVtcGxhdGUKQEAgLTE3Myw4ICsxNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewog CXNlZCAtaSAiL2FjX2NwcD0vcy9cJENQUEZMQUdTL1wkQ1BQRkxBR1MgLU8yLyIge2djYyxsaWJp YmVydHl9L2NvbmZpZ3VyZQogCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQkqLW11 c2wpCi0JCQlwYXRjaCAtcDEgLWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAotCQkJ cGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCisJCQlwYXRjaCAtcDAg LWkgJHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklM RVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCiAJCQlwYXRjaCAtcDAgLWkgJHtGSUxFU0RJUn0vZ2Nj Z28tbXVzbC5wYXRjaAogCQkJOzsKIAllc2FjCgpGcm9tIGE4NDY1MGVmNTY1NDg3OTlhZjIzZDIx NDRiMTRjMTAyYzM2NDg1MTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMDA6NDI6MjYgKzAxMDAK U3ViamVjdDogW1BBVENIIDAyLzI2XSBjb21tb24vYnVpbGQtc3R5bGU6IGFkZCB2b2lkLWNyb3Nz Cgp0aGlzIGludHJvZHVjZXMgYSBuZXcgYnVpbGQtc3R5bGUgdm9pZC1jcm9zcywgd2hpY2ggY2Fu IGJlIHVzZWQKdG8gd3JpdGUgc3lzdGVtIGNyb3NzdG9vbGNoYWluIHRlbXBsYXRlczsgdGhpcyBp cyB0byByZWR1Y2UgdGhlCmFtb3VudCBvZiBtYWludGVuYW5jZSwgcmVzb2x2ZSBleGlzdGluZyBw cm9ibGVtcyB3aXRoIHRoZSBjcm9zcwp0b29sY2hhaW4gdGVtcGxhdGVzIGFuZCByZW1vdmUgcmVw ZWF0ZWQgY29kZQotLS0KIGNvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoICAgICAgICAg ICAgIHwgNTk4ICsrKysrKysrKysrKysrKysrKysKIGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1z dHlsZS92b2lkLWNyb3NzLnNoIHwgIDExICsKIDIgZmlsZXMgY2hhbmdlZCwgNjA5IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5z aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbW1vbi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS92b2lk LWNyb3NzLnNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2J1aWxkLXN0eWxlL3ZvaWQtY3Jvc3Muc2gg Yi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNjUwYTAzOTRlMmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24v YnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaApAQCAtMCwwICsxLDU5OCBAQAorIworIyBUaGlzIGhl bHBlciBpcyBmb3Igdm9pZCBzeXN0ZW0gY3Jvc3N0b29sY2hhaW4gdGVtcGxhdGVzLgorIworIyBN YW5kYXRvcnkgdmFyaWFibGVzOgorIworIyAtIGNyb3NzX3RyaXBsZXQgLSB0aGUgdGFyZ2V0IHRy aXBsZXQgKGUuZy4gYWFyY2g2NC1saW51eC1nbnUpCisjIC0gY3Jvc3NfbGludXhfYXJjaCAtIHRo ZSBzb3VyY2UgQVJDSCBvZiB0aGUga2VybmVsIChlLmcuIGFybTY0KQorIyAtIGNyb3NzX2xpYnVj b250ZXh0X2FyY2ggLSBvbmx5IG9uIG11c2wgd2l0aG91dCBjcm9zc19nY2Nfc2tpcF9nbworIwor IyBPcHRpb25hbCB2YXJpYWJsZXM6CisjCisjIC0gY3Jvc3NfZ2NjX3NraXBfZ28gLSBkbyBub3Qg YnVpbGQgZ2NjZ28gc3VwcG9ydAorIyAtIGNyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzCisj IC0gY3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJncworIyAtIGNyb3NzX2djY19jb25m aWd1cmVfYXJncworIyAtIGNyb3NzX2dsaWJjX2NmbGFncworIyAtIGNyb3NzX2dsaWJjX2xkZmxh Z3MKKyMgLSBjcm9zc19nbGliY19jb25maWd1cmVfYXJncworIyAtIGNyb3NzX211c2xfY2ZsYWdz CisjIC0gY3Jvc3NfbXVzbF9sZGZsYWdzCisjIC0gY3Jvc3NfbXVzbF9jb25maWd1cmVfYXJncwor IworIyBjb25maWd1cmVfYXJncyBpcyBwYXNzZWQgdG8gYm90aCBib290c3RyYXAgZ2NjIGFuZCBm aW5hbCBnY2MKKyMgaWYgeW91IG5lZWQgdG8gcGFzcyBzb21lIHRvIG9uZSBhbmQgbm90IHRoZSBv dGhlciwgdXNlIHRoZQorIyByZXNwZWN0aXZlIGNyb3NzXyB2YXJpYWJsZXMgZm9yIGZpbmFsIGdj YyBhbmQgYm9vdHN0cmFwIGdjYworIworCitfYXBwbHlfcGF0Y2goKSB7CisJbG9jYWwgYXJncz0i JDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBd OyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3BuYW1lfV9kb25lCisJ ZmkKK30KKworX2NoZWNrX2Nyb3NzX3N0YW1wKCkgeworCWNkICR7d3Jrc3JjfQorCWlmIFsgLWYg Ii4kezF9X2RvbmUiIF07IHRoZW4KKwkJcmV0dXJuIDEKKwlmaQorCXJldHVybiAwCit9CisKK19i dWlsZF9iaW51dGlscygpIHsKKwlfY2hlY2tfY3Jvc3Nfc3RhbXAgYmludXRpbHMgfHwgcmV0dXJu IDAKKworCWxvY2FsIHZlcj0kMQorCisJbXNnX25vcm1hbCAiQnVpbGRpbmcgYmludXRpbHMgZm9y ICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGJpbnV0aWxzX2J1aWxkCisJY2QgYmlu dXRpbHNfYnVpbGQKKworCS4uL2JpbnV0aWxzLSR7dmVyfS9jb25maWd1cmUgXAorCQktLXByZWZp eD0vdXNyIFwKKwkJLS1zYmluZGlyPS91c3IvYmluIFwKKwkJLS1saWJkaXI9L3Vzci9saWIgXAor CQktLWxpYmV4ZWNkaXI9L3Vzci9saWIgXAorCQktLXRhcmdldD0ke2Nyb3NzX3RyaXBsZXR9IFwK KwkJLS13aXRoLXN5c3Jvb3Q9L3Vzci8ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1kaXNhYmxlLW5s cyBcCisJCS0tZGlzYWJsZS1zaGFyZWQgXAorCQktLWRpc2FibGUtbXVsdGlsaWIgXAorCQktLWRp c2FibGUtd2Vycm9yIFwKKwkJLS1kaXNhYmxlLWdvbGQgXAorCQktLXdpdGgtc3lzdGVtLXpsaWIg XAorCQktLWVuYWJsZS1kZXRlcm1pbmlzdGljLWFyY2hpdmVzIFwKKwkJLS1lbmFibGUtZGVmYXVs dC1oYXNoLXN0eWxlPWdudSBcCisJCSR7Y3Jvc3NfYmludXRpbHNfY29uZmlndXJlX2FyZ3N9CisK KwltYWtlIGNvbmZpZ3VyZS1ob3N0CisJbWFrZSAke21ha2Vqb2JzfQorCisJbWFrZSBpbnN0YWxs IERFU1RESVI9JHt3cmtzcmN9L2J1aWxkX3Jvb3QKKworCXRvdWNoICR7d3Jrc3JjfS8uYmludXRp bHNfZG9uZQorfQorCitfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsKKwlfY2hlY2tfY3Jvc3Nfc3Rh bXAgZ2NjX2Jvb3RzdHJhcCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisKKwltc2dfbm9y bWFsICJQYXRjaGluZyBHQ0MgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdjYy0ke3Zl cn0KKwlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwor CQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKKwlkb25lCisJaWYgWyAtZiAke3dya3NyY30vLm11c2xf dmVyc2lvbiBdOyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8q LW11c2wucGF0Y2g7IGRvCisJCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKKwkJZG9uZQorCWZpCisJ Y2QgLi4KKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGJvb3RzdHJhcCBHQ0MgZm9yICR7Y3Jvc3Nf dHJpcGxldH1cbiIKKworCW1rZGlyIC1wIGdjY19ib290c3RyYXAKKwljZCBnY2NfYm9vdHN0cmFw CisKKwlsb2NhbCBleHRyYV9hcmdzCisJaWYgWyAtZiAke3dya3NyY30vLm11c2xfdmVyc2lvbiBd OyB0aGVuCisJCWV4dHJhX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKKwkJZXh0cmFfYXJncys9IiAt LWRpc2FibGUtc3ltdmVycyIKKwkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5v IgorCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKKwlmaQorCisJLi4v Z2NjLSR7dmVyfS9jb25maWd1cmUgXAorCQktLXByZWZpeD0vdXNyIFwKKwkJLS1zYmluZGlyPS91 c3IvYmluIFwKKwkJLS1saWJkaXI9L3Vzci9saWIgXAorCQktLWxpYmV4ZWNkaXI9L3Vzci9saWIg XAorCQktLXRhcmdldD0ke2Nyb3NzX3RyaXBsZXR9IFwKKwkJLS1kaXNhYmxlLW5scyBcCisJCS0t ZGlzYWJsZS1tdWx0aWxpYiBcCisJCS0tZGlzYWJsZS1zaGFyZWQgXAorCQktLWRpc2FibGUtbGli cXVhZG1hdGggXAorCQktLWRpc2FibGUtZGVjaW1hbC1mbG9hdCBcCisJCS0tZGlzYWJsZS1saWJn b21wIFwKKwkJLS1kaXNhYmxlLWxpYm1weCBcCisJCS0tZGlzYWJsZS1saWJtdWRmbGFwIFwKKwkJ LS1kaXNhYmxlLWxpYnNzcCBcCisJCS0tZGlzYWJsZS1saWJpdG0gXAorCQktLWRpc2FibGUtbGli YXRvbWljIFwKKwkJLS1kaXNhYmxlLXRocmVhZHMgXAorCQktLWRpc2FibGUtc2psai1leGNlcHRp b25zIFwKKwkJLS1lbmFibGUtbGFuZ3VhZ2VzPWMgXAorCQktLXdpdGgtZ251LWxkIFwKKwkJLS13 aXRoLWdudS1hcyBcCisJCSR7ZXh0cmFfYXJnc30gXAorCQkke2NvbmZpZ3VyZV9hcmdzfSBcCisJ CSR7Y3Jvc3NfZ2NjX2Jvb3RzdHJhcF9jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9i c30KKwltYWtlIGluc3RhbGwgREVTVERJUj0ke3dya3NyY30vYnVpbGRfcm9vdAorCisJbG9jYWwg cHRycz0kKCR7Y3Jvc3NfdHJpcGxldH0tZ2NjIC1kTSAtRSAtIDwgL2Rldi9udWxsIHwgXAorCQln cmVwIF9fU0laRU9GX1BPSU5URVJfXykKKwlsb2NhbCB3cz0ke3B0cnMjIyogfQorCisJY2FzZSAk e3dzfSBpbgorCQk4KSBlY2hvIDY0ID4gJHt3cmtzcmN9Ly5nY2Nfd29yZHNpemUgOzsKKwkJNCkg ZWNobyAzMiA+ICR7d3Jrc3JjfS8uZ2NjX3dvcmRzaXplIDs7CisJCSopIG1zZ19lcnJvciAiVW5r bm93biB3b3JkIHNpemU6ICR7d3N9XG4iIDs7CisJZXNhYworCisJdG91Y2ggJHt3cmtzcmN9Ly5n Y2NfYm9vdHN0cmFwX2RvbmUKK30KKworX2J1aWxkX2tlcm5lbF9oZWFkZXJzKCkgeworCV9jaGVj a19jcm9zc19zdGFtcCBsaW51eF9oZWFkZXJzIHx8IHJldHVybiAwCisKKwlsb2NhbCB2ZXI9JDEK KworCW1zZ19ub3JtYWwgIlBhdGNoaW5nIExpbnV4IGhlYWRlcnMgZm9yICR7Y3Jvc3NfdHJpcGxl dH1cbiIKKworCWNkIGxpbnV4LSR7dmVyfQorCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tl cm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQlfYXBwbHlfcGF0Y2ggLXAw ICRmCisJZG9uZQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBoZWFkZXJz IGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwljZCBsaW51eC0ke3Zlcn0KKworCW1ha2UgQVJD SD0kY3Jvc3NfbGludXhfYXJjaCBoZWFkZXJzX2NoZWNrCisJbWFrZSBBUkNIPSRjcm9zc19saW51 eF9hcmNoIFwKKwkJSU5TVEFMTF9IRFJfUEFUSD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtj cm9zc190cmlwbGV0fS91c3IgXAorCQloZWFkZXJzX2luc3RhbGwKKworCXRvdWNoICR7d3Jrc3Jj fS8ubGludXhfaGVhZGVyc19kb25lCit9CisKK19idWlsZF9nbGliY19oZWFkZXJzKCkgeworCV9j aGVja19jcm9zc19zdGFtcCBnbGliY19oZWFkZXJzIHx8IHJldHVybiAwCisKKwlsb2NhbCB2ZXI9 JDEKKworCWxvY2FsIHRndD0kY3Jvc3NfdHJpcGxldAorCisJbXNnX25vcm1hbCAiUGF0Y2hpbmcg Z2xpYmMgZm9yICR7Y3Jvc3NfdHJpcGxldH1cbiIKKworCWNkIGdsaWJjLSR7dmVyfQorCWlmIFsg LWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMiIF07IHRoZW4KKwkJZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJX2FwcGx5X3Bh dGNoIC1wMSAiJGYiCisJCWRvbmUKKwlmaQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGlu ZyBnbGliYyBoZWFkZXJzIGZvciAke2Nyb3NzX3RyaXBsZXR9XG4iCisKKwlta2RpciAtcCBnbGli Y19oZWFkZXJzCisJY2QgZ2xpYmNfaGVhZGVycworCisJZWNobyAibGliY19jdl9mb3JjZWRfdW53 aW5kPXllcyIgPiBjb25maWcuY2FjaGUKKwllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+ IGNvbmZpZy5jYWNoZQorCisJIyB3ZSBkb24ndCBuZWVkIGFueSBjdXN0b20gYXJncyBoZXJlLCBp dCdzIGp1c3QgaGVhZGVycworCUNDPSIke3RndH0tZ2NjIiBDWFg9IiR7dGd0fS1nKysiIENQUD0i JHt0Z3R9LWNwcCIgTEQ9IiR7dGd0fS1sZCIgXAorCUFTPSIke3RndH0tYXMiIE5NPSIke3RndH0t bm0iIENGTEFHUz0iLXBpcGUiIENYWEZMQUdTPSIiIENQUEZMQUdTPSIiIFwKKwlMREZMQUdTPSIi IFwKKwkuLi9nbGliYy0ke3Zlcn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0t aG9zdD0ke3RndH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91c3Iv JHt0Z3R9L3Vzci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1vYnNv bGV0ZS1ycGMgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWVuYWJsZS1rZXJuZWw9 Mi42LjI3IFwKKwkJJHtjcm9zc19nbGliY19jb25maWd1cmVfYXJnc30KKworCW1ha2UgLWsgaW5z dGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAorCQlpbnN0YWxsX3Jvb3Q9JHt3cmtz cmN9L2J1aWxkX3Jvb3QvdXNyLyR7dGd0fQorCisJdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFk ZXJzX2RvbmUKK30KKworX2J1aWxkX2dsaWJjKCkgeworCV9jaGVja19jcm9zc19zdGFtcCBnbGli Y19idWlsZCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisJbG9jYWwgdGd0PSRjcm9zc190 cmlwbGV0CisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBnbGliYyBmb3IgJHt0Z3R9XG4iCisKKwlt a2RpciAtcCBnbGliY19idWlsZAorCWNkIGdsaWJjX2J1aWxkCisKKwlsb2NhbCB3cz0kKGNhdCAk e3dya3NyY30vLmdjY193b3Jkc2l6ZSkKKworCWVjaG8gInNsaWJkaXI9L3Vzci9saWIke3dzfSIg PiBjb25maWdwYXJtcworCisJZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25m aWcuY2FjaGUKKwllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQor CisJQ0M9IiR7dGd0fS1nY2MiIENYWD0iJHt0Z3R9LWcrKyIgQ1BQPSIke3RndH0tY3BwIiBMRD0i JHt0Z3R9LWxkIiBcCisJQVI9IiR7dGd0fS1hciIgQVM9IiR7dGd0fS1hcyIgTk09IiR7dGd0fS1u bSIgXAorCUNGTEFHUz0iLXBpcGUgJHtjcm9zc19nbGliY19jZmxhZ3N9IiBcCisJQ1hYRkxBR1M9 Ii1waXBlICR7Y3Jvc3NfZ2xpYmNfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX2dsaWJj X2NmbGFnc30iIFwKKwlMREZMQUdTPSIke2Nyb3NzX2dsaWJjX2xkZmxhZ3N9IiBcCisJLi4vZ2xp YmMtJHt2ZXJ9L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3IgXAorCQktLWxpYmRpcj0vdXNy L2xpYiR7d3N9IFwKKwkJLS1saWJleGVjZGlyPS91c3IvbGliZXhlYyBcCisJCS0taG9zdD0ke3Rn dH0gXAorCQktLXdpdGgtaGVhZGVycz0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9L3Vz ci9pbmNsdWRlIFwKKwkJLS1jb25maWctY2FjaGUgXAorCQktLWVuYWJsZS1vYnNvbGV0ZS1ycGMg XAorCQktLWVuYWJsZS1vYnNvbGV0ZS1uc2wgXAorCQktLWRpc2FibGUtcHJvZmlsZSBcCisJCS0t ZGlzYWJsZS13ZXJyb3IgXAorCQktLWVuYWJsZS1rZXJuZWw9Mi42LjI3IFwKKwkJJHtjcm9zc19n bGliY19jb25maWd1cmVfYXJnc30KKworCW1ha2UgJHttYWtlam9ic30KKwltYWtlIGluc3RhbGxf cm9vdD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHt0Z3R9IGluc3RhbGwKKworCXRvdWNoICR7 d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9uZQorfQorCitfYnVpbGRfbXVzbCgpIHsKKwlfY2hlY2tf Y3Jvc3Nfc3RhbXAgbXVzbF9idWlsZCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisJbG9j YWwgdGd0PSRjcm9zc190cmlwbGV0CisKKwltc2dfbm9ybWFsICJQYXRjaGluZyBtdXNsIGZvciAk e3RndH1cbiIKKworCWNkIG11c2wtJHt2ZXJ9CisJaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0v bXVzbC9wYXRjaGVzIiBdOyB0aGVuCisJCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wv cGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCWRvbmUKKwlm aQorCWNkIC4uCisKKwltc2dfbm9ybWFsICJCdWlsZGluZyBtdXNsIGZvciAke3RndH1cbiIKKwor CW1rZGlyIC1wIG11c2xfYnVpbGQKKwljZCBtdXNsX2J1aWxkCisKKwlDQz0iJHt0Z3R9LWdjYyIg Q1hYPSIke3RndH0tZysrIiBDUFA9IiR7dGd0fS1jcHAiIExEPSIke3RndH0tbGQiIFwKKwlBUj0i JHt0Z3R9LWFyIiBBUz0iJHt0Z3R9LWFzIiBOTT0iJHt0Z3R9LW5tIiBcCisJQ0ZMQUdTPSItcGlw ZSAtZlBJQyAke2Nyb3NzX211c2xfY2ZsYWdzfSIgXAorCUNQUEZMQUdTPSIke2Nyb3NzX211c2xf Y2ZsYWdzfSIgTERGTEFHUz0iJHtjcm9zc19tdXNsX2xkZmxhZ3N9IiBcCisJLi4vbXVzbC0ke3Zl cn0vY29uZmlndXJlIFwKKwkJLS1wcmVmaXg9L3VzciBcCisJCS0taG9zdD0ke3RndH0gXAorCQkk e2Nyb3NzX211c2xfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisJbWFrZSBE RVNURElSPSR7d3Jrc3JjfS9idWlsZF9yb290L3Vzci8ke3RndH0gaW5zdGFsbAorCisJdG91Y2gg JHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2xpYnVjb250ZXh0KCkgewor CVsgLW4gIiRjcm9zc19nY2Nfc2tpcF9nbyIgXSAmJiByZXR1cm4gMAorCV9jaGVja19jcm9zc19z dGFtcCBsaWJ1Y29udGV4dCB8fCByZXR1cm4gMAorCisJbG9jYWwgdmVyPSQxCisKKwltc2dfbm9y bWFsICJCdWlsZGluZyBsaWJ1Y29udGV4dCBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgorCisJY2Qg bGlidWNvbnRleHQtJHt2ZXJ9CisJIyBhIHRlcnJpYmxlIGhhY2sgYnV0IHNlZW1zIHRvIHdvcmsg Zm9yIG5vdworCUNDPSIke2Nyb3NzX3RyaXBsZXR9LWdjYyIgQVM9IiR7Y3Jvc3NfdHJpcGxldH0t YXMiIEFSPSIke2Nyb3NzX3RyaXBsZXR9LWFyIiBcCisJQ1BQRkxBR1M9Ii1waXBlICR7Y3Jvc3Nf bXVzbF9jZmxhZ3N9IC1nMCAtT3MgLW5vc3RkaW5jIC1pc3lzdGVtICR7d3Jrc3JjfS9idWlsZF9y b290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci9pbmNsdWRlIiBcCisJbWFrZSBBUkNIPSR7Y3Jv c3NfbGlidWNvbnRleHRfYXJjaH0gbGlidWNvbnRleHQuYQorCisJY3AgbGlidWNvbnRleHQuYSAk e3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fS91c3IvbGliCisKKwl0b3Vj aCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKK30KKworX2J1aWxkX2djYygpIHsK KwlfY2hlY2tfY3Jvc3Nfc3RhbXAgZ2NjX2J1aWxkIHx8IHJldHVybiAwCisKKwlsb2NhbCB2ZXI9 JDEKKworCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGdjYyBmb3IgJHtjcm9zc190cmlwbGV0fVxuIgor CisJbWtkaXIgLXAgZ2NjX2J1aWxkCisJY2QgZ2NjX2J1aWxkCisKKwlsb2NhbCBsYW5ncz0iYyxj KyssZm9ydHJhbixvYmpjLG9iai1jKyssYWRhLGx0byIKKwlpZiBbIC16ICIkY3Jvc3NfZ2NjX3Nr aXBfZ28iIF07IHRoZW4KKwkJbGFuZ3MrPSIsZ28iCisJZmkKKworCWxvY2FsIGV4dHJhX2FyZ3MK KwlpZiBbIC1mICR7d3Jrc3JjfS8ubXVzbF92ZXJzaW9uIF07IHRoZW4KKwkJZXh0cmFfYXJncys9 IiAtLWVuYWJsZS1saWJzc3AiCisJCSMgb3RoZXJ3aXNlIGdsaWJjIGhvc3RzIGdldCBjb25mdXNl ZCBhbmQgdXNlIHRoZSBnbnUgaW1wbAorCQlleHRyYV9hcmdzKz0iIC0tZW5hYmxlLWNsb2NhbGU9 Z2VuZXJpYyIKKwkJZXh0cmFfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKKwkJZXh0cmFfYXJn cys9IiAtLWRpc2FibGUtZ251LXVuaXF1ZS1vYmplY3QiCisJCWV4dHJhX2FyZ3MrPSIgbGliYXRf Y3ZfaGF2ZV9pZnVuYz1ubyIKKwllbHNlCisJCWV4dHJhX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNz cCIKKwkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKKwlmaQorCisJ IyBub3RlIG9uIC0tZGlzYWJsZS1saWJxdWFkbWF0aDoKKwkjIG9uIHNvbWUgcGxhdGZvcm1zIHRo ZSBsaWJyYXJ5IGlzIGFjdHVhbGx5IG5lY2Vzc2FyeSBmb3IgdGhlCisJIyBmb3J0cmFuIGZyb250 ZW5kIHRvIGJ1aWxkLCBidXQgc3RpbGwgZGlzYWJsZSBpdCBiZWNhdXNlIGl0CisJIyBzaG91bGQg bm90IGJlIGluIHRoZSByZXN1bHRpbmcgcGFja2FnZXM7IGl0IGNvbmZsaWN0cyB3aXRoCisJIyB0 aGUgbGlicXVhZG1hdGggeW91IGNhbiBpbnN0YWxsIGludG8gdGhlIGNyb3NzIHJvb3QKKwkjCisJ IyBwbGF0Zm9ybXMgd2hlcmUgdGhpcyBpcyBhIHByb2JsZW0gc2hvdWxkIGV4cGxpY2l0bHkgZm9y Y2UKKwkjIGxpYnF1YWRtYXRoIHRvIGJlIG9uIHZpYSBjcm9zc19nY2NfY29uZmlndXJlX2FyZ3Ms IHRoZQorCSMgZG9faW5zdGFsbCBpbiB0aGlzIGJ1aWxkLXN0eWxlIGF1dG9tYXRpY2FsbHkgcmVt b3ZlcyBpdAorCSMKKwkuLi9nY2MtJHt2ZXJ9L2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PS91c3Ig XAorCQktLXNiaW5kaXI9L3Vzci9iaW4gXAorCQktLWxpYmRpcj0vdXNyL2xpYiBcCisJCS0tbGli ZXhlY2Rpcj0vdXNyL2xpYiBcCisJCS0tdGFyZ2V0PSR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdp dGgtc3lzcm9vdD0vdXNyLyR7Y3Jvc3NfdHJpcGxldH0gXAorCQktLXdpdGgtYnVpbGQtc3lzcm9v dD0ke3dya3NyY30vYnVpbGRfcm9vdC91c3IvJHtjcm9zc190cmlwbGV0fSBcCisJCS0tZW5hYmxl LWxhbmd1YWdlcz0ke2xhbmdzfSBcCisJCS0tZGlzYWJsZS1ubHMgXAorCQktLWRpc2FibGUtbXVs dGlsaWIgXAorCQktLWRpc2FibGUtc2psai1leGNlcHRpb25zIFwKKwkJLS1kaXNhYmxlLWxpYnF1 YWRtYXRoIFwKKwkJLS1kaXNhYmxlLWxpYm11ZGZsYXAgXAorCQktLWRpc2FibGUtbGliaXRtIFwK KwkJLS1kaXNhYmxlLWxpYnZ0diBcCisJCS0tZGlzYWJsZS1saWJzYW5pdGl6ZXIgXAorCQktLWRp c2FibGUtbGlic3RkY3h4LXBjaCBcCisJCS0tZW5hYmxlLXNoYXJlZCBcCisJCS0tZW5hYmxlLXRo cmVhZHM9cG9zaXggXAorCQktLWVuYWJsZS1fX2N4YV9hdGV4aXQgXAorCQktLWVuYWJsZS1saW5r ZXItYnVpbGQtaWQgXAorCQktLWVuYWJsZS1saWJhZGEgXAorCQktLWVuYWJsZS1sdG8gXAorCQkt LWVuYWJsZS1kZWZhdWx0LXBpZSBcCisJCS0tZW5hYmxlLWRlZmF1bHQtc3NwIFwKKwkJLS13aXRo LWdudS1sZCBcCisJCS0td2l0aC1nbnUtYXMgXAorCQktLXdpdGgtbGlua2VyLWhhc2gtc3R5bGU9 Z251IFwKKwkJJHtleHRyYV9hcmdzfSBcCisJCSR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJJHtjcm9z c19nY2NfY29uZmlndXJlX2FyZ3N9CisKKwltYWtlICR7bWFrZWpvYnN9CisKKwl0b3VjaCAke3dy a3NyY30vLmdjY19idWlsZF9kb25lCit9CisKK19jaGVja19jcm9zc192YXIoKSB7CisJbG9jYWwg dmFyPSJjcm9zc18kezF9IgorCWlmIFsgLXogIiR7IXZhcn0iIF07IHRoZW4KKwkJbXNnX2Vycm9y ICJjcm9zc18kezF9IG5vdCBkZWZpbmVkIGluIHRlbXBsYXRlIgorCWZpCit9CisKK19jaGVja19w cm9qX3ZlcigpIHsKKwlsb2NhbCBwcm9qPSQxCisJbG9jYWwgbm9lcnI9JDIKKwlsb2NhbCB2ZXIg Y3ZlcgorCWZvciBwIGluICR7cHJvan0tKjsgZG8KKwkJY3Zlcj0ke3AjJHtwcm9qfS19CisJCWlm IFsgLXogIiRub2VyciIgLWEgLW4gIiR2ZXIiIF07IHRoZW4KKwkJCW1zZ19lcnJvciAibXVsdGlw bGUgdmVyc2lvbnMgb2YgJHtwcm9qfSBmb3VuZDogJHt2ZXJ9LCAke2N2ZXJ9IgorCQlmaQorCQl2 ZXI9JHtjdmVyfQorCWRvbmUKKwlpZiBbIC1kICIke3Byb2p9LSR7dmVyfSIgXTsgdGhlbgorCQll Y2hvICR7dmVyfSA+ICR7d3Jrc3JjfS8uJHtwcm9qfV92ZXJzaW9uCisJCXJldHVybgorCWZpCisJ aWYgWyAteiAiJG5vZXJyIiBdOyB0aGVuCisJCW1zZ19lcnJvciAicHJvamVjdCAke3Byb2p9IG5v dCBhdmFpbGFibGUgZm9yIGJ1aWxkXG4iCisJZmkKK30KKworZG9fYnVpbGQoKSB7CisJIyBWZXJp ZnkgdG9vbGNoYWluIHZlcnNpb25zCisJY2QgJHt3cmtzcmN9CisKKwlsb2NhbCBiaW51dGlsc192 ZXIgbGludXhfdmVyIGdjY192ZXIgbGliY192ZXIgbGlidWNvbnRleHRfdmVyCisKKwlfY2hlY2tf cHJval92ZXIgYmludXRpbHMKKwlfY2hlY2tfcHJval92ZXIgbGludXgKKwlfY2hlY2tfcHJval92 ZXIgZ2NjCisKKwliaW51dGlsc192ZXI9JChjYXQgLmJpbnV0aWxzX3ZlcnNpb24pCisJbGludXhf dmVyPSQoY2F0IC5saW51eF92ZXJzaW9uKQorCWdjY192ZXI9JChjYXQgLmdjY192ZXJzaW9uKQor CisJX2NoZWNrX3Byb2pfdmVyIG11c2wgbm9lcnIKKwlpZiBbICEgLWYgLm11c2xfdmVyc2lvbiBd OyB0aGVuCisJCV9jaGVja19wcm9qX3ZlciBnbGliYworCQlsaWJjX3Zlcj0kKGNhdCAuZ2xpYmNf dmVyc2lvbikKKwllbGlmIFsgLXogIiRjcm9zc19nY2Nfc2tpcF9nbyIgXTsgdGhlbgorCQlfY2hl Y2tfcHJval92ZXIgbGlidWNvbnRleHQKKwkJX2NoZWNrX2Nyb3NzX3ZhciBsaWJ1Y29udGV4dF9h cmNoCisJCWxpYmNfdmVyPSQoY2F0IC5tdXNsX3ZlcnNpb24pCisJCWxpYnVjb250ZXh0X3Zlcj0k KGNhdCAubGlidWNvbnRleHRfdmVyc2lvbikKKwlmaQorCisJIyBWZXJpZnkgdHJpcGxldAorCV9j aGVja19jcm9zc192YXIgdHJpcGxldAorCV9jaGVja19jcm9zc192YXIgbGludXhfYXJjaAorCisJ bG9jYWwgc3lzcm9vdD0iL3Vzci8ke2Nyb3NzX3RyaXBsZXR9IgorCisJIyBQcmVwYXJlIGVudmly b25tZW50CisJY2QgJHt3cmtzcmN9CisKKwkjIENvcmUgZGlyZWN0b3JpZXMgZm9yIHRoZSBidWls ZCByb290CisJbWtkaXIgLXAgYnVpbGRfcm9vdC91c3Ive2JpbixsaWIsaW5jbHVkZSxzaGFyZX0K Kwlta2RpciAtcCBidWlsZF9yb290L3Vzci8ke2Nyb3NzX3RyaXBsZXR9L3Vzci97YmluLGxpYixp bmNsdWRlLHNoYXJlfQorCisJIyBIb3N0IHJvb3QgdXNlcyBob3N0IHdvcmRzaXplCisJbG4gLXNm IHVzci9saWIgYnVpbGRfcm9vdC9saWIKKwlsbiAtc2YgdXNyL2xpYiBidWlsZF9yb290L2xpYiR7 WEJQU19UQVJHRVRfV09SRFNJWkV9CisJbG4gLXNmIGxpYiBidWlsZF9yb290L3Vzci9saWIke1hC UFNfVEFSR0VUX1dPUkRTSVpFfQorCisJIyBQcmVwYXJlIHRhcmdldCBzeXNyb290CisJbG4gLXNm IHVzci9saWIgYnVpbGRfcm9vdC8ke3N5c3Jvb3R9L2xpYgorCWxuIC1zZiBsaWIgYnVpbGRfcm9v dC8ke3N5c3Jvb3R9L3Vzci9saWJleGVjCisKKwlfYnVpbGRfYmludXRpbHMgJHtiaW51dGlsc192 ZXJ9CisKKwkjIFByZXBhcmUgZW52aXJvbm1lbnQgc28gd2UgY2FuIHVzZSB0ZW1wb3JhcnkgcHJl Zml4CisJbG9jYWwgb2xkcGF0aD0iJFBBVEgiCisJbG9jYWwgb2xkbGRsaWI9IiRMRF9MSUJSQVJZ X1BBVEgiCisKKwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9L2J1aWxkX3Jvb3QvdXNyL2JpbjokUEFU SCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIke3dya3NyY30vYnVpbGRfcm9vdC91c3IvbGli OiRQQVRIIgorCisJX2J1aWxkX2Jvb3RzdHJhcF9nY2MgJHtnY2NfdmVyfQorCV9idWlsZF9rZXJu ZWxfaGVhZGVycyAke2xpbnV4X3Zlcn0KKworCWxvY2FsIHdzPSQoY2F0ICR7d3Jrc3JjfS8uZ2Nj X3dvcmRzaXplKQorCisJIyBOb3cgdGhhdCB3ZSBrbm93IHRoZSB0YXJnZXQgd29yZHNpemUsIHBy ZXBhcmUgc3ltbGlua3MKKwlsbiAtc2YgdXNyL2xpYiAke3dya3NyY30vYnVpbGRfcm9vdC8ke3N5 c3Jvb3R9L2xpYiR7d3N9CisJbG4gLXNmIGxpYiAke3dya3NyY30vYnVpbGRfcm9vdC8ke3N5c3Jv b3R9L3Vzci9saWIke3dzfQorCisJaWYgWyAtZiAke3dya3NyY30vLm11c2xfdmVyc2lvbiBdOyB0 aGVuCisJCV9idWlsZF9tdXNsICR7bGliY192ZXJ9CisJCV9idWlsZF9saWJ1Y29udGV4dCAke2xp YnVjb250ZXh0X3Zlcn0KKwllbHNlCisJCV9idWlsZF9nbGliY19oZWFkZXJzICR7bGliY192ZXJ9 CisJCV9idWlsZF9nbGliYyAke2xpYmNfdmVyfQorCWZpCisKKwlfYnVpbGRfZ2NjICR7Z2NjX3Zl cn0KKworCSMgcmVzdG9yZSB0aGlzIHN0dWZmIGluIGNhc2UgbGF0ZXIgaG9va3MgZGVwZW5kIG9u IGl0CisJZXhwb3J0IFBBVEg9IiRvbGRwYXRoIgorCWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9IiRv bGRsZGxpYiIKK30KKworZG9faW5zdGFsbCgpIHsKKwkjIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBh Y2Nlc3MgYmludXRpbHMgaW4gdGhlIHJvb3QKKwlsb2NhbCBvbGRwYXRoPSIkUEFUSCIKKwlsb2Nh bCBvbGRsZGxpYj0iJExEX0xJQlJBUllfUEFUSCIKKwlleHBvcnQgUEFUSD0iJHt3cmtzcmN9L2J1 aWxkX3Jvb3QvdXNyL2JpbjokUEFUSCIKKwlleHBvcnQgTERfTElCUkFSWV9QQVRIPSIke3dya3Ny Y30vYnVpbGRfcm9vdC91c3IvbGliOiRQQVRIIgorCisJbG9jYWwgc3lzcm9vdD0iL3Vzci8ke2Ny b3NzX3RyaXBsZXR9IgorCWxvY2FsIHdzPSQoY2F0ICR7d3Jrc3JjfS8uZ2NjX3dvcmRzaXplKQor CisJIyBDb3JlIGRpcmVjdG9yaWVzIGZvciB0aGUgc3lzcm9vdAorCSMKKwkjIGxpYmV4ZWMgaXMg Y3JlYXRlZCBmb3Igc3lzcm9vdCBidXQgbm90IGZvciBkZXN0LCBzaW5jZSBpbiBzeXNyb290CisJ IyB3ZSBjb25maWd1cmUgZ2xpYmMgd2l0aCBzZXBhcmF0ZSBsaWJleGVjLCBlbHNld2hlcmUgaXQn cyBqdXN0IGxpYgorCSMgYW5kIHdlIHdhbnQgdG8gZGVsZXRlIHRoZSBsaWJleGVjIGZyb20gZ2xp YmMgYWZ0ZXJ3YXJkcyB0byBzYXZlIHNwYWNlCisJbWtkaXIgLXAgJHtERVNURElSfS8ke3N5c3Jv b3R9L3Vzci97YmluLGxpYixsaWJleGVjLGluY2x1ZGUsc2hhcmV9CisJIyBTeXNyb290IGJhc2Ug c3ltbGlua3MKKwlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vbGliCisJbG4g LXNmIHVzci9saWIgJHtERVNURElSfS8ke3N5c3Jvb3R9L2xpYiR7d3N9CisJbG4gLXNmIGxpYiAk e0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYiR7d3N9CisKKwkjIEluc3RhbGwgTGludXggaGVh ZGVycworCWNkICR7d3Jrc3JjfS9saW51eC0kKGNhdCAke3dya3NyY30vLmxpbnV4X3ZlcnNpb24p CisJbWFrZSBBUkNIPSR7Y3Jvc3NfbGludXhfYXJjaH0gXAorCQlJTlNUQUxMX0hEUl9QQVRIPSR7 REVTVERJUn0vJHtzeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCisJcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtzeXNyb290fS91c3IvaW5jbHVkZSBcCisJCS1uYW1lIC5pbnN0YWxsIC1vciAt bmFtZSAuLmluc3RhbGwuY21kKQorCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2lu Y2x1ZGUvZHJtCisKKwkjIEluc3RhbGwgYmludXRpbHMKKwljZCAke3dya3NyY30vYmludXRpbHNf YnVpbGQKKwltYWtlIGluc3RhbGwgREVTVERJUj0ke0RFU1RESVJ9CisKKwkjIEluc3RhbGwgZmlu YWwgZ2NjCisJY2QgJHt3cmtzcmN9L2djY19idWlsZAorCW1ha2UgaW5zdGFsbCBERVNURElSPSR7 REVTVERJUn0KKworCSMgTW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290CisJbXYgJHtERVNU RElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIKKwor CWlmIFsgLWYgJHt3cmtzcmN9Ly5tdXNsX3ZlcnNpb24gXTsgdGhlbgorCQkjIEluc3RhbGwgbXVz bAorCQljZCAke3dya3NyY30vbXVzbF9idWlsZAorCQltYWtlIERFU1RESVI9JHtERVNURElSfS8k e3N5c3Jvb3R9IGluc3RhbGwKKworCQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMKKwkJcm0gLXJm ICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc190cmlwbGV0fS8qL2luY2x1ZGUtZml4ZWQK KworCQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxhdGl2ZQorCQlmb3IgZiBpbiAke0RF U1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLSouc28uKjsgZG8KKwkJCWxuIC1zZiBs aWJjLnNvICR7Zn0KKwkJZG9uZQorCWVsc2UKKwkJIyBJbnN0YWxsIGdsaWJjCisJCWNkICR7d3Jr c3JjfS9nbGliY19idWlsZAorCQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7c3lzcm9v dH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKKworCQkjIFJlbW92ZSBiYWQgaGVhZGVyCisJCXJt IC1mICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtjcm9zc19fdHJpcGxldH0vKi9pbmNsdWRlLWZp eGVkL2JpdHMvc3RhdHguaAorCWZpCisKKwlsb2NhbCBnY2NfdmVyPSQoY2F0ICR7d3Jrc3JjfS8u Z2NjX3ZlcnNpb24pCisKKwkjIFN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGli cmFyaWVzCisJbG9jYWwgbWFqb3J2ZXI9JHtnY2NfdmVyJS4qLip9CisJbG9jYWwgYWRhbGliPXVz ci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7Z2NjX3Zlcn0vYWRhbGliCisJbXYgJHtERVNURElSfS8k e2FkYWxpYn0vbGliZ25hcmwtJHttYWpvcnZlcn0uc28gXAorCQkke0RFU1RESVJ9LyR7c3lzcm9v dH0vdXNyL2xpYgorCW12ICR7REVTVERJUn0vJHthZGFsaWJ9L2xpYmduYXQtJHttYWpvcnZlcn0u c28gXAorCQkke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYgorCWxuIC1zZiBsaWJnbmFybC0k e21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7c3lzcm9vdH0vdXNyL2xpYi9saWJnbmFybC5zbwor CWxuIC1zZiBsaWJnbmF0LSR7bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtzeXNyb290fS91c3Iv bGliL2xpYmduYXQuc28KKwlybSAtdmYgJHtERVNURElSfS8ke2FkYWxpYn0vbGliZ25he3JsLHR9 LnNvCisKKwkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBsaWJhdG9taWMgd2hpY2ggaXMgb25seSBidWls dCBmb3IgZ2NjZ28KKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGliYXRv bWljLioKKworCSMgSWYgbGlicXVhZG1hdGggd2FzIGZvcmNlZCAobmVlZGVkIGZvciBnZm9ydHJh biBvbiBzb21lIHBsYXRmb3JtcykKKwkjIHRoZW4gcmVtb3ZlIGl0IGJlY2F1c2UgaXQgY29uZmxp Y3RzIHdpdGggbGlicXVhZG1hdGggcGFja2FnZQorCXJtIC1yZiAke0RFU1RESVJ9LyR7c3lzcm9v dH0vdXNyL2xpYi9saWJxdWFkbWF0aC4qCisKKwkjIFJlbW92ZSBsZWZ0b3ZlciBzeW1saW5rcwor CXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiR7WEJQU19UQVJHRVRfV09SRFNJWkV9CisJcm0gLWYg JHtERVNURElSfS9saWIqCisJcm0gLWYgJHtERVNURElSfS8qYmluCisJIyBSZW1vdmUgdW5uZWNl c3Nhcnkgc3R1ZmYKKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3tzYmluLGV0Yyx2YXIs bGliZXhlY30KKwlybSAtcmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxs aWJleGVjfQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQorCXJtIC1mICR7REVTVERJUn0v dXNyL2xpYiovbGliaWJlcnR5LmEKKworCWV4cG9ydCBQQVRIPSIkb2xkcGF0aCIKKwlleHBvcnQg TERfTElCUkFSWV9QQVRIPSIkb2xkbGRsaWIiCit9CmRpZmYgLS1naXQgYS9jb21tb24vZW52aXJv bm1lbnQvYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9lbnZpcm9ubWVudC9idWls ZC1zdHlsZS92b2lkLWNyb3NzLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42ODEwMTZlNDBkMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9lbnZpcm9ubWVudC9i dWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCkBAIC0wLDAgKzEsMTEgQEAKK2xpYjMyZGlzYWJsZWQ9 eWVzCitub2Nyb3NzPXllcworbm9waWU9eWVzCitjcmVhdGVfd3Jrc3JjPXllcworCitub3N0cmlw X2ZpbGVzKz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQor IGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21l bS5hIgorCitpZiBbICIke2Nyb3NzX3RyaXBsZXQvLW11c2x9IiA9ICIke2Nyb3NzX3RyaXBsZXR9 IiAtYSAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgorICAgIGJyb2tlbj0i Z2xpYmMgY3Jvc3N0b29sY2hhaW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyBob3N0cyBm b3Igbm93IgorZmkKCkZyb20gZjc2NWIzMGZiMTg1YTlmMjQzNDFiYjM4MjJiN2VmYWVmMWQ4YzQy ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAwMDo0Mzo0OCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDMvMjZdIGNyb3NzLWFhcmNoNjQtbGludXgtZ251OiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0t CiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMzYxICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMzQ4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUv dGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4 IGIwMTIyYzhlYzRhLi5hN2JhYTc5Y2Y2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJj aDY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgt Z251L3RlbXBsYXRlCkBAIC0xLDIxICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9y ICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LWFhcmNoNjQtbGludXgtZ251JworX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1nbnUKIF9iaW51dGls c192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAog X2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hYXJjaDY0LWxpbnV4LWdudQotX2FyY2hm bGFncz0iLW1hcmNoPWFybXY4LWEiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtn bmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9k ZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gTEUgdGFyZ2V0IChi aW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2Fy Z3M9Ii0td2l0aC1hcmNoPWFybXY4LWEiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBn Y2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBj LWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3Mg dG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8 bGVhaEB2dXh1Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0i CiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFy Lnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJz aW9ufS50YXIueHoKQEAgLTI2LDM0OSArMjYsMTQgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTky ZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBlMmM0 MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJi OGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMw NTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15 ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2Mt Z28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRl dmVsIHpsaWItZGV2ZWwiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292 LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEg bGliZ25hdC5hIGxpYmdtZW0uYSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGli YyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUg b24gZ2xpYmMiCi1maQotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsg dGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0 LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2Fy Y2g9YXJtNjQKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIC1tYXJjaD1hcm12OC1hIgogCiBpZiBb ICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYWFyY2g2NCIgXTsgdGhlbgogCWJyb2tlbj0iQ2Fu J3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkg ewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYg Ii4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNo IC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dy a3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2Qg bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCW1ha2UgQVJDSD1hcm02NCBoZWFkZXJzX2NoZWNr Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRl cnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9i aW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAm JiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1w cmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAt LXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWdvbGQiCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3Zl cnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsg LWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n Y2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQg Li4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2Mt Ym9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJh dG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJn cys9IiAtLXdpdGgtZ251LWFzIgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJzKCkgewotCWxv Y2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAt ZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBd ICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJj X2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19j bGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdj YyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190 cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1o ZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hl IgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1v YnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQotCS4uL2ds aWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0 YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNy b290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJj X2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtkaXIgZ2xpYmMt YnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xpYjY0IiA+IGNv bmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5j YWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQll eHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ1hYPSIke190cmlwbGV0fS1nKysiIExEPSIke190 cmlwbGV0fS1sZCIgXAotCQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3Bw IiBcCi0JCU5NPSIke190cmlwbGV0fS1ubSIKLQlleHBvcnQgQ0ZMQUdTPSItTzEgLXBpcGUgJHtf YXJjaGZsYWdzfSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGly PS91c3IvbGliNjQiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmln LWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVu YWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3Mr PSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgot Ci0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmlu YWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2Mt YnVpbGQKLQotCWV4cG9ydCBDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0J dW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAh IC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jv b3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1p ICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lzcm9v dH0vbGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIgXAot CQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0J ZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEs YysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFz IgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhj ZXB0aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVl LW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNp bGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHls ZT1nbnUiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0J bWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQot Ci1kb19idWlsZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhG TEFHUz0iLU9zIgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8K LQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07 IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQot CQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1 c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3Rz dHJhcAotCV9saW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQKLQlf Z2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGli ZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy LyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4K LQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNU RElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L2xpYjY0Ci0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30v YmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGlu c3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0k e0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0J bXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliCi0KLQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIEFSTTY0Ci0JY2QgJHt3 cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExf SERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0g LWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3Rh bGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7 d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lz cm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFu ZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0K LQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIK LQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGli fS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIK LQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYg bGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7 X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWlj IGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdz IG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGly IHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAt ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3Zl IHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHku YQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3tzYmluLGV0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWJl eGVjCi19Ci0KLWRvX2NsZWFuKCkgewotCSMgUmVtb3ZlIHRlbXBvcmFyeSBzdHVmZiBmcm9tIG1h c3RlcmRpcgotCXJtIC1yZiAke19zeXNyb290fQotCXJtIC1mIC91c3IvYmluLyR7X3RyaXBsZXR9 KgotCXJtIC1yZiAvdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0KLQlybSAtcmYgL3Vzci9saWJleGVj L2djYy8ke190cmlwbGV0fQotfQotCiBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudS1saWJjX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCkBAIC0z NzYsNiArNDEsNiBAQCBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJ bm92ZXJpZnlyZGVwcz15ZXMKIAogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290 fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gZDQ2MjgyNWMzODZi NDhjYTg4OWYyYzg1NGU2NzE1MjI1ODJhODY1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAxNDo1 MjozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjZdIGNyb3NzLWFhcmNoNjQtbGludXgtbXVz bDogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4 LW11c2wvdGVtcGxhdGUgfCAzMDIgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE0IGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYWFy Y2g2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDhkNDU4N2NmZTQ4Li5lMzI1ZWFiZTVmMSAx MDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMTkgKzEs MTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgtbXVz bCcKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbCcKK190 cmlwbGV0PWFhcmNoNjQtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192 ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4xOQog X2xpYnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YWFyY2g2NC1saW51eC1tdXNs Ci1fYXJjaGZsYWdzPSItbWFyY2g9YXJtdjgtYSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9 IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTQK LXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNNjQgTEUgdGFyZ2V0IChtdXNsKSIK K2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12 OC1hIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRo b24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdt cC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJp cGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjksMjk2ICsyOSwyMiBAQCBjaGVja3N1 bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThi MzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTll MmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBh OTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwotbm9j cm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhv c3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBp c2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJn Y292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGlj LmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNp b259XyR7cmV2aXNpb259IgotCi1pZiBbICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIg XTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9u IDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpYnVj b250ZXh0X2FyY2g9YWFyY2g2NAorY3Jvc3NfbGludXhfYXJjaD1hcm02NAorY3Jvc3NfbXVzbF9j ZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjgtYSIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi ID0gImFhcmNoNjQtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29s Y2hhaW4gdG8gaXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQx IiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBd OyB0aGVuCi0JCXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0J ZmkKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsg ISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRp bHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190 cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0ICYmIG1ha2UgJHtt YWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVp bGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3 cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0 Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYg aW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5 X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2Nj IGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9n Y2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAt LWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJl ZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0KLQlDRkxB R1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxs Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVh ZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVy c1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBw bHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPWFybTY0IGhlYWRlcnNfY2hlY2sK LQltYWtlIEFSQ0g9YXJtNjQgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVy c19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211 c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0 aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBd OyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3Ry aXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBBUj0iJHtfdHJpcGxldH0tYXIiIFwKLQkJ QVM9IiR7X3RyaXBsZXR9LWFzIiBSQU5MSUI9IiR7X3RyaXBsZXR9LXJhbmxpYiIgXAotCQlDRkxB R1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJl Zml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0g aW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUKLX0KLQotX2xpYnVj b250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4 dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGxpYnVjb250ZXh0XG4iCi0K LQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIke190cmlwbGV0fS1n Y2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0i LU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNIPWFhcmNoNjQgbGlidWNvbnRl eHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGliCi0KLQl0b3VjaCAk e3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQls b2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJu IDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5h bFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1i dWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91 c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFk YSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxp YmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVs dC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK LQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JLi4vZ2NjLSR7X2djY192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2Ug dXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBP QkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFH UwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZv ciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19z eXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtm fQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2Zy ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4g LXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290 fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVh ZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAot Ci0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xp bnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybTY0IElOU1RBTExfSERSX1BBVEg9JHtERVNURElS fS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5z dGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJt Ci0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVp bGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3Mg Z2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGlu c3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElS fS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkj IGluc3RhbGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNs X3ZlcnNpb259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAot Ci0JIyBSZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIv Z2NjLyR7X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wuc28gc3lt bGlua3MgcmVsYXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliL2xkLW11c2wtYWFyY2g2NC5zby4xCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQg Z25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0J X2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0v bGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxp YmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19h ZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBp biB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBu b3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBz byBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1 bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEK LQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4s c2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8k e19zeXNyb290fS9zYmluCi19Ci0KIGNyb3NzLWFhcmNoNjQtbGludXgtbXVzbC1saWJjX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3No bGlicHJvdmlkZXM9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewot CQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0K CkZyb20gOTE4OWQ2NjIwODRhZTJkZGFlNjEwNjllYTA2OTJhZmM2ZGQyMzNlOSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJp LCAyNSBEZWMgMjAyMCAyMDoxMDozNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjZdIGNyb3Nz LWFybS1saW51eC1nbnVlYWJpOiByZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Ny b3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIHwgMzYxICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzQ2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlCmluZGV4IGU1ODEwMGU2OGRm Li44MTUxYjgyMGE0MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFi aS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRl CkBAIC0xLDIyICsxLDIxIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0t bGludXgtZ251ZWFiaScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1n bnVlYWJpJworX3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmkKIF9iaW51dGlsc192ZXJzaW9uPTIu MzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNp b249NC4xOQotCi1fdHJpcGxldD1hcm0tbGludXgtZ251ZWFiaQotX2ZwdWZsYWdzPSItLXdpdGgt YXJjaD1hcm12NXRlIC0td2l0aG91dC1mcCAtLXdpdGgtZmxvYXQ9c29mdCIKLV9hcmNoZmxhZ3M9 Ii1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAtbWZsb2F0LWFiaT1zb2Z0IgotX3N5c3Jvb3Q9 Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249 MC4zMwogcmV2aXNpb249Mgotc2hvcnRfZGVzYz0iR05VIENyb3NzIHRvb2xjaGFpbiBmb3IgdGhl ICR7X3RyaXBsZXR9IExFIHRhcmdldCAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxl PXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0aC1m bG9hdD1zb2Z0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3Ig JHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCi1saWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS4wLW9yLWxhdGVy IgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9n Y2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjcsMzQ2ICsyNiwxNiBAQCBjaGVja3N1bT0i MGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZl NDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlkODFi ZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIz OWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9z cz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2Vk ZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9IiR7 cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJpcF9maWxlcz0ibGli Y2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3Bp Yy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotCi1pZiBb ICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBj cm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitjcm9zc190cmlwbGV0 PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfYmludXRpbHNfY29uZmln dXJlX2FyZ3M9Ii0td2l0aG91dC1mcCIKK2Nyb3NzX2dsaWJjX2NvbmZpZ3VyZV9hcmdzPSItLXdp dGhvdXQtZnAiCitjcm9zc19nbGliY19jZmxhZ3M9Ii1PcyAtbWFyY2g9YXJtdjV0ZSAtbXNvZnQt ZmxvYXQgLW1mbG9hdC1hYmk9c29mdCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g ImFybXY1dGVsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0 byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1l PSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4K LQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQot Ci1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51 eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQot Ci0JbWFrZSBBUkNIPWFybSBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hE Ul9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAK LQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4i Ci0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBi aW51dGlscy1idWlsZAotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0 PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsg LWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n Y2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQg Li4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2Mt Ym9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJh dG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJn cys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0i LU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9j b25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQot CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9nbGliY19oZWFkZXJz KCkgewotCWxvY2FsIF9hcmdzIGYKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259 Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlf YXBwbHlfcGF0Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMt aGVhZGVycyBdICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQll Y2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxp YmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3Ry aXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIg Q1BQPSIke190cmlwbGV0fS1jcHAiCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9 IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9v dH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlf YXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIK LQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSAtayBpbnN0YWxsLWhlYWRlcnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9v dD0ke19zeXNyb290fQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0K LQotX2dsaWJjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2xp YmNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBnbGliY1xuIgotCi0JWyAhIC1kIGdsaWJjLWJ1aWxkIF0gJiYgbWtk aXIgZ2xpYmMtYnVpbGQKLQljZCBnbGliYy1idWlsZAotCi0JZWNobyAic2xpYmRpcj0vdXNyL2xp YjMyIiA+IGNvbmZpZ3Bhcm1zCi0KLQllY2hvICJsaWJjX2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+ IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVhbnVwPXllcyIgPj4gY29uZmlnLmNh Y2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBc Ci0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiCi0JZXhwb3J0IENG TEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIK LQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWRpc2FibGUtcHJvZmlsZSIK LQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jz b2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1lbmFi bGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0k e19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3Ny Y30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAh IC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5z ZXQgTEQgQVMgQ1BQCi0JZXhwb3J0IENDPSJnY2MiIENGTEFHUz0iLU9zIC1waXBlIgotCi0JIyBN YWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25l IF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3Iv bGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xp YmMuc28KLQkJc2VkIC1lICJzLCAvbGliMzIvLCAke19zeXNyb290fS9saWIzMi8sZztzLCAvdXNy L2xpYjMyLywgJHtfc3lzcm9vdH0vdXNyL2xpYjMyLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9s aWIvbGliYy5zbwotCQl0b3VjaCAuc2VkX3N1YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0t dGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9 IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdv LGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRo LWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlf YXJncys9IiAtLWVuYWJsZS1sb25nLWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIK LQlfYXJncys9IiAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUt Z251LXVuaXF1ZS1vYmplY3QiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4 IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNpbGtydHMiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlidnR2IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnN0ZGN4eC10 aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUiCi0JX2FyZ3MrPSIg JHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJn c30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2Rv bmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290 fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgot CWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIEVuc3VyZSB3ZSB1c2Ugc2Fu ZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAg UkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhw b3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9zIgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2dj Y19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1 aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUg bGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBd OyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJ CSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElS fS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3 cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAot Ci0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERF U1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lz cm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciBNSVBTCi0J Y2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNU QUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAot CXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5p bnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQlj ZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFy bCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4q Lip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRh bGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5z byAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2Fk YWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAt c3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElS fS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0 b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQg aXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVz dGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0J cm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJl bW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJl cnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8k e19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNy b290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmktbGliY19wYWNrYWdlKCkg ewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzc0LDYg KzQzLDYgQEAgY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmktbGliY19wYWNrYWdlKCkgewogCW5vdmVy aWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJ dm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDc5MzY5YjNjN2RhN2Q3OTM3 M2Y2NTFkZjcyMDM2NjcyMTc3MGY5ZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMjUgRGVjIDIwMjAgMjA6MTA6NDUg KzAxMDAKU3ViamVjdDogW1BBVENIIDA2LzI2XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmOiBy ZWRvIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJp aGYvdGVtcGxhdGUgfCAzNTkgKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTMgaW5zZXJ0aW9ucygrKSwgMzQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxp bnV4LWdudWVhYmloZi90ZW1wbGF0ZQppbmRleCA0ZTQ2YmExZTMwNi4uOWEzN2E0M2Q0OGMgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMjIgKzEs MjEgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1nbnVlYWJp aGYnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmJwor X3RyaXBsZXQ9YXJtLWxpbnV4LWdudWVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2dj Y192ZXJzaW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5 Ci0KLV90cmlwbGV0PWFybS1saW51eC1nbnVlYWJpaGYKLV9mcHVmbGFncz0iLS13aXRoLWFyY2g9 YXJtdjYgLS13aXRoLWZwdT12ZnAgLS13aXRoLWZsb2F0PWhhcmQiCi1fYXJjaGZsYWdzPSItbWFy Y2g9YXJtdjYgLW1mcHU9dmZwIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lzcm9vdD0iL3Vzci8ke190 cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZp c2lvbj0yCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxl dH0gTEUgdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9z cworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0 aC1mbG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXgg cGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCi1saWNl bnNlPSJQdWJsaWMgRG9tYWluIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9i aW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2Nj LSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjcsMzQ2ICsy NiwxNCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1 NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNi ZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5 ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRp c2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93 cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBl cmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1k ZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igot bm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2Nf ZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEg bGliZ21lbS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVu Ci0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIK LWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jv c3NfZ2xpYmNfY2ZsYWdzPSItT3MgLW1hcmNoPWFybXY2IC1tZnB1PXZmcCAtbWZsb2F0LWFiaT1o YXJkIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJtdjZsIiBdOyB0aGVuCiAJ YnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1fYXBw bHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQot CWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkg JDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygpIHsK LQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAk e3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgQVJN XG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybSBoZWFk ZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3Vz ciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQot fQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9 Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1z Z19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxzLWJ1 aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0 aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0 ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAk e19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1f Z2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19i b290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192 ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7 IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0g JiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAt LWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0 aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMi Ci0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0i LU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQot Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5n Y2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3Mg ZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hCUFNf U1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQ S0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEgIiRm IgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtkaXIg Z2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2Vk X3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVz IiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtf dHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNw cCIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0 fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlf YXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtl cm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtfZ2xp YmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVhZGVy cyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0 b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7 Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGds aWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1idWlsZAotCWNk IGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliMzIiID4gY29uZmlncGFybXMK LQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNo byAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0i JHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9 LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUgJHtf YXJjaGZsYWdzfSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGly PS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmln LWNhY2hlIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9hcmdzKz0iIC0tZW5hYmxl LW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3Igot CV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259L2Nv bmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9yb290 PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRfZG9u ZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYg bWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBMRCBBUyBDUFAKLQlleHBv cnQgQ0M9ImdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRvIHRh cmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQgLWUg InMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290fS91 c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUgInMs IC9saWIzMi8sICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGliMzIvLCAke19zeXNyb290 fS91c3IvbGliMzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRvdWNo IC5zZWRfc3Vic3RfZG9uZQotCWZpCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxl LWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAt LWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0J X2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVuYWJsZS1sb25n LWxvbmd4IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVuYWJsZS1s aW5rZXItYnVpbGQtaWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJn cys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYmNpbGtydHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlidnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgt cGNoIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0 aC1saW5rZXItaGFzaC1zdHlsZT1nbnUiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4v Z2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9i c30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7 Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vz ci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxu IC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUK LQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0 IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENG TEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhG TEFHUz0iLU9zIgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhf aGVhZGVycwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgot Ci0JIyBpbnN0YWxsIGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxk Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdj YwotCWNkICR7d3Jrc3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0 YWxsCi0KLQkjIG1vdmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0v dXNyL2xpYi9saWJjYzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBp bnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciBNSVBTCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7 X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmlu c3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2Ry bQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVp bGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5z dGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGli cmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGli L2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElS fS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpv cnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFy bC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2 ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXty bCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFz IGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1 bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNv bmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVm ZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNU RElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIs ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUs bGliZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jv c3MtYXJtLWxpbnV4LWdudWVhYmloZi1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAt IGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCkBAIC0zNzQsNiArNDEsNiBAQCBjcm9zcy1hcm0t bGludXgtZ251ZWFiaWhmLWxpYmNfcGFja2FnZSgpIHsKIAlub3ZlcmlmeXJkZXBzPXllcwogCiAJ cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3Nz X3RyaXBsZXR9CiAJfQogfQoKRnJvbSBhZTA0NjBiMDM0Y2Y2YWNlMzYwMjc1MWUyNTI2ZTNiZmNm ODA0ZWY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIxOjA4OjI3ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yNl0gY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpOiByZXdvcmsgd2l0aCB2b2lkLWNy b3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlIHwgMzA0 ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCsp LCAyODkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgt bXVzbGVhYmkvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaS90ZW1w bGF0ZQppbmRleCA3NGI4ZThkNGMxMS4uNDc4M2QwM2ZhNTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJt LWxpbnV4LW11c2xlYWJpL3RlbXBsYXRlCkBAIC0xLDIwICsxLDE5IEBACi0jIFRlbXBsYXRlIGJ1 aWxkIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtbXVzbGVhYmknCi0jCisjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy1hcm0tbGludXgtbXVzbGVhYmknCitfdHJpcGxldD1hcm0tbGludXgtbXVz bGVhYmkKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211c2xf dmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKIF9saWJ1Y29udGV4dF92ZXJzaW9u PTAuOS4wCi0KLV90cmlwbGV0PWFybS1saW51eC1tdXNsZWFiaQotX2ZwdWZsYWdzPSItLXdpdGgt YXJjaD1hcm12NXRlIC0td2l0aG91dC1mcCAtLXdpdGgtZmxvYXQ9c29mdCIKLV9hcmNoZmxhZ3M9 Ii1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAtbWZsb2F0LWFiaT1zb2Z0IgotX3N5c3Jvb3Q9 Ii91c3IvJHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249 MC4zMwogcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBBUk12NSBU RSB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9 Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRoLWZsb2F0PXNvZnQiCitob3N0bWFrZWRlcGVuZHM9 InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitk ZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rl c2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBNSVQiCkBAIC0zMCwyOTYgKzI5LDIzIEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYx OTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1 NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQog IDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJlNjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdl YzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1u b2RlYnVnPXllcwotY3JlYXRlX3dya3NyYz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2Nj LW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9m aWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxp YmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5h IgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9z c190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saWJ1Y29udGV4dF9hcmNoPWFybQorY3Jvc3Nf bGludXhfYXJjaD1hcm0KK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhvdXQt ZnAiCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1hcm12NXRlIC1tc29mdC1mbG9hdCAt bWZsb2F0LWFiaT1zb2Z0IgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJtdjV0 ZWwtbXVzbCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8g aXRzZWxmIgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0i JChiYXNlbmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0J CXBhdGNoIC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQot X2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmlu dXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51 dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlz YWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdp dGgtc3lzdGVtLXpsaWIiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAg IiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNs LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3Rz dHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgt bmV3bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0 aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRp c2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3lt dmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2Zw dWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4v Z2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9i c30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25l Ci19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IExpbnV4IEFQSSBoZWFkZXJzIGZvciBBUk1cbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNp b259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFS Q0g9YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtf c3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9i dWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJz aW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBs eSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dE SVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9t dXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25l Ci0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7 X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21h a2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dy a3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAt ZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBz dGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFy IiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdz fSIgXAotCQltYWtlIEFSQ0g9YXJtIGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEg JHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWls ZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtz cmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQg XSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0 cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRo IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVy cyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZs YWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0K LWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQg Q0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZM QUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUi IENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJp biBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJ bWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jv b3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNy b290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMy Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAot CV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9saWJ1Y29u dGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBp bmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9 IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNm IGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVy cwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm0g SU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3Rh bGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFt ZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwot CWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGlu c3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0J bWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8g dGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAot CWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNU RElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVk LwotCi0JIyBNYWtlIGxkLW11c2wtYXJtLnNvLjEgc3ltbGluayByZWxhdGl2ZS4KLQlsbiAtc2Yg bGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1hcm0uc28uMQot Ci0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpv cnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0J bXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0 LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMg V2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBp dCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1v dmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRo ZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp Yi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RF U1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJl Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNU RElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9s aWIvKi5weQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQog Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKIAlub3Zl cmlmeXJkZXBzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJ CXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSA2NjgyNDk1OWVlY2FmNzNk MTM5MjA3NjEzM2ZkMmRlNjIzYzNiMTMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBx NjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIxOjA4OjM5 ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNl0gY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGY6 IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVz bGVhYmloZi90ZW1wbGF0ZSB8IDMwMiArLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE0IGluc2VydGlvbnMoKyksIDI4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1h cm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQppbmRleCA5MmUyNWY0OWU0Ny4uMzZjNDdjMTMz ZGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQpAQCAt MSwyMCArMSwxOSBAQAotIyBUZW1wbGF0ZSBidWlsZCBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4 LW11c2xlYWJpaGYnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtbXVz bGVhYmloZicKK190cmlwbGV0PWFybS1saW51eC1tdXNsZWFiaWhmCiBfYmludXRpbHNfdmVyc2lv bj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhf dmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAotCi1fdHJpcGxldD1hcm0t bGludXgtbXVzbGVhYmloZgotX2ZwdWZsYWdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1 PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12NiAtbWZwdT12 ZnAgLW1mbG9hdC1hYmk9aGFyZCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2du YW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rl c2M9IkNyb3NzIHRvb2xjaGFpbiBmb3IgQVJNdjYgTEUgSGFyZCBGbG9hdCB0YXJnZXQgKG11c2wp IgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFy bXY2IC0td2l0aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgoraG9zdG1ha2VkZXBlbmRzPSJ0 YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwg TUlUIgpAQCAtMzAsMjk1ICsyOSwyMiBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3 MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUy OGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAw ZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMy Nzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9k ZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1v YmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdt cC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmls ZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJn bmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIK LWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorY3Jvc3Nf dHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1hcm0KK2Nyb3NzX2xp bnV4X2FyY2g9YXJtCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1hcm12NiAtbWZwdT12 ZnAgLW1mbG9hdC1hYmk9aGFyZCIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImFy bXY2bC1tdXNsIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0 byBpdHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1l PSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4K LQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQot Ci1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5i aW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJp bnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWls ZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t d2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGls cy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmln dXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3 cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxv Y2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtY QlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1w MCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11 c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9v dHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0 aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13 aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29t cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgJHtf ZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgTGludXggQVBJIGhlYWRlcnMgZm9yIEFSTVxuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVy c2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3Bh dGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2Ug QVJDSD1hcm0gaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1hcm0gSU5TVEFMTF9IRFJfUEFUSD0k e19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4 X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3Zl cnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFw cGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BL R0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9 L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRv bmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMg JHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7 bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7 d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsKLQlb IC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdlJ3Jl IHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxldH0t YXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxh Z3N9IiBcCi0JCW1ha2UgQVJDSD1hcm0gbGlidWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQu YSAke19zeXNyb290fS91c3IvbGliCi0KLQl0b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1 aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtz cmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQg XSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdl dD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlf YXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0 cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxl LWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFw IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVy cyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZs YWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0K LWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQg Q0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZM QUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUi IENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJp biBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJ bWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jv b3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNy b290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMy Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAot CV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9saWJ1Y29u dGV4dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBp bmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9 IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNm IGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVy cwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm0g SU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3Rh bGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFt ZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8k e19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwot CWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGlu c3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0J bWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8g dGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAot CWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNU RElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0J cm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVk LwotCi0JIyBNYWtlIGxkLW11c2wtYXJtaGYuc28uMSBzeW1saW5rIHJlbGF0aXZlLgotCWxuIC1z ZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLWFybWhmLnNv LjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlf bWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3Ry aXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxp Yn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9y dmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGli Z25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0K LQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVl ZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28g cmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0 aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYg JHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9z aGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9v dH0vbGliLyoucHkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19 Ci0KIGNyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMK IAlub3ZlcmlmeXJkZXBzPXllcworCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jv b3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9CiAJfQogfQoKRnJvbSBlYzEyMmY1ZGJl YjU4M2FhNWE2N2FiZjVjM2MwMjgyOWU3YjEwYWQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDI1IERlYyAyMDIwIDIx OjM2OjMzICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNl0gY3Jvc3MtYXJtdjdsLWxpbnV4LWdu dWVhYmloZjogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybXY3 bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgfCAzNjMgKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzQ4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3Br Z3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQppbmRleCA5Njk2Njk3ZGNl Yi4uNTU1MGY0ZTM0OWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdu dWVhYmloZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJp aGYvdGVtcGxhdGUKQEAgLTEsMzc5ICsxLDQ2IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9y ICdjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZicKK190cmlwbGV0PWFybXY3bC1saW51eC1nbnVl YWJpaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJj X3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1hcm12N2wtbGlu dXgtZ251ZWFiaWhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1hcmNoPWFybXY3LWEgLS13aXRoLWZwdT12 ZnB2MyAtLXdpdGgtZmxvYXQ9aGFyZCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1hcm12Ny1hIC1tZnB1 PXZmcHYzIC1tZmxvYXQtYWJpPWhhcmQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQog cGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0yCi1zaG9y dF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gTEUgdGFyZ2V0 IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJl X2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY3LWEgLS13aXRoLWZwdT12ZnB2MyAtLXdpdGgtZmxvYXQ9 aGFyZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259 XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7X3Ry aXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhv bWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0 dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51 dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9n Y2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHA6 Ly9mdHAuZ251Lm9yZy9nbnUvZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6Cisg JHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtLRVJO RUxfU0lURX0va2VybmVsL3Y0LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hl Y2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4 MmU4YjM2ZTQ3M2VlMDQKICA3MWUxOTc4Njc2MTFmNjA1NGFhMTExOWIxM2EwYzBhYmFjMTI4MzQ3 NjVmZTJkODFmMzVhYzU3Zjg0Zjc0MmQxCiAgZTJjNDExNGU1NjlhZmJlN2VkYmMyOTEzMWE0M2Jl ODMzODUwYWI5YTQ1OWQ4MWJlYjI1ODgwMTZkMmJiYjhhZgogIDBjNjhmNTY1NTUyOGFlZDRmOTlk YWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlz YWJsZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dy a3NyYz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1u b3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19l aC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBs aWJnbWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4K LQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgot ZmkKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtCitjcm9z c19nbGliY19jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjctYSAtbWZwdT12ZnB2MyAtbWZsb2F0LWFi aT1oYXJkIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJtdjdsIiBdOyB0aGVu CiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCi1f YXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIK LQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3Mg LWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fbGludXhfaGVhZGVycygp IHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQlj ZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3Ig QVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPWFybSBo ZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPWFybSBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9 L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9u ZQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtz cmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzXG4iCi0JWyAhIC1kIGJpbnV0aWxz LWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1t dWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0td2l0aC1z eXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQot Ci1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdj Y19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2dj Y192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFw IF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aG91dC1oZWFkZXJzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJpdG0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9 IiAtLWRpc2FibGUtdGhyZWFkcyIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlf YXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1t dWx0aWxpYiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUt YXMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFH Uz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdz fQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9jYWwgX2Fy Z3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZSBdICYmIHJldHVybiAw Ci0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0KLQlpZiBbIC1kICIke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19T UkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDEg IiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1oZWFkZXJzIF0gJiYgbWtk aXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVjaG8gImxpYmNfY3ZfZm9y Y2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9 eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0i JHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9 LWNwcCIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIK LQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1y cGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxl LWtlcm5lbD0yLjYuMjciCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIC1rIGluc3RhbGwtaGVh ZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFsbF9yb290PSR7X3N5c3Jvb3R9Ci0K LQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9uZQotfQotCi1fZ2xpYmNfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lIF0g JiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3Nz IGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1idWlsZAot CWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliMzIiID4gY29uZmlncGFy bXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0J ZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBD Qz0iJHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBs ZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUg JHtfYXJjaGZsYWdzfSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGli ZGlyPS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0i IC0td2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29u ZmlnLWNhY2hlIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1wcm9maWxlIgotCV9hcmdzKz0iIC0tZW5h YmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3 IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259 L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbF9y b290PSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfYnVpbGRf ZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3Jj fS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0g JiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBMRCBBUyBDUFAKLQll eHBvcnQgQ0M9ImdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0KLQkjIE1ha2UgdGhpcyBsaW5rIHRv IHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgotCQlzZWQg LWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19zeXNyb290 fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlzZWQgLWUg InMsIC9saWIzMi8sICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGliMzIvLCAke19zeXNy b290fS91c3IvbGliMzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXRv dWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0J X2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9u cyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5hYmxl LWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVj dCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgot CV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1 bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRp c2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlf YXJncys9IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRt IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0 ZGN4eC1wY2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIg LS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0K LQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21h a2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWls ZCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBb ICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9v dH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgot CQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIg JHtfc3lzcm9vdH0vbGliMzIKLQotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0J dW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5z ZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3Mi IENYWEZMQUdTPSItT3MiCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9s aW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQKLQlfZ2NjX2J1aWxk Ci19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsg dGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQot CQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1z ZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19z eXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp YjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMt YnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jv c3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9 IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNU RElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0K LQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIE1JUFMKLQljZCAke3dya3NyY30vbGlu dXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtE RVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1l IC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUvZHJtCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGli Yy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFs bCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJl ZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVz ci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxp YmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19t YWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGli Z25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBn Y2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQg YXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNu J3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5 IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAk e0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmlu LGxpYixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2Jpbixz aGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotfQot CiBjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmLWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVz CiAJbm92ZXJpZnlyZGVwcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNy b290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZyb20gNzY4M2IyNWMz MWViZDBkYWZmNTJmY2U5YTZkMTJjMzlhNWRhNWFiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAyNSBEZWMgMjAyMCAy MTozODo0NCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjZdIGNyb3NzLWFybXY3bC1saW51eC1t dXNsZWFiaWhmOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIC4uLi9jcm9zcy1hcm12N2wt bGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSAgICB8IDMwNSArLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyOTEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKaW5kZXggNTVlMzQ1 YjVjYzEuLjU1NGM4YzIxNTk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51 eC1tdXNsZWFiaWhmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LW11 c2xlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMTkgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmls ZSBmb3IgJ2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmJwotIworIyBUZW1wbGF0ZSBmaWxl IGZvciAnY3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYnCitfdHJpcGxldD1hcm12N2wtbGlu dXgtbXVzbGVhYmloZgogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4w CiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4xOQogX2xpYnVjb250ZXh0 X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9YXJtdjdsLWxpbnV4LW11c2xlYWJpaGYKLV9mcHVm bGFncz0iLS13aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1o YXJkIgotX2FyY2hmbGFncz0iLW1hcmNoPWFybXY3LWEgLW1mcHU9dmZwdjMgLW1mbG9hdC1hYmk9 aGFyZCIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3Ry aXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTMKLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xj aGFpbiBmb3IgQVJNdjcgTEUgSGFyZCBGbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9 dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY3LWEgLS13aXRoLWZw dT12ZnB2MyAtLXdpdGgtZmxvYXQ9aGFyZCIKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpj IGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJt cGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtn bmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9z cyB0b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTMw LDI5OCArMjksMjIgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBh OGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFl NzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3 ZWYxNzUxNTNiYmU2MGE1NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAot bGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1j cmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28g ZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZf c2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEg bGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtf dHJpcGxldH0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9YXJtCitjcm9zc19saW51eF9hcmNoPWFy bQorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PMiAtbWFyY2g9YXJtdjctYSAtbWZwdT12ZnB2MyAtbWZs b2F0LWFiaT1oYXJkIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAiYXJtdjdsLW11 c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2Vs ZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFz ZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRj aCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51 dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUt bmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUt d2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9z dCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIK LQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xp YiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3 bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMi Ci0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFn c30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4uL2djYy0k e19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZQotfQot Ci1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBMaW51 eCBBUEkgaGVhZGVycyBmb3IgQVJNXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQot Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVz LyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9 YXJtIGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9YXJtIElOU1RBTExfSERSX1BBVEg9JHtfc3lz cm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWls ZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9u fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBBcHBseSBt dXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9 L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9tdXNs L3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlkb25lCi0J ZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2Fy Y2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3Ny Y30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0JWyAtZiAk e3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdyZSBzdGF0 aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9LWFyIiBB Uz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZsYWdzfSIg XAotCQltYWtlIEFSQ0g9YXJtIGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtf c3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9k b25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9 Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAm JiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNy IgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJn cys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFu LGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRl ZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9 IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIK LQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdz fSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRv X2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0Mg Q1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdT IENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENY WEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBz YmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtk aXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9 LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290 fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9n Y2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9saWJ1Y29udGV4 dF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNs dWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7 Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwK LQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxp YiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7REVT VERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycwot CWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD1hcm0gSU5T VEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwK LQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAu aW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNk ICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3Rh bGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFr ZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhl IHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNk ICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElS fS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0g LXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwot Ci0JIyBNYWtlIGxkLW11c2wtYXJtaGYuc28uMSBzeW1saW5rIHJlbGF0aXZlLgotCWxuIC1zZiBs aWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNsLWFybWhmLnNvLjEK LQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFq b3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBs ZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0v bGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgot CW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVy fS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25h dC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkj IFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMg aXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVt b3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0 aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtE RVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFy ZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVT VERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v bGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQog Y3Jvc3MtYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcwog CW5vdmVyaWZ5cmRlcHM9eWVzCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9 CiAKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9 CgpGcm9tIGU1Yjg0NDcyNTIyZWRjMzJiMjQ2MmViNzY4NWUzODM3MzhjM2ZlMzcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZy aSwgMjUgRGVjIDIwMjAgMjI6NTE6MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDExLzI2XSBjcm9z cy1pNjg2LXBjLWxpbnV4LWdudTogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dz L2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIHwgMzU5ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzQ0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUg Yi9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDA1NmQyNTUz MDQwLi5jYzliOTk5OTllZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4 LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBs YXRlCkBAIC0xLDIxICsxLDIwIEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1p Njg2LXBjLWxpbnV4LWdudScKLSMKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWk2ODYtcGMt bGludXgtZ251JworX3RyaXBsZXQ9aTY4Ni1wYy1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9u PTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3Zl cnNpb249NC4xOQotCi1fdHJpcGxldD1pNjg2LXBjLWxpbnV4LWdudQotX2FyY2hmbGFncz0iLW1h cmNoPWk2ODYgLW10dW5lPWdlbmVyaWMiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQog cGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj00Ci1zaG9y dF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gdGFyZ2V0IChi aW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworaG9zdG1ha2VkZXBl bmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9 ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVs IgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9y dF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVy PSJKw7xyZ2VuIEJ1Y2htw7xsbGVyIDxwdWxsbW9sbEB0LW9ubGluZS5kZT4iCi1ob21lcGFnZT0i aHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBH UEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0k e19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI2LDM1MSArMjUs MjMgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3 Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4 MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRh ZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbm9jcm9zcz15 ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWxpYjMyZGlzYWJsZWQ9eWVzCi1jcmVhdGVfd3Jr c3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVs IgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1ub3N0 cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5h Ci0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJn bWVtLmEiCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4KLQli cm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgotZmkK K2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9eDg2CisjIGV4cGxp Y2l0bHkgZW5hYmxlIGZvciBmaW5hbCBnY2MsIGFzIGdmb3J0cmFuIGRvZXMgbm90IGJ1aWxkIHdp dGhvdXQgb24geDg2Citjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWxpYnF1YWRt YXRoIgorY3Jvc3NfZ2xpYmNfY2ZsYWdzPSItTzIgLVduby1lcnJvciAtbWFyY2g9aTY4NiAtbXR1 bmU9Z2VuZXJpYyIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gImk2ODYiIF07IHRo ZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAK LV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIp IgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJn cyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWls ZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLSR7X2JpbnV0aWxzX3Zl cnNpb259Ci0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBc biIKLQotCVsgISAtZCAuLi9iaW51dGlscy1idWlsZCBdICYmIG1rZGlyIC4uL2JpbnV0aWxzLWJ1 aWxkCi0JY2QgLi4vYmludXRpbHMtYnVpbGQKLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJn cys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19z eXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMt JHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3Vy ZS1ob3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jr c3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2Nh bCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNf U1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIk ZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4i Ci0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAK LQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQkjIEZpeCBodHRwczovL2J1aWxkLnZvaWRsaW51eC5v cmcvYnVpbGRlcnMveDg2XzY0X2J1aWxkZXIvYnVpbGRzLzI0ODk1L3N0ZXBzL3NoZWxsXzMvbG9n cy9zdGRpbwotCWV4cG9ydCBnY2NfY3ZfbGliY19wcm92aWRlc19zc3A9eWVzCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJn cys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29t cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJt dWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iIC0tZGlz YWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGli IgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlf YXJncys9IiAke19mcHVmbGFnc30iCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAg LWcwIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19i b290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8u bGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVycyBmb3IgeDg2XG4iCi0KLQljZCBsaW51eC0k e19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXg4NiBoZWFkZXJzX2NoZWNrCi0JbWFrZSBB UkNIPXg4NiBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwK LQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1fZ2xpYmNfaGVhZGVy cygpIHsKLQlsb2NhbCBfYXJncyBmCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9u ZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0K LQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVuCi0JCWZv ciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9h cHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBnbGliYy1o ZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMKLQotCWVj aG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGli Y19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X3NzcD1u byIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7 X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1j cHAiCi0KLQlfYXJncz0iLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0J X2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBj IgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1r ZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAtayBpbnN0YWxsLWhlYWRl cnMgY3Jvc3NfY29tcGlsaW5nPXllcyBcCi0JCWluc3RhbGxfcm9vdD0ke19zeXNyb290fQotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUKLX0KLQotX2dsaWJjX2J1aWxkKCkg ewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xp YmNcbiIKLQotCVsgISAtZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2Qg Z2xpYmMtYnVpbGQKLQotCWVjaG8gInNsaWJkaXI9L3Vzci9saWIzMiIgPiBjb25maWdwYXJtcwot Ci0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hv ICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3Zf c3NwPW5vIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBM RD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBs ZXR9LWNwcCIKLQlleHBvcnQgQ0ZMQUdTPSItTzIgLXBpcGUgLVduby1lcnJvciAke19hcmNoZmxh Z3N9IgotCV9hcmdzPSItLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS1wcmVmaXg9L3Vz ciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYjMyIgotCV9hcmdzKz0iIC0td2l0aC1oZWFk ZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgot CV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNv bGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtf YXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNyb290 fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQotX2dj Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1i dWlsZAotCWNkIGdjYy1idWlsZAotCi0JdW5zZXQgTEQgQVMgQ1BQCi0KLQkjIE1ha2UgdGhpcyBs aW5rIHRvIHRhcmdldCBsaWJzLgotCWlmIFsgISAtZiAuc2VkX3N1YnN0X2RvbmUgXTsgdGhlbgot CQlzZWQgLWUgInMsIC9saWIvLCAke19zeXNyb290fS9saWIvLGc7cywgL3Vzci9saWIvLCAke19z eXNyb290fS91c3IvbGliLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQlz ZWQgLWUgInMsIC9saWIzMi8sICR7X3N5c3Jvb3R9L2xpYjMyLyxnO3MsIC91c3IvbGliMzIvLCAk e19zeXNyb290fS91c3IvbGliMzIvLGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNv Ci0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZpCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBs ZXR9IgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0td2l0 aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFk YSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUt YXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGls aWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2psai1l eGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9zaXgiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11bmlx dWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJs ZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9u IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJjaWxrcnRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJpdG0iCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnZ0diIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3RkY3h4LXBj aCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzdGRjeHgtdGltZSIKLQlfYXJncys9IiAtLXdpdGgt bGlua2VyLWhhc2gtc3R5bGU9Z251IgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNDPSJn Y2MiIENGTEFHUz0iLU8yIC1waXBlIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmln dXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdj Y19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVu dmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFE RUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MKLQlleHBvcnQg Q0ZMQUdTPSItT3MiIENYWEZMQUdTPSItT3MiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJl eGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhl bgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7 X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAk e19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNy L2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19i dWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVhZGVycwot CV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3IgZiBp biBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8k e2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4g LXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGli ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGls cwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9 IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxk Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyog dG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkgaGVhZGVycyBm b3IgeDg2LgotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJD SD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJz X2luc3RhbGwKLQotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNs dWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZv ciB0YXJnZXQKLQljZCAke3dya3NyY30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxp bmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2dj Y192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2Nf dmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19z eXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25h cmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAt dmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRv IGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBi dWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9t IHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21p YyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21p Yy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNy L2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYg JHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWIsZXRjLHZhcn0KLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQogY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUtbGli Y19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXll cwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBsZXR9 CiAJfQogfQoKRnJvbSBlYjQ5NTJiYzg5ODUwNDgxY2NiZjE4Nzk3MTEwMjI2MzMxNmNiZWZmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBGcmksIDI1IERlYyAyMDIwIDIyOjU3OjQxICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8y Nl0gY3Jvc3MtaTY4Ni1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzEwICsrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAyOTIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LWxpbnV4LW11c2wvdGVtcGxh dGUgYi9zcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA4ZDA5ZTRj N2UwNS4uMTIxZWUwNTZmNTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1t dXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRl CkBAIC0xLDE5ICsxLDE4IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1pNjg2 LWxpbnV4LW11c2wnCi0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1pNjg2LWxpbnV4LW11 c2wnCitfdHJpcGxldD1pNjg2LWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9n Y2NfdmVyc2lvbj05LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQu MTkKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTAuOS4wCi0KLV90cmlwbGV0PWk2ODYtbGludXgtbXVz bAotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi1fYXJjaGZsYWdzPSItbWFyY2g9aTY4NiIK LQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0zCi1z aG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIGk2ODYgdGFyZ2V0IChtdXNsKSIKK2J1aWxk X3N0eWxlPXZvaWQtY3Jvc3MKK2hvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBm bGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg emxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGli Yy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hh aW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iSsO8cmdlbiBCdWNobcO8bGxlciA8cHVs bG1vbGxAdC1vbmxpbmUuZGU+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAt MjksMjk0ICsyOCwyMCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3 MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlk YWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEz MDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4Igog Ci1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMK LWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28g ZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZf c2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEg bGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIk e3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtf dHJpcGxldH0KK2Nyb3NzX2xpYnVjb250ZXh0X2FyY2g9eDg2Citjcm9zc19saW51eF9hcmNoPXg4 NgorIyBleHBsaWNpdGx5IGVuYWJsZSBmb3IgZmluYWwgZ2NjLCBhcyBnZm9ydHJhbiBkb2VzIG5v dCBidWlsZCB3aXRob3V0IG9uIHg4NgorY3Jvc3NfZ2NjX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJs ZS1saWJxdWFkbWF0aCIKK2Nyb3NzX211c2xfY2ZsYWdzPSItTzIgLW1hcmNoPWk2ODYgLW10dW5l PWdlbmVyaWMiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJpNjg2LW11c2wiIF07 IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZp CiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUg JDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAk YXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQg XSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxp YiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsg LWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n Y2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0J Zm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJ X2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2Rp ciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2FyZ3M9Ii0tdGFy Z2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9Igot CV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMi Ci0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRo IgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNp bWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8i Ci0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1P MCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9 Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51 eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVh ZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0K LQltYWtlIEFSQ0g9eDg2IGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERS X1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9 Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtf bXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgot Ci0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQ U19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRm IgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBl IC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0J bWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0 b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQo KSB7Ci0JWyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4g MAotCi0JY2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCXZzZWQgLWkgYXJj aC94ODYvc3RhcnRjb250ZXh0LlMgLWUgXAotCSAicztfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4O2k2 ODZfZ2V0X3BjX3RodW5rX2J4O2ciCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkg aGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3Ry aXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlICR7X2FyY2hmbGFnc30iIFwKLQkJbWFr ZSBBUkNIPXg4NiBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29udGV4dC5hICR7X3N5c3Jvb3R9 L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZQotfQot Ci1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAke3dya3NyY30vLmdjY19idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdj Yy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9h cmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlf YXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3Ai Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUt bXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0i IC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8iCi0J X2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52 aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURF TEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBD RkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1 ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3Iv JHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlp ZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19z eXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0J X2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNs X2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxs KCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVT VERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxs IGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhf dmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19z eXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5j bWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkj IGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQlt YWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0J Y2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwK LQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3Iv bGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3Rh bGwgbXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNp b259Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBS ZW1vdmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7 X3RyaXBsZXR9LyovaW5jbHVkZS1maXhlZC8KLQotCSMgTWFrZSBsZC1tdXNsLWkzODYuc28uMSBz eW1saW5rIHJlbGF0aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc2YgbGliYy5zbyBsZC1tdXNsLWkzODYuc28uMQotCi0JIyBNb3ZlIGZpbGVzIHRv IC91c3IvbGliIChsaWI2NCkuCi0JaWYgWyAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWI2NCBdOyB0aGVuCi0JCW12ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0LyogJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliLwotCQlybWRpciAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci9saWI2NAotCWZpCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25hdCBzaGFy ZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2FkYWxpYj11 c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYgLXYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hdC0k e19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXN2ZiBs aWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmduYXQtJHtf bWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xp YmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0YXJnZXQg Z2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3QgbmVlZGVk IGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBpdCBkb2Vz bid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2Fy eSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYg JHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRj LHZhcn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGli ZXhlY30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290 fS97c2JpbixsaWJ9Citwb3N0X3BhdGNoKCkgeworCXZzZWQgLWkgbGlidWNvbnRleHQtJHtfbGli dWNvbnRleHRfdmVyc2lvbn0vYXJjaC94ODYvc3RhcnRjb250ZXh0LlMgXAorCQktZSBcICJzO19f aTY4Ni5nZXRfcGNfdGh1bmsuYng7aTY4Nl9nZXRfcGNfdGh1bmtfYng7ZyIKIH0KIAogY3Jvc3Mt aTY4Ni1saW51eC1tdXNsLWxpYmNfcGFja2FnZSgpIHsKQEAgLTMyNCw3ICs0OSw4IEBAIGNyb3Nz LWk2ODYtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJbm9zdHJpcD15ZXMKIAlub3Zlcmlm eXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0KIH0KCkZy b20gYzgwOGM4ZGI1MGY4ZjBiNmM5MDQyYTBlZTgyZWNjOTFjNzQwNWZkZCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAy NiBEZWMgMjAyMCAwMDowOTo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjZdIGNyb3NzLW1p cHMtbGludXgtbXVzbDogcmVkbyB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1t aXBzLWxpbnV4LW11c2wvdGVtcGxhdGUgfCAyODUgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDI2OCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y3Jvc3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDE5ZjYwMGM5ZTVhLi44OTdiYjcx NDU3ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjk2ICsx LDQ1IEBACi0jIFRlbXBsYXRlIGJ1aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2wn Ci0jCisjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2wnCitfdHJpcGxl dD1taXBzLWxpbnV4LW11c2wKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05 LjMuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBs ZXQ9bWlwcy1saW51eC1tdXNsCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1zb2Z0IC0td2l0aG91 dC1mcCIKLV9hcmNoZmxhZ3M9Ii1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCi1fc3lzcm9v dD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lv bj0wLjMzCiByZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIE1JUFMz MnIyIEJFIHNvZnRmbG9hdCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwor Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1zb2Z0Cisg LS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mt b2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMt ZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFt ZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0 b29sY2hhaW4gZm9yICR7X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2 b2lkbGludXgub3JnPiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRpc3RmaWxl cz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0u dGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKLSBodHRwOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0k e19tdXNsX3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFz ZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92 NC54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4 NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAg NzFlMTk3ODY3NjExZjYwNTRhYTExMTliMTNhMGMwYWJhYzEyODM0NzY1ZmUyZDgxZjM1YWM1N2Y4 NGY3NDJkMQogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3 MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIz OWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9z cz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi0KLWhvc3Rt YWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlzbDE1LWRldmVs Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJn Y2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0 LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFz ZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRj aCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51 dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUt bmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUt d2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9z dCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2Fy Z3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIK LQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xp YiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3 bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0J Q0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2MtJHtfZ2NjX3Zl cnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5z dGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2xpbnV4 X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhl YWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJ X2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhlYWRlcnNfY2hl Y2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9L3VzciBoZWFk ZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9uZQotfQotCi1f bXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lIF0gJiYgcmV0 dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltc2dfbm9ybWFs ICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBwYXRjaGVzIGlm IHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMi IF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0KLQlDQz0iJHtf dHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxhZ3N9IiBcCi0J CS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERF U1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxk X2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBd ICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91 c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5 c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9h cmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGZvcnRyYW4s bHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVm YXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAt LWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWlj IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1zaGFyZWQi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9Igot Ci0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHtt YWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVp bGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFgg Q1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hY RkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxB R1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAt cCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtm fSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7 Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19i b290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19idWlsZAotfQot Ci1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47 IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4K LQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgot Ci0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xp bnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0 YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0K LQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBn Y2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9 L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMg aW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0K LQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1s aW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIvbGQtbXVzbC1taXBzLnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLXNmLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGdu YXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24l LiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9h ZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9 LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtf YWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxu IC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RE SVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBz dHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtE RVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZh cn0KLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhl Y30KLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97 c2JpbixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNo PWFybQorY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJn cz0iLS13aXRob3V0LWZwIC0tZW5hYmxlLWRlZmF1bHQtaGFzaC1zdHlsZT1zeXN2IgorY3Jvc3Nf bXVzbF9jZmxhZ3M9Ii1PcyAtbWFyY2g9bWlwczMycjIgLW1zb2Z0LWZsb2F0IgogCiBjcm9zcy1t aXBzLWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZp bGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9 eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNy LyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGM2YmRhYTFmNjgzYjk0NWE1OWFiMDJlMjg4 OTFjZTMxZTdkM2ZjY2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMDA6MTA6MTEgKzAxMDAKU3Vi amVjdDogW1BBVENIIDE0LzI2XSBjcm9zcy1taXBzLWxpbnV4LW11c2xoZjogcmVkbyB3aXRoIHZv aWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZSB8 IDI4MiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlv bnMoKyksIDI2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMt bGludXgtbXVzbGhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90 ZW1wbGF0ZQppbmRleCA3OTkyODY0YThiNi4uNTQzYWUwNzlhMTggMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1t aXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAotIyBUZW1wbGF0ZSBi dWlsZCBmaWxlIGZvciAnY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYnCi0jCisjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy1taXBzLWxpbnV4LW11c2xoZicKK190cmlwbGV0PW1pcHMtbGludXgtbXVz bGhmCiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3Zl cnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90cmlwbGV0PW1pcHMtbGludXgt bXVzbGhmCi1fZnB1ZmxhZ3M9Ii0td2l0aC1mbG9hdD1oYXJkIC0td2l0aC1mcCIKLV9hcmNoZmxh Z3M9Ii1tYXJjaD1taXBzMzJyMiAtbWhhcmQtZmxvYXQiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlw bGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lv bj0zCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIE1JUFMzMnIyIEJFIGhhcmRmbG9h dCB0YXJnZXQgKG11c2wpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9 Ii0td2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1oYXJkCisgLS13aXRoLWxpbmtlci1o YXNoLXN0eWxlPXN5c3YiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwg cHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNp b259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7 X3RyaXBsZXR9IgogbWFpbnRhaW5lcj0iaGlwcGVyc29uMCA8aGlwcGVyc29uMEBnbWFpbC5jb20+ IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjcsMjY5ICsyNywxOSBAQCBj aGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2 YzgyZThiMzZlNDczZWUwNAogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdl NjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIy NTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXll cwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVz Ci0KLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFr ZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRldmVsIGlz bDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdj b3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMu YSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5h bWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhl bgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19 Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30v LmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNn X25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQg YmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1 aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAt LWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2JpbnV0 aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25m aWd1cmUtaG9zdCAmJiBtYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2gg LXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyot bXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1i b290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJh cAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13 aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAt LXdpdGgtbmV3bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4Igot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJn b21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgJHtfZnB1Zmxh Z3N9IgotCi0JQ0ZMQUdTPSItTzAgLWcwIiBDWFhGTEFHUz0iLU8wIC1nMCIgXAotCQkuLi9nY2Mt JHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0K LQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGlu dXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQlmb3Ig ZiBpbiAke1hCUFNfU1JDUEtHRElSfS9rZXJuZWwtbGliYy1oZWFkZXJzL3BhdGNoZXMvKi5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAkZgotCWRvbmUKLQotCW1ha2UgQVJDSD1taXBzIGhl YWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9bWlwcyBJTlNUQUxMX0hEUl9QQVRIPSR7X3N5c3Jvb3R9 L3VzciBoZWFkZXJzX2luc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGludXhfYnVpbGRfZG9u ZQotfQotCi1fbXVzbF9idWlsZCgpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBtdXNsIGxpYmNcbiIKLQotCSMgQXBwbHkgbXVzbCBw YXRjaGVzIGlmIHRoZXJlIGFyZSBhbnkKLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9tdXNs L3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRj aGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQkJZG9uZQotCWZpCi0K LQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyAke19hcmNoZmxh Z3N9IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5t dXNsX2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAt ZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3Jj fQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdj Yy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3Iv bGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysr LGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVu YWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1l bmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1w eCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliYXRvbWljIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWVuYWJs ZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgJHtfZnB1 ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQot CW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0K LQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNl dCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBD RkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlw ZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMg YmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0J CQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lz cm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5 c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGli MzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxk Ci0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2djY19i dWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMg YmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9 IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJ ZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0v JHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290 fS9saWIzMgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xp bnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5h bWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51 dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFs bCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVT VERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAk e0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNs LSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBp bnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVz bC5zbyBzeW1saW5rcyByZWxhdGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIvbGQtbXVzbC1taXBzLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVm ZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNU RElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0K LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30K LQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L2xpYi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2Jp bixsaWJ9Ci19Citjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFy bQorY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0i LS1lbmFibGUtZGVmYXVsdC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFncz0iLU9z IC1tYXJjaD1taXBzMzJyMiAtbWhhcmQtZmxvYXQiCiAKIGNyb3NzLW1pcHMtbGludXgtbXVzbGhm LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlw PXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBs ZXR9CiAJfQogfQoKRnJvbSAwYzdiNTkwNDNmODQwNDlkMWRhYjE4YWZlNzBmYWU2YTNiZjhiZjYy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDAwOjExOjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAx NS8yNl0gY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2w6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0t LQogc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDI4NSArKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDI2OCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNs L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRl eCAwYzhiNTE5YjNmOS4uOWY4OTRjNGUyZTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtbWlw c2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgt bXVzbC90ZW1wbGF0ZQpAQCAtMSwyOTYgKzEsNDUgQEAKLSMgVGVtcGxhdGUgYnVpbGQgZmlsZSBm b3IgJ2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsJwotIworIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jv c3MtbWlwc2VsLWxpbnV4LW11c2wnCitfdHJpcGxldD1taXBzZWwtbGludXgtbXVzbAogX2JpbnV0 aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4y NAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxldD1taXBzZWwtbGludXgtbXVzbAotX2Zw dWZsYWdzPSItLXdpdGgtZmxvYXQ9c29mdCAtLXdpdGhvdXQtZnAiCi1fYXJjaGZsYWdzPSItbWFy Y2g9bWlwczMycjIgLW1zb2Z0LWZsb2F0IgotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0iCi0K IHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249Mwotc2hv cnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBNSVBTMzJyMiBMRSBzb2Z0ZmxvYXQgdGFyZ2V0 IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3VyZV9hcmdzPSItLXdpdGgt YXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9c29mdAorIC0td2l0aC1saW5rZXItaGFzaC1zdHls ZT1zeXN2IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMi CittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRl dmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0 fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0 aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2dj Yy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cDov L3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oK KyBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9u fS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjQueC9saW51eC0ke19saW51eF92ZXJz aW9ufS50YXIueHoiCiBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4 YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2NzYxMWY2MDU0YWExMTE5 YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEKICAxMzcwYzlhODEyYjJj ZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgMGM2 OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3 NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVi dWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2Jq YyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGdtcC1kZXZlbCBt cGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3RyaXBfZmlsZXM9ImxpYmNh Zl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEKLSBsaWJnbmFybF9waWMu YSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdtZW0uYSIKLWRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1fYXBwbHlfcGF0Y2go KSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAt ZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91 Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwg X2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJu IDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxz IGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRp bHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9 JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRp c2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlfYXJncys9IiAk e19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19 Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtf Z2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQ U19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAt cDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3Ry YXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3Rz dHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7 X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIK LQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRv bWljIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxB R1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJn c30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3 cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0k e19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxp YmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlk b25lCi0KLQltYWtlIEFSQ0g9bWlwcyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPW1pcHMgSU5T VEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAk e3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30v bXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBs aWJjXG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAt ZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7 WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNo IC1wMCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSIt T3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0v dXNyCi0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3Rh bGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQo KSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYm IHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBn Y2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQlj ZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhl Y2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9 IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFn ZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJs ZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRl ZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZs YXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWVuYWJsZS1s aWJzc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1z eW12ZXJzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lv bn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dy a3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCSMgRW5zdXJlIHdlIHVz ZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBBUyBBUiBSQU5MSUIgT0JK RFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQUEZMQUdTIExERkxBR1MK LQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3MgLXBpcGUiCi0KLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0K LQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAk e19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1z ZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0v bGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRl cnMKLQlfbXVzbF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlmb3Ig ZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0J bG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3Iv bGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5zdGFsbCBsaW51eCBBUEkg aGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2UgQVJD SD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3IgaGVhZGVy c19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1 ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJmICR7REVT VERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmlu dXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNU RElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1i dWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEu c28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgbXVzbCBsaWJjIGZvciB0 YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbWFrZSBERVNURElS PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1vdmUgdXNlbGVzcyBoZWFk ZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyovaW5jbHVk ZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wqLnNvLjEgc3ltbGlua3MgcmVsYXRpdmUuCi0JbG4g LXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xkLW11c2wtbWlwc2Vs LnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQt bXVzbC1taXBzZWwtc2Yuc28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hh cmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9 dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8k e19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYg bGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7 X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9s aWJnbmF7cmwsdH0uc28KLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtE RVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFy ZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVT VERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v bGliLyoucHkKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KK2Ny b3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9YXJtCitjcm9zc19nY2Nf c2tpcF9nbz15ZXMKK2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLXdpdGhvdXQtZnAg LS1lbmFibGUtZGVmYXVsdC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFncz0iLU9z IC1tYXJjaD1taXBzMzJyMiAtbXNvZnQtZmxvYXQiCiAKIGNyb3NzLW1pcHNlbC1saW51eC1tdXNs LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlw PXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBs ZXR9CiAJfQogfQoKRnJvbSA1ZGNmMjBkNjViMjJmZGYxOGU1NTk4OGE3OTNjZDUyNjYwNDA0MDc4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDAwOjEyOjA3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAx Ni8yNl0gY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZjogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoK LS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYvdGVtcGxhdGUgfCAyODQgKyst LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMjY3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11 c2xoZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0 ZQppbmRleCBiZjc1YjllYzhkNS4uYTA4M2JhMWUwNmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jv c3MtbWlwc2VsLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLW1pcHNl bC1saW51eC1tdXNsaGYvdGVtcGxhdGUKQEAgLTEsMjk1ICsxLDQ1IEBACi0jIFRlbXBsYXRlIGJ1 aWxkIGZpbGUgZm9yICdjcm9zcy1taXBzZWwtbGludXgtbXVzbGhmJwotIworIyBUZW1wbGF0ZSBm aWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZicKK190cmlwbGV0PW1pcHNlbC1saW51 eC1tdXNsaGYKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05LjMuMAogX211 c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTQuMTkKLQotX3RyaXBsZXQ9bWlwc2Vs LWxpbnV4LW11c2xoZgotX2ZwdWZsYWdzPSItLXdpdGgtZmxvYXQ9aGFyZCAtLXdpdGgtZnAiCi1f YXJjaGZsYWdzPSItbWFyY2g9bWlwczMycjIgLW1oYXJkLWZsb2F0IgotX3N5c3Jvb3Q9Ii91c3Iv JHtfdHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwog cmV2aXNpb249Mwotc2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciBNSVBTMzJyMiBMRSBo YXJkZmxvYXQgdGFyZ2V0IChtdXNsKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZpZ3Vy ZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9aGFyZAorIC0td2l0aC1s aW5rZXItaGFzaC1zdHlsZT1zeXN2IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxl eCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHps aWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWlu IGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7 R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egog ICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0u dGFyLnh6Ci0gaHR0cDovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92 ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzL211c2wt JHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjQueC9saW51 eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2 MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDcxZTE5Nzg2 NzYxMWY2MDU0YWExMTE5YjEzYTBjMGFiYWMxMjgzNDc2NWZlMmQ4MWYzNWFjNTdmODRmNzQyZDEK ICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEz NDAxNTAyMmEzCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUy ZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1u b3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXllcwotCi1ob3N0bWFrZWRlcGVu ZHM9InRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJ6bGliLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCIKLW5vc3Ry aXBfZmlsZXM9ImxpYmNhZl9zaW5nbGUuYSBsaWJnY2MuYSBsaWJnY292LmEgbGliZ2NjX2VoLmEK LSBsaWJnbmFybF9waWMuYSBsaWJnbmFybC5hIGxpYmduYXRfcGljLmEgbGliZ25hdC5hIGxpYmdt ZW0uYSIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igot Ci1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQy KSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2ggLU4gJGFy Z3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRpbHNfYnVp bGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1aWxkIF0g JiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0JX2FyZ3M9Ii0t cHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIg LS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIK LQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxp YiIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFr ZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7 d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0v Z2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQot CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8qLW11c2wucGF0Y2g7IGRvCi0J CV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFwIF0gJiYgbWtk aXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9hcmdzPSItLXBy ZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlf YXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRz IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliZ29tcCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCUNGTEFHUz0i LU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9j b25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQot CXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJz KCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQot CWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4i Ci0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BL R0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9w YXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9bWlwcyBoZWFkZXJzX2NoZWNrCi0JbWFr ZSBBUkNIPW1pcHMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0 YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX211c2xfYnVp bGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBh cmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVzbC9wYXRjaGVzIiBdOyB0aGVu Ci0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwot CQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9 LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZp Z3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7 X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19 Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2Nf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBnY2MgZmluYWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2Rp ciBnY2MtYnVpbGQKLQljZCBnY2MtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9h cmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlw bGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAt LWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlf YXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtc3Nw IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJn cys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4uL2dj Yy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9 Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewot CSMgRW5zdXJlIHdlIHVzZSBzYW5lIGVudmlyb25tZW50Ci0JdW5zZXQgQ0MgQ1hYIENQUCBMRCBB UyBBUiBSQU5MSUIgT0JKRFVNUCBSRUFERUxGIE5NCi0JdW5zZXQgQ0ZMQUdTIENYWEZMQUdTIENQ UEZMQUdTIExERkxBR1MKLQlleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiIENYWEZMQUdTPSItT3Mg LXBpcGUiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlp ZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lz cm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhl bgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZp Ci0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4gLXNmIHVzci9s aWIgJHtfc3lzcm9vdH0vbGliMzIKLQotCV9iaW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFw Ci0JX2xpbnV4X2hlYWRlcnMKLQlfbXVzbF9idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5z dGFsbCgpIHsKLQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlp ZiBbICEgLWQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2Rp ciAtcCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0K LQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIz MgotCWxuIC1zZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliMzIKLQotCSMgaW5z dGFsbCBsaW51eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJz aW9ufQotCW1ha2UgQVJDSD1taXBzIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNy b290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQp Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGlu c3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtl IERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2Qg JHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQot CSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGli L2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwg bXVzbCBsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259 Ci0JbWFrZSBERVNURElSPSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JIyBSZW1v dmUgdXNlbGVzcyBoZWFkZXJzLgotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3Ry aXBsZXR9LyovaW5jbHVkZS1maXhlZAotCi0JIyBNYWtlIGxkLW11c2wuc28gc3ltbGlua3MgcmVs YXRpdmUuCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xk LW11c2wtbWlwc2VsLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJl ZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVz ci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RF U1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7 X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxp YmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19t YWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGli Z25he3JsLHR9LnNvCi0KLQkjIFJlbW92ZSB1bm5lY2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVT VERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS97ZXRjLHZhcn0KLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp Yi8qLnB5Ci0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS97c2JpbixsaWJ9Ci19Citjcm9z c190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPWFybQorY3Jvc3NfZ2NjX3Nr aXBfZ289eWVzCitjcm9zc19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZGVmYXVs dC1oYXNoLXN0eWxlPXN5c3YiCitjcm9zc19tdXNsX2NmbGFncz0iLU9zIC1tYXJjaD1taXBzMzJy MiAtbWhhcmQtZmxvYXQiCiAKIGNyb3NzLW1pcHNlbC1saW51eC1tdXNsaGYtbGliY19wYWNrYWdl KCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJp ZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpG cm9tIDcxN2RjMzEwZDgxM2M0NDk4ZDhiY2M5N2ViYzkzMmFiZTlkNmRjODUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MjYgRGVjIDIwMjAgMTg6Mzc6MzkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzI2XSBjcm9zcy1w b3dlcnBjLWxpbnV4LWdudTogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dzL2Ny b3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlIHwgMzU3ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMzQ0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDMzZjU3YTAzNDRm Li42ZDdkN2I3ZGMyMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdu dS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRl CkBAIC0xLDE5ICsxLDIxIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjLWxp bnV4LWdudScKK190cmlwbGV0PXBvd2VycGMtbGludXgtZ251CiBfYmludXRpbHNfdmVyc2lvbj0y LjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9nbGliY192ZXJzaW9uPTIuMzAKIF9saW51eF92ZXJz aW9uPTQuMTkKLQotX3RyaXBsZXQ9cG93ZXJwYy1saW51eC1nbnUKLV9zeXNyb290PSIvdXNyLyR7 X3RyaXBsZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJl dmlzaW9uPTMKLXNob3J0X2Rlc2M9IkdOVSBDcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlw bGV0fSB0YXJnZXQgKGJpbnV0aWxzL2djYy9nbGliYykiCitidWlsZF9zdHlsZT12b2lkLWNyb3Nz Citjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVy aWZ5IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRo b24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdt cC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJp cGxldH0iCiBtYWludGFpbmVyPSJUaG9tYXMgQmF0dGVuIDxzdGVuc3RvcnBtY0BnbWFpbC5jb20+ IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9 Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9i aW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRF fS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAt MjQsMzQ4ICsyNiwxNSBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3 MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJj MjkxMzFhNDNiZTgzMzg1MGFiOWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1 MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgog Ci1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLWhvc3RtYWtlZGVwZW5kcz0idGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0 aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCIK LWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igotbm9zdHJp cF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQot IGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21l bS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJjIiBdOyB0aGVuCi0JYnJv a2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiBnbGliYyIKLWZpCitj cm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPXBvd2VycGMKK2Nyb3Nz X2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9zc19nbGli Y19jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYyIgXTsg dGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxmIgogZmkK IAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAk MikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNoIC1OICRh cmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2xpbnV4X2hlYWRl cnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgTGludXggQVBJIGhlYWRlcnMg Zm9yIFBvd2VyUENcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0KLQltYWtlIEFS Q0g9cG93ZXJwYyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJf UEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2JpbnV0aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdz Ci0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBiaW51dGlsc1xuIgot CVsgISAtZCBiaW51dGlscy1idWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmlu dXRpbHMtYnVpbGQKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0 PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlf YXJncys9IiAtLWRpc2FibGUtZ29sZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVtLXpsaWIiCi0J X2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3Zl cnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdCAmJiBtYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxz X2J1aWxkX2RvbmUKLX0KLQotX2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsg LWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3 cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9n Y2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0K LQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQg Li4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2Mt Ym9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJncys9IiAtLWRp c2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNz cCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJh dG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1lbmFibGUt bGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJn cys9IiAtLXdpdGgtZ251LWFzIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQotCS4u L2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9u ZQotfQotCi1fZ2xpYmNfaGVhZGVycygpIHsKLQlsb2NhbCBfYXJncyBmCi0KLQlbIC1mICR7d3Jr c3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9n bGliYy0ke19nbGliY192ZXJzaW9ufQotCWlmIFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L2dsaWJj L3BhdGNoZXMiIF07IHRoZW4KLQkJZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0 Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JCWRvbmUKLQlmaQot Ci0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmMgaGVhZGVy c1xuIgotCi0JWyAhIC1kIGdsaWJjLWhlYWRlcnMgXSAmJiBta2RpciBnbGliYy1oZWFkZXJzCi0J Y2QgZ2xpYmMtaGVhZGVycwotCi0JZWNobyAibGliY19jdl9mb3JjZWRfdW53aW5kPXllcyIgPiBj b25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xlYW51cD15ZXMiID4+IGNvbmZpZy5jYWNo ZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2MiIExEPSIke190cmlwbGV0fS1sZCIgXAot CQlBUz0iJHtfdHJpcGxldH0tYXMiIENQUD0iJHtfdHJpcGxldH0tY3BwIiBcCi0JCU5NPSIke190 cmlwbGV0fS1ubSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVhZGVycz0ke19zeXNyb290fS91c3IvaW5j bHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNv bGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGlu Zz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8u Z2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwot Ci0JWyAtZiAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2Qg JHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2xpYmNcbiIKLQotCVsgISAt ZCBnbGliYy1idWlsZCBdICYmIG1rZGlyIGdsaWJjLWJ1aWxkCi0JY2QgZ2xpYmMtYnVpbGQKLQot CWVjaG8gInNsaWJkaXI9L3Vzci9saWIzMiIgPiBjb25maWdwYXJtcwotCi0JZWNobyAibGliY19j dl9mb3JjZWRfdW53aW5kPXllcyIgPiBjb25maWcuY2FjaGUKLQllY2hvICJsaWJjX2N2X2NfY2xl YW51cD15ZXMiID4+IGNvbmZpZy5jYWNoZQotCi0JZXhwb3J0IENDPSIke190cmlwbGV0fS1nY2Mi IENYWD0iJHtfdHJpcGxldH0tZysrIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3Ry aXBsZXR9LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0i Ci0JZXhwb3J0IENGTEFHUz0iLU8xIC1waXBlIgotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0J X2FyZ3MrPSIgLS1saWJkaXI9L3Vzci9saWIzMiIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxl dH0iCi0JX2FyZ3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0J X2FyZ3MrPSIgLS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBj IgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWRpc2FibGUt cHJvZmlsZSIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42LjI3IgotCV9hcmdzKz0iIC0t ZGlzYWJsZS13ZXJyb3IiCi0KLQkuLi9nbGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGxfcm9vdD0ke19zeXNy b290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2J1aWxkX2RvbmUKLX0KLQot X2djY19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWls ZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxk aW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdj Yy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JZXhwb3J0IENDPSJnY2MiIENYWD0iZysrIiBDRkxB R1M9Ii1PcyAtcGlwZSIKLQl1bnNldCBMRCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJn ZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJz LCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNy L2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJc2VkIC1lICJzLCAv bGliMzIvLCAke19zeXNyb290fS9saWIzMi8sZztzLCAvdXNyL2xpYjMyLywgJHtfc3lzcm9vdH0v dXNyL2xpYjMyLyxnIiBcCi0JCQktaSAke19zeXNyb290fS9saWIvbGliYy5zbwotCQl0b3VjaCAu c2VkX3N1YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIg LS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZW5hYmxl LWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdz Kz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1sZCIKLQlfYXJncys9IiAt LWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAt LWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZW5hYmxlLXRocmVhZHM9cG9z aXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbG9uZy1sb25neCIKLQlfYXJncys9IiAtLWVuYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlf YXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1waWUiCi0J X2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1 YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGliY2lsa3J0cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliaXRtIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJ2dHYiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnN0ZGN4eC1w Y2giCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGlic3RkY3h4LXRpbWUiCi0JX2FyZ3MrPSIgLS13aXRo LWxpbmtlci1oYXNoLXN0eWxlPWdudSIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0K LQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21h a2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWls ZCgpIHsKLQl1bnNldCBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIiBDWFhGTEFHUz0iLU9z IgotCi0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAh IC1kICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJ CWxuIC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRv bmUKLQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7 X3N5c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9s aW51eF9oZWFkZXJzCi0JX2dsaWJjX2hlYWRlcnMKLQlfZ2xpYmNfYnVpbGQKLQlfZ2NjX2J1aWxk Ci19Ci0KLWRvX2luc3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4g c2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsg dGhlbgotCQkJbWtkaXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQot CQlpZiBbICEgLWggJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1z ZnIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19z eXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xp YjMyCi0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMt YnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jv c3MgZ2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9 IGluc3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNU RElSfS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0K LQkjIGluc3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIHBvd2VycGMKLQljZCAke3dya3NyY30v bGludXgtJHtfbGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9Q QVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQo ZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1v ciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vz ci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxsIGdsaWJjIGZvciB0YXJnZXQKLQljZCAke3dya3Ny Y30vZ2xpYmMtYnVpbGQKLQltYWtlIGluc3RhbGxfcm9vdD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 IGluc3RhbGwgaW5zdGFsbC1oZWFkZXJzCi0KLQkjIHN5bWxpbmtzIGZvciBnbmFybCBhbmQgZ25h dCBzaGFyZWQgbGlicmFyaWVzCi0JX21ham9ydmVyPSR7X2djY192ZXJzaW9uJS4qLip9Ci0JX2Fk YWxpYj11c3IvbGliL2djYy8ke190cmlwbGV0fS8ke19nY2NfdmVyc2lvbn0vYWRhbGliCi0JbXYg LXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXJsLSR7X21ham9ydmVyfS5zbyAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGli Z25hdC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbG4g LXN2ZiBsaWJnbmFybC0ke19tYWpvcnZlcn0uc28gbGliZ25hcmwuc28KLQlsbiAtc3ZmIGxpYmdu YXQtJHtfbWFqb3J2ZXJ9LnNvIGxpYmduYXQuc28KLQlybSAtdmYgJHtERVNURElSfS8ke19hZGFs aWJ9L2xpYmduYXtybCx0fS5zbwotCi0JIyBXZSBuZWVkIHRvIGJ1aWxkIGxpYmF0b21pYyBpbiB0 YXJnZXQgZ2NjIGFzIGdjY2dvIG5lZWRzIGl0IHRvCi0JIyBidWlsZC4uLiBidXQgaXQncyBub3Qg bmVlZGVkIGF0IHJ1bnRpbWUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotCSMgZGVzdGRpciBzbyBp dCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGxpYmF0b21pYyBwYWNrYWdlCi0Jcm0gLWYgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvbGliL2xpYmF0b21pYy4qCi0KLQkjIFJlbW92ZSB1bm5l Y2Vzc2FyeSBzdHVmZgotCXJtIC1mICR7REVTVERJUn0vdXNyL2xpYiovbGliaWJlcnR5LmEKLQly bSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290 fS97c2JpbixldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2Jp bixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwot fQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJk aXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoKLQly bSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9nY2Mv JHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUtbGliY19wYWNrYWdlKCkg ewogCXNob3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzczLDYg KzQyLDYgQEAgY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCW5vdmVy aWZ5cmRlcHM9eWVzCiAKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJ dm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIDkxNzJiMmRmMTlkNTJhNzRi OGQ3N2U5NzBkMjQ0NjMyYzYwZTZmZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTg6NDI6MjMg KzAxMDAKU3ViamVjdDogW1BBVENIIDE4LzI2XSBjcm9zcy1wb3dlcnBjLWxpbnV4LW11c2w6IHJl d29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11 c2wvdGVtcGxhdGUgfCAzMDYgKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE3IGluc2VydGlvbnMoKyksIDI4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJw Yy1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDEyZGIwNDBhNTlhLi5iNTE0MjU4Y2I4MyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjEgKzEsMjMg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbCcKK190cmlw bGV0PXBvd2VycGMtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJz aW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4xOQogX2xp YnVjb250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9cG93ZXJwYy1saW51eC1tdXNsCi1f c3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQog dmVyc2lvbj0wLjMzCiByZXZpc2lvbj0yCi0KLXNob3J0X2Rlc2M9IkNyb3NzIHRvb2xjaGFpbiBm b3IgUG93ZXJQQyAobXVzbCkiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJn cz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CisgLS1kaXNhYmxl LWRlY2ltYWwtZmxvYXQiCitob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxl eCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHps aWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWlu IGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9IlRob21hcyBCYXR0ZW4gPHN0ZW5zdG9ycG1j QGdtYWlsLmNvbT4iCi1ob21lcGFnZT0iaHR0cDovL3d3dy52b2lkbGludXgub3JnIgotbGljZW5z ZT0iR1BMLTMuMC1vci1sYXRlciwgR1BMLTIuMC1vbmx5LCBNSVQiCitob21lcGFnZT0iaHR0cHM6 Ly93d3cudm9pZGxpbnV4Lm9yZy8iCitsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4w LW9yLWxhdGVyLCBNSVQiCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0 aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egogICR7R05VX1NJVEV9L2djYy9nY2MtJHtf Z2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CkBAIC0yOCwyOTcgKzMwLDIz IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRj OTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMQogIDBkNTNhNDE1YTMwN2VmMTc1MTUzYmJl NjBhNTcyYzk0MGE5MjJjYjczNmNlMTM1MzBiNjY2ZTdlYzI3OTVkNjgiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBw eXRob24zIgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGli bXBjLWRldmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxp YmdjYy5hIGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEg bGliZ25hdF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1s aWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc19saWJ1Y29udGV4dF9hcmNoPXBwYworY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9z c19iaW51dGlsc19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfbXVz bF9jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYy1tdXNs IiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYi CiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2Vu YW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0Y2gg LU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmludXRp bHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGlsc19i dWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxzLWJ1 aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCV9hcmdz PSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdz Kz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJy b3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lzdGVt LXpsaWIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vYmludXRpbHMtJHtf YmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1o b3N0ICYmIG1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3Jj fS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBf YXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAot Ci0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2NfdmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JD UEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIK LQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLW5ld2xp YiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyIKLQlfYXJncys9IiAtLXdpdGgtbmV3 bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5s cyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXRocmVhZHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMi Ci0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAtLWVuYWJsZS1z ZWN1cmVwbHQiCi0KLQlDRkxBR1M9Ii1PMCAtZzAiIENYWEZMQUdTPSItTzAgLWcwIiBcCi0JCS4u L2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpv YnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9u ZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8ubGludXhfYnVpbGRf ZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGlu ZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQot CWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJjLWhlYWRlcnMvcGF0Y2hlcy8q LnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9uZQotCi0JbWFrZSBBUkNIPXBv d2VycGMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9 JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92 ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBB cHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQ S0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlk b25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElD IiBcCi0JCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIERFU1RESVI9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUKLX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9 Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9s aWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGxpYnVjb250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkg aGVyZQotCUNDPSIke190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3Ry aXBsZXR9LWFzIiBcCi0JCUNGTEFHUz0iLU9zIC1waXBlIiBcCi0JCW1ha2UgQVJDSD1wcGMgbGli dWNvbnRleHQuYQotCi0JY3AgbGlidWNvbnRleHQuYSAke19zeXNyb290fS91c3IvbGliCi0KLQl0 b3VjaCAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUKLX0KLQotX2djY19idWlsZCgp IHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdj YyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1idWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNk IGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tcHJlZml4PS91c3IiCi0JX2Fy Z3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdl cz1jLGFkYSxjKyssb2JqYyxvYmotYysrLGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0tZW5h YmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUt ZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYnNhbml0aXplciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlicXVhZG1hdGgi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVk ZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hh cmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zeW12ZXJzIgotCV9hcmdzKz0iIGxpYmF0X2N2X2hh dmVfaWZ1bmM9bm8iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1 cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2Nj X2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52 aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURF TEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBD RkxBR1M9Ii1PcyAtcGlwZSIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSIKLQotCWZvciBmIGluIGluY2x1 ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3Iv JHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlp ZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19z eXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0J X2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNs X2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxs KCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsg ISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1w ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVT VERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlm aQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0J bG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxs IGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259 Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkK LQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5z dGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2Ug REVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAk e3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0J IyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIv bGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBt dXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0K LQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92 ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJp cGxldH0vKi9pbmNsdWRlLWZpeGVkCi0KLQkjIE1ha2UgbGQtbXVzbC5zbyBzeW1saW5rcyByZWxh dGl2ZS4KLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGQt bXVzbC1wb3dlcnBjLnNvLjEKLQlsbiAtc2YgbGliYy5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9saWIvbGQtbXVzbC1wb3dlcnBjLXNmLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRv bWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBp dCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0 ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVy dHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97 c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhl YwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQogY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNs LWxpYmNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbGliYyBmaWxlcyIKIAlub3N0cmlw PXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxpYnByb3ZpZGVzPXllcworCiAJcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICR7X3N5c3Jvb3R9CisJCXZtb3ZlIHVzci8ke2Nyb3NzX3RyaXBs ZXR9CiAJfQogfQoKRnJvbSA5ZGMxYjk2NjI0MjhmMzJmODg2Njk0MTFhMjlkMzBmZTI1Y2EyNWIx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTYXQsIDI2IERlYyAyMDIwIDE4OjQ1OjAyICswMTAwClN1YmplY3Q6IFtQQVRDSCAx OS8yNl0gY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudTogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoK LS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUgfCAzNTkgKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMzQ1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4 LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0 ZQppbmRleCA1YTVlMTQ5ZDM5YS4uNTMwNjhiMTNkNjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jv c3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2Vy cGNsZS1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMjEgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUnCi0jIFRoaXMgaXMgYW4gZXhwZXJpbWVu dGFsIHRhcmdldCBmb3Igbm93IGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZXMKK190cmlwbGV0PXBv d2VycGNsZS1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVyc2lvbj05 LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1fdHJpcGxl dD1wb3dlcnBjbGUtbGludXgtZ251Ci1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtn bmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0xCi1zaG9ydF9k ZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gdGFyZ2V0IChiaW51 dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmlndXJlX2FyZ3M9 Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKK2hvc3RtYWtlZGVw ZW5kcz0idGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVw ZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNj PSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJxNjYg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKLWhvbWVwYWdlPSJodHRwOi8vd3d3LnZvaWRsaW51eC5v cmciCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIu MS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3Rm aWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lv bn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2dj Y192ZXJzaW9ufS50YXIueHoKQEAgLTI1LDM0OCArMjYsMTYgQEAgY2hlY2tzdW09IjBhYjZjNTVk ZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQK ICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQzYmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAx NmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUy ZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJkaXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1u b3BpZT15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2Jq YyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCIKLWRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2 aXNpb259Igotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3Yu YSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBs aWJnbmF0LmEgbGliZ21lbS5hIgotCi1pZiBbICIkWEJQU19UQVJHRVRfTElCQyIgIT0gImdsaWJj IiBdOyB0aGVuCi0JYnJva2VuPSJnbGliYyBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBv biBnbGliYyIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNo PXBvd2VycGMKK2Nyb3NzX2djY19za2lwX2dvPXllcworY3Jvc3NfYmludXRpbHNfY29uZmlndXJl X2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKK2Nyb3NzX2dsaWJjX2NmbGFncz0iLU8yIgogCiBp ZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAicHBjbGUiIF07IHRoZW4KIAlicm9rZW49IkNh bid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgp IHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1m ICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3Vj aCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3 cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzIGZvciBQb3dlclBDXG4iCi0K LQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JbWFrZSBBUkNIPXBvd2VycGMgaGVhZGVy c19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l Ci19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3Ny Y30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHNcbiIKLQlbICEgLWQgYmludXRpbHMt YnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlf YXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUt bmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWdvbGQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iIC0tZW5hYmxl LXNlY3VyZXBsdCIKLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFrZSAke21ha2Vqb2JzfQotCW1h a2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0K LV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2Nj X2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2Nj X3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRj aDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVp bGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAg XSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0JX2Fy Z3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUt bGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdzKz0i IC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11 bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdudS1h cyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2NjX3ZlcnNp b259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFs bAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2RvbmUKLX0KLQotX2dsaWJjX2hl YWRlcnMoKSB7Ci0JbG9jYWwgX2FyZ3MgZgotCi0JWyAtZiAke3dya3NyY30vLmdsaWJjX2hlYWRl cnNfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2xpYmMtJHtfZ2xpYmNfdmVy c2lvbn0KLQlpZiBbIC1kICIke1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzIiBdOyB0aGVu Ci0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dsaWJjL3BhdGNoZXMvKi5wYXRjaDsgZG8K LQkJCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCQlkb25lCi0JZmkKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjIGhlYWRlcnNcbiIKLQotCVsgISAtZCBn bGliYy1oZWFkZXJzIF0gJiYgbWtkaXIgZ2xpYmMtaGVhZGVycwotCWNkIGdsaWJjLWhlYWRlcnMK LQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNo byAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9ydCBDQz0i JHtfdHJpcGxldH0tZ2NjIiBMRD0iJHtfdHJpcGxldH0tbGQiIFwKLQkJQVM9IiR7X3RyaXBsZXR9 LWFzIiBDUFA9IiR7X3RyaXBsZXR9LWNwcCIgXAotCQlOTT0iJHtfdHJpcGxldH0tbm0iCi0KLQlf YXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWhvc3Q9JHtfdHJpcGxldH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWhlYWRlcnM9JHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUiCi0JX2FyZ3MrPSIg LS1jb25maWctY2FjaGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jzb2xldGUtcnBjIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLW5zbCIKLQlfYXJncys9IiAtLWVuYWJsZS1rZXJuZWw9Mi42 LjI3IgotCi0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0K LQltYWtlIC1rIGluc3RhbGwtaGVhZGVycyBjcm9zc19jb21waWxpbmc9eWVzIFwKLQkJaW5zdGFs bF9yb290PSR7X3N5c3Jvb3R9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdsaWJjX2hlYWRlcnNfZG9u ZQotfQotCi1fZ2xpYmNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9 Ly5nbGliY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAm JiBta2RpciBnbGliYy1idWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91 c3IvbGliMzIiID4gY29uZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15 ZXMiID4gY29uZmlnLmNhY2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25m aWcuY2FjaGUKLQotCWV4cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9 LWcrKyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIk e190cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9 Ii1PMiAtcGlwZSIKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGly PS91c3IvbGliMzIiCi0JX2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0t d2l0aC1oZWFkZXJzPSR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmln LWNhY2hlIgotCV9hcmdzKz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVu YWJsZS1vYnNvbGV0ZS1uc2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3Mr PSIgLS1lbmFibGUta2VybmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgot Ci0JLi4vZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0J dG91Y2ggJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0J bG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZSBdICYmIHJldHVy biAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgZmlu YWxcbiIKLQotCVsgISAtZCBnY2MtYnVpbGQgXSAmJiBta2RpciBnY2MtYnVpbGQKLQljZCBnY2Mt YnVpbGQKLQotCWV4cG9ydCBDQz0iZ2NjIiBDWFg9ImcrKyIgQ0ZMQUdTPSItT3MgLXBpcGUiCi0J dW5zZXQgTEQgQVMKLQotCSMgTWFrZSB0aGlzIGxpbmsgdG8gdGFyZ2V0IGxpYnMuCi0JaWYgWyAh IC1mIC5zZWRfc3Vic3RfZG9uZSBdOyB0aGVuCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5c3Jv b3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJCS1p ICR7X3N5c3Jvb3R9L2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjMyLywgJHtfc3lzcm9v dH0vbGliMzIvLGc7cywgL3Vzci9saWIzMi8sICR7X3N5c3Jvb3R9L3Vzci9saWIzMi8sZyIgXAot CQkJLWkgJHtfc3lzcm9vdH0vbGliL2xpYmMuc28KLQkJdG91Y2ggLnNlZF9zdWJzdF9kb25lCi0J ZmkKLQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZXhlY2Rpcj0vdXNy L2xpYiIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEs YysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLXdpdGgtZ251LWFzIgot CV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNqbGotZXhjZXB0 aW9ucyIKLQlfYXJncys9IiAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5h YmxlLWxvbmctbG9uZ3giCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0t ZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9i amVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbHRv IgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRl ZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAt LWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmNpbGty dHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGli dnR2IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIgotCV9hcmdzKz0iIC0tZW5h YmxlLWxpYnN0ZGN4eC10aW1lIgotCV9hcmdzKz0iIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1n bnUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCi0JLi4vZ2NjLSR7X2djY192ZXJz aW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFH UwotCWV4cG9ydCBDRkxBR1M9Ii1PcyIgQ1hYRkxBR1M9Ii1PcyIKLQotCWZvciBmIGluIGluY2x1 ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3Iv JHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlp ZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19z eXNyb290fS91c3IvbGliMzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0J X2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9nbGli Y19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkg ewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAt ZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7 REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQot CWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjMyCi0JbG4g LXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWIzMgotCi0JIyBpbnN0YWxsIGNy b3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNURElS PSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jrc3Jj fS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1vdmUg bGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJjYzEu c28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIGxpbnV4IEFQ SSBoZWFkZXJzIGZvciBwb3dlcnBjCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNp b259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19z eXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNt ZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMg aW5zdGFsbCBnbGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L2dsaWJjLWJ1aWxkCi0JbWFr ZSBpbnN0YWxsX3Jvb3Q9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsIGluc3RhbGwtaGVh ZGVycwotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwot CV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtf dHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFq b3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBs aWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28K LQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBu ZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBz byByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3 aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAt ZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNy L3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sZXRjLHZhcn0KLQly bSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3Ive3NiaW4sc2hhcmUsbGliZXhlY30KLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYmV4ZWMKLX0KLQotZG9fY2xlYW4oKSB7Ci0J IyBSZW1vdmUgdGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGlyCi0Jcm0gLXJmICR7X3N5c3Jv b3R9Ci0Jcm0gLWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0gLXJmIC91c3IvbGliL2djYy8k e190cmlwbGV0fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7X3RyaXBsZXR9Ci19Ci0KIGNy b3NzLXBvd2VycGNsZS1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIg LSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwpAQCAtMzc0LDYgKzQzLDYgQEAgY3Jvc3MtcG93 ZXJwY2xlLWxpbnV4LWdudS1saWJjX3BhY2thZ2UoKSB7CiAJbm92ZXJpZnlyZGVwcz15ZXMKIAog CXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9z c190cmlwbGV0fQogCX0KIH0KCkZyb20gMmJmM2M5ZjhjNjgwOGJlZDM2ZjBmOGVlNzdmY2E5ZGJl ZDYzMjc3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU2F0LCAyNiBEZWMgMjAyMCAxODo0Nzo0NyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMjAvMjZdIGNyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsOiByZXdvcmsgd2l0aCB2b2lk LWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUg fCAyODggKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspLCAyNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBj bGUtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11 c2wvdGVtcGxhdGUKaW5kZXggNjJhYzc4YzQxMTcuLjQ1MDgxNjQ5OGI3IDEwMDY0NAotLS0gYS9z cmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMjEgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsJwotIyBUaGlzIGlz IGFuIGV4cGVyaW1lbnRhbCB0YXJnZXQgZm9yIG5vdyBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2Vz CitfdHJpcGxldD1wb3dlcnBjbGUtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgog X2djY192ZXJzaW9uPTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249 NC4xOQotCi1fdHJpcGxldD1wb3dlcnBjbGUtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtf dHJpcGxldH0iCi0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2 aXNpb249MQotCi1zaG9ydF9kZXNjPSJHTlUgQ3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJp cGxldH0gdGFyZ2V0IChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9z cworY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZl cmlmeQorIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2Nj LW9iamMgZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBj LWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25h bWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3Mg dG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKK2hvbWVwYWdl PSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRp bHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CkBAIC0yNiwyODAgKzI3LDIz IEBAIGNoZWNrc3VtPSIwYWI2YzU1ZGQ4NmE5MmVkNTYxOTcyYmExNWI5YjcwYThiOWY3NTU1N2Y4 OTY0NDZjODJlOGIzNmU0NzNlZTA0CiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4 Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3 MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEiCiAKLWxpYjMyZGlzYWJs ZWQ9eWVzCi1ub2Nyb3NzPXllcwotbm9waWU9eWVzCi1ub2RlYnVnPXllcwotY3JlYXRlX3dya3Ny Yz15ZXMKLQotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2 ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEg bGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0 X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Nyb3NzX3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xp bnV4X2FyY2g9cG93ZXJwYworY3Jvc3NfZ2NjX3NraXBfZ289eWVzCitjcm9zc19iaW51dGlsc19j b25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1P MiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwY2xlLW11c2wiIF07IHRoZW4K IAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9h cHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgot Ci0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAt aSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgp IHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUg XSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jv c3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBt a2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0JX2FyZ3M9Ii0tcHJlZml4 PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRo LXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXdlcnJvciIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1zeXN0ZW0temxpYiIKLQlf YXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192 ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QgJiYgbWFr ZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0JWyAt ZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dy a3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2dj Yy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQlm b3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmlsZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlf YXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQltc2dfbm9ybWFsICJCdWlsZGluZyBjcm9z cyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4vZ2NjLWJvb3RzdHJhcCBdICYmIG1rZGly IC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9vdHN0cmFwCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdp dGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0td2l0aC1uZXdsaWIiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhyZWFkcyIK LQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUt c2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtcHgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIgLS1k aXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9 IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIK LQotCUNGTEFHUz0iLU8wIC1nMCIgQ1hYRkxBR1M9Ii1PMCAtZzAiIFwKLQkJLi4vZ2NjLSR7X2dj Y192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtl IGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19Ci0KLV9s aW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExpbnV4IEFQ SSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0Y2g7IGRv Ci0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9cG93ZXJwYyBoZWFk ZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290 fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2Rv bmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVpbGRfZG9u ZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNpb259Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5IG11c2wg cGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJUn0vbXVz bC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0 Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUKLQlmaQot Ci0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQ0ZMQUdTPSItT3MgLXBpcGUgLWZQSUMiIFwKLQkJLi9j b25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgREVTVERJ Uj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLm11c2xfYnVpbGRfZG9u ZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYg bWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS10YXJnZXQ9JHtfdHJp cGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIg LS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3Mr PSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixsdG8i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlf YXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0 LXNzcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic2FuaXRpemVyIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0i IC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnNzcCIKLQlfYXJn cys9IiAtLWVuYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2Fy Z3MrPSIgbGliYXRfY3ZfaGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1h bC1mbG9hdCIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0KLQkuLi9nY2MtJHtfZ2Nj X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91 Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRfZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3Vy ZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVudAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFO TElCIE9CSkRVTVAgUkVBREVMRiBOTQotCXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBM REZMQUdTCi0JZXhwb3J0IENGTEFHUz0iLU9zIC1waXBlIiBDWFhGTEFHUz0iLU9zIC1waXBlIgot Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vz ci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxu IC1zZnIgJHtfc3lzcm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUK LQlsbiAtc2YgbGliICR7X3N5c3Jvb3R9L3Vzci9saWIzMgotCWxuIC1zZiB1c3IvbGliICR7X3N5 c3Jvb3R9L2xpYjMyCi0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51 eF9oZWFkZXJzCi0JX211c2xfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2luc3RhbGwoKSB7 Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1k ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtERVNURElS fS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElSfS8ke19zeXNy b290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0J ZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliMzIKLQlsbiAt c2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjMyCi0KLQkjIGluc3RhbGwgbGlu dXggQVBJIGhlYWRlcnMKLQljZCAke3dya3NyY30vbGludXgtJHtfbGludXhfdmVyc2lvbn0KLQlt YWtlIEFSQ0g9cG93ZXJwYyBJTlNUQUxMX0hEUl9QQVRIPSR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyIGhlYWRlcnNfaW5zdGFsbAotCXJtIC1mICQoZmluZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9pbmNsdWRlIC1uYW1lIC5pbnN0YWxsIC1vciAtbmFtZSAuLmluc3RhbGwuY21kKQotCXJt IC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9pbmNsdWRlL2RybQotCi0JIyBpbnN0YWxs IGNyb3NzIGJpbnV0aWxzCi0JY2QgJHt3cmtzcmN9L2JpbnV0aWxzLWJ1aWxkCi0JbWFrZSBERVNU RElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBpbnN0YWxsIGNyb3NzIGdjYwotCWNkICR7d3Jr c3JjfS9nY2MtYnVpbGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIG1v dmUgbGliY2MxLnNvKiB0byB0aGUgc3lzcm9vdAotCW12ICR7REVTVERJUn0vdXNyL2xpYi9saWJj YzEuc28qICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JIyBpbnN0YWxsIG11c2wg bGliYyBmb3IgdGFyZ2V0Ci0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1h a2UgREVTVERJUj0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCSMgUmVtb3ZlIHVz ZWxlc3MgaGVhZGVycy4KLQlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2djYy8ke190cmlwbGV0 fS8qL2luY2x1ZGUtZml4ZWQKLQotCSMgTWFrZSBsZC1tdXNsLnNvIHN5bWxpbmtzIHJlbGF0aXZl LgotCWxuIC1zZiBsaWJjLnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9sZC1tdXNs LXBvd2VycGNsZS5zby4xCi0JbG4gLXNmIGxpYmMuc28gJHtERVNURElSfS8ke19zeXNyb290fS91 c3IvbGliL2xkLW11c2wtcG93ZXJwY2xlLXNmLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRv bWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBp dCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0 ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVy dHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97 c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhl YwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQogY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11 c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3Ry aXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJp cGxldH0KIAl9CiB9CgpGcm9tIDg0Njc1YmNlMWU3Yjc1YzRhYmYwNDYwMTAyNDcxMzkxZDE0ZmU2 NjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTg6NTU6MDYgKzAxMDAKU3ViamVjdDogW1BBVENI IDIxLzI2XSBjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnU6IHJld29yayB3aXRoIHZvaWQtY3Jv c3MKCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUgfCAz NjUgKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyks IDM0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxl LWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251 L3RlbXBsYXRlCmluZGV4IDcxZWY2YmM0ZjU3Li4yMzdmMmYxNGU2YSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTkgKzEsMjIgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudScKK190cmlwbGV0 PXBvd2VycGM2NGxlLWxpbnV4LWdudQogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJz aW9uPTkuMy4wCiBfZ2xpYmNfdmVyc2lvbj0yLjMwCiBfbGludXhfdmVyc2lvbj00LjE5Ci0KLV90 cmlwbGV0PSJwb3dlcnBjNjRsZS1saW51eC1nbnUiCi1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0 fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0x Ci1zaG9ydF9kZXNjPSJHTlUgY3Jvc3MgdG9vbGNoYWluIGZvciB0aGUgJHtfdHJpcGxldH0gdGFy Z2V0cyAoYmludXRpbHMvZ2NjL2dsaWJjKSIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZp Z3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkgLS13 aXRoLWFiaT1lbGZ2MgorIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwY2xlLWxpbnV4IgoraG9zdG1h a2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRl cGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZy LWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWlu dGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKLWhvbWVwYWdlPSJodHRwczovL3d3 dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3It bGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19i aW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJz aW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjQsMzU4ICsyNywyNCBAQCBjaGVj a3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2Yzgy ZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFiOWE0 NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTll ZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXllcwot bm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1o b3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1t YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1ub3N0cmlw X2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0g bGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVt LmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQot aWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0iZ2xp YmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1pZiBbICIk WEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0IGNy b3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3NzX3Ry aXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9cG93ZXJwYworY3Jvc3NfYmludXRp bHNfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCIKKyMgZXhwbGljaXRseSBlbmFi bGUgZm9yIGZpbmFsIGdjYywgZ2ZvcnRyYW4gZG9lcyBub3QgYnVpbGQgd2l0aG91dCBvbiBwcGM2 NGxlCitjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWxpYnF1YWRtYXRoIgorY3Jv c3NfZ2xpYmNfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJw cGM2NGxlIiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBp dHNlbGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIk KGJhc2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJ cGF0Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1f YmludXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51 dGlsc19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3Jt YWwgIkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0 aWxzLWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAot Ci0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0i Ci0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0 aC1zeXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZp Z3VyZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQot fQotCi1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30v LmdjY19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7 X2djY192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyou cGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0 cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9Igot CV9hcmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2Vz PWMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXRh cmdldHM9cG93ZXJwY2xlLWxpbnV4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlf YXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIK LQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUt dGhyZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9 IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxp YiIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0K LQkuLi9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21h a2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFw X2RvbmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVp bGRpbmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259 Ci0KLQltYWtlIEFSQ0g9cG93ZXJwYyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMg SU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0J bG9jYWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAt ZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBd ICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJj X2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19j bGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdj YyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190 cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9IiAtLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt aGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNo ZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUt b2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9n bGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5z dGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lz cm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGli Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1i dWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQiID4gY29u ZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4 cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9IiR7X3Ry aXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAi IFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMiAtcGlwZSIKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliNjQiCi0J X2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1u c2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2Vy bmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCi0JLi4vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQg Z2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBM RCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNl ZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGli LyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lz cm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lzcm9vdH0v bGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIgXAotCQkJ LWkgJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQot CWZpCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xp YiIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9 JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2Fy Z3MrPSIgLS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9Yyxh ZGEsYysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1z ZWN1cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCi0J X2FyZ3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIg LS1lbmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0J X2FyZ3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdu dS11bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAt LWVuYWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1YWRtYXRoIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXpl ciIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp Ym11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKLQlf YXJncys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCi0JQ0M9ImdjYyIgQ1hYPSJnKysi IENGTEFHUz0iLU8yIC1waXBlIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJl ICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19i dWlsZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCXVuc2V0IExERkxBR1MKLQlleHBvcnQgQ0ZM QUdTPSItT3MgLWZQSUMiIENYWEZMQUdTPSItT3MgLWZQSUMiCi0KLQlmb3IgZiBpbiBpbmNsdWRl IGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYg WyAhIC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91 c3IvJHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9i aW51dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNf aGVhZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsK LQlmb3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jv b3R9L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlk b25lCi0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1z ZiB1c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBsaW51 eCBBUEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1h a2UgQVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91 c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0g LXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwg Y3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RE SVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtz cmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92 ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNj MS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgZ2xpYmMg Zm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290 PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3lt bGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtf Z2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2dj Y192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwt JHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7 REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJn bmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJt IC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQg dG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkj IGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZy b20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRv bWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRv bWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91 c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtf c3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGli fQotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0 ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoK LQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9n Y2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251LWxpYmNfcGFj a2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZ2xpYmMgZmlsZXMiCiAJbm9zdHJpcD15ZXMKIAlu b3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKKwogCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3IvJHtjcm9zc190cmlwbGV0fQogCX0K IH0KCkZyb20gN2M2YzZlNmU0YTU3ZWM4MjI3OTI5NTRjOGRmNjNlOTI4OGQ1YjViZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U2F0LCAyNiBEZWMgMjAyMCAxODo1ODoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjZdIGNy b3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2w6IHJld29yayB3aXRoIHZvaWQtY3Jvc3MKCi0tLQog c3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzE3ICstLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMwMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11 c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wvdGVtcGxh dGUKaW5kZXggZTA0MWNjNWQwNDEuLjg2YjY5NTQ4ODYxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Ny b3NzLXBvd2VycGM2NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1w b3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDIwIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsJworX3RyaXBsZXQ9cG93 ZXJwYzY0bGUtbGludXgtbXVzbAogX2JpbnV0aWxzX3ZlcnNpb249Mi4zMgogX2djY192ZXJzaW9u PTkuMy4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NC4xOQogX2xpYnVj b250ZXh0X3ZlcnNpb249MC45LjAKLQotX3RyaXBsZXQ9InBvd2VycGM2NGxlLWxpbnV4LW11c2wi Ci1fc3lzcm9vdD0iL3Vzci8ke190cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0 fQogdmVyc2lvbj0wLjMzCiByZXZpc2lvbj0yCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4g Zm9yIHBvd2VycGM2NGxlIHdpdGggbXVzbCIKK2J1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKK2NvbmZp Z3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkKKyAt LWRpc2FibGUtZGVjaW1hbC1mbG9hdCAtLXdpdGgtYWJpPWVsZnYyIC0tZW5hYmxlLXRhcmdldHM9 cG93ZXJwY2xlLWxpbnV4IgoraG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZs ZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6 bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJj LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFp biBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PiIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKQEAgLTI3LDMxMyArMzAsMjMgQEAg Y2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1NTU3Zjg5NjQ0 NmM4MmU4YjM2ZTQ3M2VlMDQKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIyNTllZGM5MzIz OWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExCiAgMGQ1M2E0MTVhMzA3ZWYxNzUxNTNiYmU2MGE1 NzJjOTQwYTkyMmNiNzM2Y2UxMzUzMGI2NjZlN2VjMjc5NWQ2OCIKIAotbGliMzJkaXNhYmxlZD15 ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVfd3Jrc3JjPXll cwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24z IgotbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwgbGlibXBjLWRl dmVsIGlzbDE1LWRldmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5h IGxpYmdjb3YuYSBsaWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25h dF9waWMuYSBsaWJnbmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0g IjY0IiBdOyB0aGVuCi0JYnJva2VuPSI2NC1iaXQgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFi bGUgb24gNjQtYml0IGhvc3QiCi1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3Nf bGlidWNvbnRleHRfYXJjaD1wcGM2NAorY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19i aW51dGlsc19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfbXVzbF9j ZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYzY0bGUtbXVz bCIgXTsgdGhlbgogCWJyb2tlbj0iQ2FuJ3QgYnVpbGQgY3Jvc3N0b29sY2hhaW4gdG8gaXRzZWxm IgogZmkKIAotX2FwcGx5X3BhdGNoKCkgewotCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNl bmFtZSAkMikiCi0KLQlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCi0JCXBhdGNo IC1OICRhcmdzIC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2JpbnV0 aWxzX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uYmludXRpbHNf YnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBiaW51dGlscyBib290c3RyYXBcbiIKLQotCVsgISAtZCBiaW51dGlscy1i dWlsZCBdICYmIG1rZGlyIGJpbnV0aWxzLWJ1aWxkCi0JY2QgYmludXRpbHMtYnVpbGQKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1u bHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS13 ZXJyb3IiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLXdpdGgtc3lz dGVtLXpsaWIiCi0KLQkuLi9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS9jb25maWd1cmUg JHtfYXJnc30KLQotCW1ha2UgY29uZmlndXJlLWhvc3QKLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUKLX0KLQot X2djY19ib290c3RyYXAoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5nY2Nf Ym9vdHN0cmFwX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2djYy0ke19nY2Nf dmVyc2lvbn0KLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvcGF0Y2hlcy8qLnBhdGNo OyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICIkZiIKLQlkb25lCi0JZm9yIGYgaW4gJHtYQlBTX1NS Q1BLR0RJUn0vZ2NjL2ZpbGVzLyotbXVzbC5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMSAi JGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxu IgotCi0JWyAhIC1kIC4uL2djYy1ib290c3RyYXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFw Ci0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCWV4cG9ydCBhY19jdl9jX2NvbXBpbGVyX2dudT15ZXMK LQotCV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9 IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9IgotCV9hcmdzKz0iIC0td2l0 aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMiCi0JX2FyZ3MrPSIg LS1lbmFibGUtZGVjaW1hbC1mbG9hdD1ubyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIg LS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0i IC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJhdG9t aWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3ZfaGF2 ZV9pZnVuYz1ubyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9 Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30v LmdjY19ib290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jr c3JjfS8ubGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtf bGludXhfdmVyc2lvbn0KLQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2tlcm5lbC1saWJj LWhlYWRlcnMvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAwICRmCi0JZG9u ZQotCi0JbWFrZSBBUkNIPXBvd2VycGMgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD1wb3dlcnBj IElOU1RBTExfSERSX1BBVEg9JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91 Y2ggJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsg LWYgJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9L211c2wtJHtfbXVzbF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11 c2wgbGliY1xuIgotCi0JIyBBcHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlm IFsgLWQgIiR7WEJQU19TUkNQS0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBp biAke1hCUFNfU1JDUEtHRElSfS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9w YXRjaCAtcDAgIiRmIgotCQlkb25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIExEPSIk e190cmlwbGV0fS1sZCIgQVI9IiR7X3RyaXBsZXR9LWFyIiBcCi0JCUFTPSIke190cmlwbGV0fS1h cyIgUkFOTElCPSIke190cmlwbGV0fS1yYW5saWIiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgLWZQ SUMgJHtfYXJjaGZsYWdzfSIgXAotCQkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyCi0KLQltYWtl ICR7bWFrZWpvYnN9Ci0JbWFrZSBERVNURElSPSR7X3N5c3Jvb3R9IGluc3RhbGwKLQotCXRvdWNo ICR7d3Jrc3JjfS8ubXVzbF9idWlsZF9kb25lCi19Ci0KLV9saWJ1Y29udGV4dF9idWlsZCgpIHsK LQlbIC1mICR7d3Jrc3JjfS8ubGlidWNvbnRleHRfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0K LQljZCAke3dya3NyY30vbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0KLQltc2df bm9ybWFsICJCdWlsZGluZyBjcm9zcyBsaWJ1Y29udGV4dFxuIgotCi0JIyBpdCdzIG9rIGlmIHdl J3JlIHN0YXRpYyBvbmx5IGhlcmUKLQlDQz0iJHtfdHJpcGxldH0tZ2NjIiBBUj0iJHtfdHJpcGxl dH0tYXIiIEFTPSIke190cmlwbGV0fS1hcyIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNo ZmxhZ3N9IiBcCi0JCW1ha2UgQVJDSD1wcGM2NCBsaWJ1Y29udGV4dC5hCi0KLQljcCBsaWJ1Y29u dGV4dC5hICR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCXRvdWNoICR7d3Jrc3JjfS8ubGlidWNvbnRl eHRfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2J1aWxkKCkgewotCWxvY2FsIF9hcmdzCi0JWyAtZiAk e3dya3NyY30vLmdjY19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQot CW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBmaW5hbFxuIgotCi0JWyAhIC1kIGdjYy1i dWlsZCBdICYmIG1rZGlyIGdjYy1idWlsZAotCWNkIGdjYy1idWlsZAotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0iIC0t dGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jvb3R9 IgotCV9hcmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3Vh Z2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28sZm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1l bmFibGUtZGVjaW1hbC1mbG9hdD1ubyIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1cmVwbHQiCi0J X2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCi0JX2FyZ3MrPSIgLS1l bmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJs ZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9 IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRp bGliIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxl LXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtdnRhYmxlLXZlcmlmeSIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0J Li4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtl am9ic30KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQo KSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNhbmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQ IExEIEFTIEFSIFJBTkxJQiBPQkpEVU1QIFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxB R1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIgQ1hY RkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIKLQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMg YmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0J CQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lz cm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5 c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGli MzIKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9saWIzMgotCi0JX2JpbnV0aWxzX2J1aWxk Ci0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVj b250ZXh0X2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGlu IGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9v dH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7 Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAt c2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIg JHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFk ZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBv d2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJz X2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVk ZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNU RElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51 dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RE SVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1 aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5z byogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RF U1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRh cmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9 JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRl cnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRl LWZpeGVkLwotCi0JIyBNYWtlIGxkLW11c2wtcG93ZXJwYzY0bGUuc28uMSBzeW1saW5rIHJlbGF0 aXZlIHRvIGN3ZC4KLQljZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc2Yg bGliYy5zbyBsZC1tdXNsLXBvd2VycGM2NGxlLnNvLjEKLQotCSMgc3ltbGlua3MgZm9yIGduYXJs IGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiou Kn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFs aWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1z dmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9 LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRv bWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBp dCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0 ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQly bSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVt b3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVy dHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97 c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhl YwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliLyoucHkKLQlybSAtZiAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3tzYmluLGxpYn0KLX0KLQotZG9fY2xlYW4oKSB7Ci0JIyBSZW1vdmUg dGVtcG9yYXJ5IHN0dWZmIGZyb20gbWFzdGVyZGlyCi0Jcm0gLXJmICR7X3N5c3Jvb3R9Ci0Jcm0g LWYgL3Vzci9iaW4vJHtfdHJpcGxldH0qCi0Jcm0gLXJmIC91c3IvbGliL2djYy8ke190cmlwbGV0 fQotCXJtIC1yZiAvdXNyL2xpYmV4ZWMvZ2NjLyR7X3RyaXBsZXR9Ci19Ci0KIGNyb3NzLXBvd2Vy cGM2NGxlLWxpbnV4LW11c2wtbGliY19wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJj IGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlk ZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUg dXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpGcm9tIGU5MjIyMTM0NjhjYTNhYWNiNzlmMTk5 MTJhM2NlZWU0M2FkMTY0NGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTk6MDM6MDIgKzAxMDAK U3ViamVjdDogW1BBVENIIDIzLzI2XSBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251OiByZXdvcmsg d2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90 ZW1wbGF0ZSB8IDM2MyArLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBp bnNlcnRpb25zKCspLCAzNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9z cy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQt bGludXgtZ251L3RlbXBsYXRlCmluZGV4IGViY2VjNGM3NmJlLi5mYTBhZjExMTgwZiAxMDA2NDQK LS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudScKK190cmlw bGV0PXBvd2VycGM2NC1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9nY2NfdmVy c2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4xOQotCi1f dHJpcGxldD0icG93ZXJwYzY0LWxpbnV4LWdudSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBsZXR9 IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9uPTEK LXNob3J0X2Rlc2M9IkdOVSBjcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0YXJn ZXRzIChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworY29uZmln dXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLXdp dGgtYWJpPWVsZnYyCisgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjLWxpbnV4IgoraG9zdG1ha2Vk ZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFrZWRlcGVu ZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRl dmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitz aG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFp bmVyPSJKw7xyZ2VuIEJ1Y2htw7xsbGVyIDxwdWxsbW9sbEB0LW9ubGluZS5kZT4iCi1ob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczov L3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMv YmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2NjL2dj Yy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKQEAgLTI0LDM1OCAr MjcsMjIgQEAgY2hlY2tzdW09IjBhYjZjNTVkZDg2YTkyZWQ1NjE5NzJiYTE1YjliNzBhOGI5Zjc1 NTU3Zjg5NjQ0NmM4MmU4YjM2ZTQ3M2VlMDQKICBlMmM0MTE0ZTU2OWFmYmU3ZWRiYzI5MTMxYTQz YmU4MzM4NTBhYjlhNDU5ZDgxYmViMjU4ODAxNmQyYmJiOGFmCiAgMGM2OGY1NjU1NTI4YWVkNGY5 OWRhZTcxYTViMjU5ZWRjOTMyMzlmYTg5OWUyZGY3OWMwNTUyNzVjMjE3NDlhMSIKIAotbGliMzJk aXNhYmxlZD15ZXMKLW5vY3Jvc3M9eWVzCi1ub3BpZT15ZXMKLW5vZGVidWc9eWVzCi1jcmVhdGVf d3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVy bCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIgotbm9zdHJpcF9maWxlcz0ibGliY2FmX3NpbmdsZS5hIGxpYmdjYy5hIGxpYmdjb3YuYSBs aWJnY2NfZWguYQotIGxpYmduYXJsX3BpYy5hIGxpYmduYXJsLmEgbGliZ25hdF9waWMuYSBsaWJn bmF0LmEgbGliZ21lbS5hIgotZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCi0KLWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiAhPSAiZ2xpYmMiIF07IHRoZW4K LQlicm9rZW49ImdsaWJjIGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIGdsaWJjIgot ZmkKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLQlicm9r ZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIK LWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citjcm9zc19saW51eF9hcmNoPXBvd2VycGMK K2Nyb3NzX2JpbnV0aWxzX2NvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQiCitjcm9z c19nbGliY19jZmxhZ3M9Ii1PMiIKIAogaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBw YzY0IiBdOyB0aGVuCiAJYnJva2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNl bGYiCiBmaQogCi1fYXBwbHlfcGF0Y2goKSB7Ci0JbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJh c2VuYW1lICQyKSIKLQotCWlmIFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KLQkJcGF0 Y2ggLU4gJGFyZ3MgLWkgJDIKLQkJdG91Y2ggLiR7cG5hbWV9X2RvbmUKLQlmaQotfQotCi1fYmlu dXRpbHNfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQotCVsgLWYgJHt3cmtzcmN9Ly5iaW51dGls c19idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIGNyb3NzIGJpbnV0aWxzIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIGJpbnV0aWxz LWJ1aWxkIF0gJiYgbWtkaXIgYmludXRpbHMtYnVpbGQKLQljZCBiaW51dGlscy1idWlsZAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW5scyIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LXdlcnJvciIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0td2l0aC1z eXN0ZW0temxpYiIKLQotCS4uL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3Vy ZSAke19hcmdzfQotCi0JbWFrZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQlt YWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQot Ci1fZ2NjX2Jvb3RzdHJhcCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdj Y19ib290c3RyYXBfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2dj Y192ZXJzaW9ufQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCWRvbmUKLQotCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2MtYm9vdHN0cmFw IF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3RyYXAKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9h cmdzKz0iIC0td2l0aC1hYmk9ZWxmdjIiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMi Ci0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXRhcmdl dHM9cG93ZXJwY2xlLWxpbnV4IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3Mr PSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLXdpdGhvdXQtaGVhZGVycyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0aCIKLQlf YXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2FibGUtdGhy ZWFkcyIKLQlfYXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1s aWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJnb21wIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJhdG9taWMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1weCIKLQlfYXJncys9IiAt LWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIK LQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0KLQku Li9nY2MtJHtfZ2NjX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFrZSAke21ha2Vq b2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYm9vdHN0cmFwX2Rv bmUKLX0KLQotX2xpbnV4X2hlYWRlcnMoKSB7Ci0JWyAtZiAke3dya3NyY30vLmxpbnV4X2J1aWxk X2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRp bmcgTGludXggQVBJIGhlYWRlcnNcbiIKLQotCWNkIGxpbnV4LSR7X2xpbnV4X3ZlcnNpb259Ci0K LQltYWtlIEFSQ0g9cG93ZXJwYyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5T VEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0JbG9j YWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAtZCAi JHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hC UFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0Y2gg LXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJCdWls ZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBdICYm IG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJjX2N2 X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19jbGVh bnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdjYyIg TEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlw bGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9IiAtLXByZWZpeD0v dXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtaGVh ZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNoZSIK LQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUtb2Jz b2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9nbGli Yy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5zdGFs bC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9v dH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGliY19i dWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNy b3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1idWls ZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQiID4gY29uZmln cGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNhY2hl Ci0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4cG9y dCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9IiR7X3RyaXBs ZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAiIFwK LQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMiAtcGlwZSIKLQotCV9h cmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliNjQiCi0JX2Fy Z3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7X3N5 c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdzKz0i IC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1uc2wi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2VybmVs PTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCi0JLi4vZ2xpYmMtJHtfZ2xp YmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0JbWFr ZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5n bGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1m ICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2Nj LWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBMRCBB UwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNlZF9z dWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGliLyxn O3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lzcm9v dH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lzcm9vdH0vbGli NjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIgXAotCQkJLWkg JHtfc3lzcm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXRvdWNoIC5zZWRfc3Vic3RfZG9uZQotCWZp Ci0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmRpcj0vdXNyL2xpYiIK LQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtf dHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3Mr PSIgLS13aXRoLWFiaT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEs YysrLG9iamMsb2JqLWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1zZWN1 cmVwbHQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCi0JX2Fy Z3MrPSIgLS13aXRoLWdudS1hcyIKLQlfYXJncys9IiAtLXdpdGgtZ251LWxkIgotCV9hcmdzKz0i IC0tZW5hYmxlLWxpYmFkYSIKLQlfYXJncys9IiAtLWVuYWJsZS1sdG8iCi0JX2FyZ3MrPSIgLS1l bmFibGUtZGVmYXVsdC1waWUiCi0JX2FyZ3MrPSIgLS1lbmFibGUtZGVmYXVsdC1zc3AiCi0JX2Fy Z3MrPSIgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIgotCV9hcmdzKz0iIC0tZW5hYmxlLWdudS11 bmlxdWUtb2JqZWN0IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWVu YWJsZS10aHJlYWRzPXBvc2l4IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpYnF1YWRtYXRoIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIK LQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11 ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUt bGlic3RkY3h4LXBjaCIKLQlfYXJncys9IiAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKLQlfYXJn cys9IiAtLWRpc2FibGUtc2psai1leGNlcHRpb25zIgotCi0JQ0M9ImdjYyIgQ1hYPSJnKysiIENG TEFHUz0iLU8yIC1waXBlIiBcCi0JCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7 X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0KLQl0b3VjaCAke3dya3NyY30vLmdjY19idWls ZF9kb25lCi19Ci0KLWRvX2J1aWxkKCkgewotCXVuc2V0IExERkxBR1MKLQlleHBvcnQgQ0ZMQUdT PSItT3MgLWZQSUMiIENYWEZMQUdTPSItT3MgLWZQSUMiCi0KLQlmb3IgZiBpbiBpbmNsdWRlIGxp YiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtfc3lzcm9vdH0vdXNyLyR7Zn0g XTsgdGhlbgotCQkJbWtkaXIgLXAgJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAh IC1oICR7X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke19zeXNyb290fS91c3Iv JHtmfSAke19zeXNyb290fS8ke2Z9Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtfc3lzcm9v dH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtfc3lzcm9vdH0vbGliNjQKLQotCV9iaW51 dGlsc19idWlsZAotCV9nY2NfYm9vdHN0cmFwCi0JX2xpbnV4X2hlYWRlcnMKLQlfZ2xpYmNfaGVh ZGVycwotCV9nbGliY19idWlsZAotCV9nY2NfYnVpbGQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlm b3IgZiBpbiBpbmNsdWRlIGxpYiBsaWJleGVjIGJpbiBzYmluOyBkbwotCQlpZiBbICEgLWQgJHtE RVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke0RFU1RE SVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZpCi0JCWlmIFsgISAtaCAke0RFU1RESVJ9LyR7 X3N5c3Jvb3R9LyR7Zn0gXTsgdGhlbgotCQkJbG4gLXNmciAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IFwKLQkJCQkke0RFU1RESVJ9LyR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1 c3IvbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliNjQKLQotCSMgaW5zdGFsbCBsaW51eCBB UEkgaGVhZGVycwotCWNkICR7d3Jrc3JjfS9saW51eC0ke19saW51eF92ZXJzaW9ufQotCW1ha2Ug QVJDSD1wb3dlcnBjIElOU1RBTExfSERSX1BBVEg9JHtERVNURElSfS8ke19zeXNyb290fS91c3Ig aGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5zdGFsbC5jbWQpCi0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJtCi0KLQkjIGluc3RhbGwgY3Jv c3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVpbGQKLQltYWtlIERFU1RESVI9 JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3MgZ2NjCi0JY2QgJHt3cmtzcmN9 L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgbW92ZSBs aWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2xpYmNjMS5z byogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkjIGluc3RhbGwgZ2xpYmMgZm9y IHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1ha2UgaW5zdGFsbF9yb290PSR7 REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhlYWRlcnMKLQotCSMgc3ltbGlu a3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMKLQlfbWFqb3J2ZXI9JHtfZ2Nj X3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7X2djY192 ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25hcmwtJHtf bWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCW12IC12ICR7REVT VERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5zbyAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21ham9ydmVyfS5zbyBsaWJnbmFy bC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28gbGliZ25hdC5zbwotCXJtIC12 ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNvCi0KLQkjIFdlIG5lZWQgdG8g YnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28gbmVlZHMgaXQgdG8KLQkjIGJ1 aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwgc28gcmVtb3ZlIGl0IGZyb20g dGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCB0aGUgbGliYXRvbWlj IHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIvbGliYXRvbWlj LioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0gLWYgJHtERVNURElSfS91c3Iv bGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZQotCXJtIC1yZiAk e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5 c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQot fQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJk aXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoKLQly bSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9nY2Mv JHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS1saWJjX3BhY2thZ2Uo KSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJp ZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpG cm9tIGZkNDdkZTBjYTZjMjlhYmM3MGFjOTMyZmFmMDU3NWM1NTRjNDkzZjUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MjYgRGVjIDIwMjAgMTk6MDY6MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDI0LzI2XSBjcm9zcy1w b3dlcnBjNjQtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoKLS0tCiBzcmNwa2dz L2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzE3ICstLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMzAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wvdGVtcGxh dGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IGNi YjQ0MzFiNjJhLi5jNjQ3OTdjOTQxNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBj NjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51 eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDIwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj cm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbCcKK190cmlwbGV0PXBvd2VycGM2NC1saW51eC1tdXNs CiBfYmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNp b249MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjku MAotCi1fdHJpcGxldD0icG93ZXJwYzY0LWxpbnV4LW11c2wiCi1fc3lzcm9vdD0iL3Vzci8ke190 cmlwbGV0fSIKLQogcGtnbmFtZT1jcm9zcy0ke190cmlwbGV0fQogdmVyc2lvbj0wLjMzCiByZXZp c2lvbj0yCi1zaG9ydF9kZXNjPSJDcm9zcyB0b29sY2hhaW4gZm9yIHBvd2VycGM2NCB3aXRoIG11 c2wiCitidWlsZF9zdHlsZT12b2lkLWNyb3NzCitjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2Vj dXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CisgLS1kaXNhYmxlLWRlY2ltYWwtZmxvYXQg LS13aXRoLWFiaT1lbGZ2MiAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGMtbGludXgiCitob3N0bWFr ZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCittYWtlZGVw ZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwiCitkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK K3Nob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke190cmlwbGV0fSIKIG1haW50 YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTUlUIgpAQCAtMjcsMzEzICszMCwyMyBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJl ZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhm NTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVkYzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5 YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2JiZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2 NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2FibGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXll cwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBn Y2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZl bCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJtcGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlw X2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0g bGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVt LmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQot aWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiAhPSAiNjQiIF07IHRoZW4KLSAgICAgICAgYnJv a2VuPSI2NC1iaXQgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gNjQtYml0IGhvc3Qi Ci1maQorY3Jvc3NfdHJpcGxldD0ke190cmlwbGV0fQorY3Jvc3NfbGlidWNvbnRleHRfYXJjaD1w cGM2NAorY3Jvc3NfbGludXhfYXJjaD1wb3dlcnBjCitjcm9zc19iaW51dGlsc19jb25maWd1cmVf YXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IgorY3Jvc3NfbXVzbF9jZmxhZ3M9Ii1PMiIKIAogaWYg WyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwYzY0LW11c2wiIF07IHRoZW4KIAlicm9rZW49 IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRj aCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAh IC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0 b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2Nh bCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1 cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRp bHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51 dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIK LQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9v dD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlz YWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCi0JLi4vYmlu dXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNv bmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQotCW1ha2UgaW5zdGFsbAotCi0JdG91Y2gg JHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewot CWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYg cmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtfZ2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4g JHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNo IC1wMCAiJGYiCi0JZG9uZQotCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9maWxlcy8q LW11c2wucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDEgIiRmIgotCWRvbmUKLQotCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGdjYyBib290c3RyYXBcbiIKLQotCVsgISAtZCAuLi9nY2Mt Ym9vdHN0cmFwIF0gJiYgbWtkaXIgLi4vZ2NjLWJvb3RzdHJhcAotCWNkIC4uL2djYy1ib290c3Ry YXAKLQlleHBvcnQgYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCi0KLQlfYXJncz0iLS1wcmVmaXg9 L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt c3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLXdpdGgtYWJpPWVsZnYyIgotCV9hcmdz Kz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlY2ltYWwtZmxv YXQ9bm8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtc2VjdXJlcGx0IgotCV9hcmdzKz0iIC0tZW5hYmxl LXRhcmdldHM9cG93ZXJwYy1saW51eCIKLQlfYXJncys9IiAtLXdpdGgtbmV3bGliIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlfYXJncys9 IiAtLWRpc2FibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXRocmVhZHMiCi0J X2FyZ3MrPSIgLS1kaXNhYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIi Ci0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxp YmdvbXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2Fi bGUtc3ltdmVycyIKLQlfYXJncys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JLi4vZ2Nj LSR7X2djY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30K LQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3RzdHJhcF9kb25lCi19 Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51eF9idWlsZF9kb25l IF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIExp bnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJzaW9ufQotCi0JZm9y IGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9wYXRjaGVzLyoucGF0 Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtlIEFSQ0g9cG93ZXJw YyBoZWFkZXJzX2NoZWNrCi0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0ke19z eXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmxpbnV4X2J1 aWxkX2RvbmUKLX0KLQotX211c2xfYnVpbGQoKSB7Ci0JWyAtZiAke3dya3NyY30vLm11c2xfYnVp bGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vbXVzbC0ke19tdXNsX3ZlcnNp b259Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgbXVzbCBsaWJjXG4iCi0KLQkjIEFwcGx5 IG11c2wgcGF0Y2hlcyBpZiB0aGVyZSBhcmUgYW55Ci0JaWYgWyAtZCAiJHtYQlBTX1NSQ1BLR0RJ Un0vbXVzbC9wYXRjaGVzIiBdOyB0aGVuCi0JCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L211 c2wvcGF0Y2hlcy8qLnBhdGNoOyBkbwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCWRvbmUK LQlmaQotCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBBUj0iJHtf dHJpcGxldH0tYXIiIFwKLQkJQVM9IiR7X3RyaXBsZXR9LWFzIiBSQU5MSUI9IiR7X3RyaXBsZXR9 LXJhbmxpYiIgXAotCQlDRkxBR1M9Ii1PcyAtcGlwZSAke19hcmNoZmxhZ3N9IiBcCi0JCS4vY29u ZmlndXJlIC0tcHJlZml4PS91c3IKLQotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIERFU1RESVI9 JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5tdXNsX2J1aWxkX2RvbmUK LX0KLQotX2xpYnVjb250ZXh0X2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saWJ1Y29udGV4 dF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9saWJ1Y29udGV4dC0k e19saWJ1Y29udGV4dF92ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIGxpYnVj b250ZXh0XG4iCi0KLQkjIGl0J3Mgb2sgaWYgd2UncmUgc3RhdGljIG9ubHkgaGVyZQotCUNDPSIk e190cmlwbGV0fS1nY2MiIEFSPSIke190cmlwbGV0fS1hciIgQVM9IiR7X3RyaXBsZXR9LWFzIiBc Ci0JCUNGTEFHUz0iLU9zIC1waXBlIC1mUElDICR7X2FyY2hmbGFnc30iIFwKLQkJbWFrZSBBUkNI PXBwYzY0IGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250ZXh0LmEgJHtfc3lzcm9vdH0vdXNy L2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4dF9idWlsZF9kb25lCi19Ci0KLV9n Y2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2Rv bmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcg Y3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1 aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAt LWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS13aXRoLWFi aT1lbGZ2MiIKLQlfYXJncys9IiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxhZGEsYysrLG9iamMsb2Jq LWMrKyxnbyxmb3J0cmFuLGx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWNpbWFsLWZsb2F0PW5v IgotCV9hcmdzKz0iIC0tZW5hYmxlLXNlY3VyZXBsdCIKLQlfYXJncys9IiAtLWVuYWJsZS10YXJn ZXRzPXBvd2VycGMtbGludXgiCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0i IC0tZW5hYmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9 IiAtLWVuYWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2Fy Z3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzYW5p dGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9hcmdzKz0iIC0tZGlzYWJs ZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZW5hYmxlLXNoYXJlZCIKLQlfYXJncys9IiAtLWRp c2FibGUtc3ltdmVycyIKLQlfYXJncys9IiAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSIKLQlfYXJn cys9IiBsaWJhdF9jdl9oYXZlX2lmdW5jPW5vIgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9j b25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jrc3Jj fS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JIyBFbnN1cmUgd2UgdXNlIHNh bmUgZW52aXJvbm1lbnQKLQl1bnNldCBDQyBDWFggQ1BQIExEIEFTIEFSIFJBTkxJQiBPQkpEVU1Q IFJFQURFTEYgTk0KLQl1bnNldCBDRkxBR1MgQ1hYRkxBR1MgQ1BQRkxBR1MgTERGTEFHUwotCWV4 cG9ydCBDRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtcGlwZSAtZlBJQyIK LQotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAt ZCAke19zeXNyb290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91 c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQls biAtc2ZyICR7X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25l Ci0JbG4gLXNmIGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19z eXNyb290fS9saWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGlu dXhfaGVhZGVycwotCV9tdXNsX2J1aWxkCi0JX2xpYnVjb250ZXh0X2J1aWxkCi0JX2djY19idWls ZAotfQotCi1kb19pbnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmlu IHNiaW47IGRvCi0JCWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07 IHRoZW4KLQkJCW1rZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkK LQkJaWYgWyAhIC1oICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAt c2ZyICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtf c3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lz cm9vdH0vdXNyL2xpYjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9s aWI2NAotCi0JIyBpbnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzCi0JY2QgJHt3cmtzcmN9L2xpbnV4 LSR7X2xpbnV4X3ZlcnNpb259Ci0JbWFrZSBBUkNIPXBvd2VycGMgSU5TVEFMTF9IRFJfUEFUSD0k e0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQg JHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5h bWUgLi5pbnN0YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5j bHVkZS9kcm0KLQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51 dGlscy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFs bCBjcm9zcyBnY2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVT VERJUn0gaW5zdGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAk e0RFU1RESVJ9L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9s aWIKLQotCSMgaW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNs LSR7X211c2xfdmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBp bnN0YWxsCi0KLQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0v dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwotCi0JIyBNYWtlIGxkLW11 c2wtcG93ZXJwYzY0LnNvLjEgc3ltbGluayByZWxhdGl2ZSB0byBjd2QuCi0JY2QgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvbGliCi0JbG4gLXNmIGxpYmMuc28gbGQtbXVzbC1wb3dlcnBjNjQu c28uMQotCi0JIyBzeW1saW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwot CV9tYWpvcnZlcj0ke19nY2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtf dHJpcGxldH0vJHtfZ2NjX3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRh bGlifS9saWJnbmFybC0ke19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3Iv bGliCi0JbXYgLXYgJHtERVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNv ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFq b3J2ZXJ9LnNvIGxpYmduYXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBs aWJnbmF0LnNvCi0Jcm0gLXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28K LQotCSMgV2UgbmVlZCB0byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBu ZWVkcyBpdCB0bwotCSMgYnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBz byByZW1vdmUgaXQgZnJvbSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3 aXRoIHRoZSBsaWJhdG9taWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0v dXNyL2xpYi9saWJhdG9taWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAt ZiAke0RFU1RESVJ9L3Vzci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNy L3NoYXJlCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYg JHtERVNURElSfS8ke19zeXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNy b290fS9saWIvKi5weQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQot fQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkgc3R1ZmYgZnJvbSBtYXN0ZXJk aXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jpbi8ke190cmlwbGV0fSoKLQly bSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJmIC91c3IvbGliZXhlYy9nY2Mv JHtfdHJpcGxldH0KLX0KLQogY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wtbGliY19wYWNrYWdl KCkgewogCXNob3J0X2Rlc2MrPSIgLSBsaWJjIGZpbGVzIgogCW5vc3RyaXA9eWVzCiAJbm92ZXJp ZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJpcGxldH0KIAl9CiB9CgpG cm9tIDY3ZWNhZWZmMmI2NjBlY2VjNDI5YWZlZGJkMWEyYTZkN2QxODkxNmUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MjYgRGVjIDIwMjAgMTk6MTI6MTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1LzI2XSBjcm9zcy14 ODZfNjQtbGludXgtZ251OiByZXdvcmsgd2l0aCB2b2lkLWNyb3NzCgotLS0KIHNyY3BrZ3MvY3Jv c3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDM1OCArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAzNDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3Jj cGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDRhNjkyODA3NmE3Li41 YzQwZjljOWU5YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAt MSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MteDg2XzY0LWxpbnV4LWdu dScKK190cmlwbGV0PXg4Nl82NC1saW51eC1nbnUKIF9iaW51dGlsc192ZXJzaW9uPTIuMzIKIF9n Y2NfdmVyc2lvbj05LjMuMAogX2dsaWJjX3ZlcnNpb249Mi4zMAogX2xpbnV4X3ZlcnNpb249NC4x OQotCi1fdHJpcGxldD0ieDg2XzY0LWxpbnV4LWdudSIKLV9zeXNyb290PSIvdXNyLyR7X3RyaXBs ZXR9IgotCiBwa2duYW1lPWNyb3NzLSR7X3RyaXBsZXR9CiB2ZXJzaW9uPTAuMzMKIHJldmlzaW9u PTEKLXNob3J0X2Rlc2M9IkdOVSBjcm9zcyB0b29sY2hhaW4gZm9yIHRoZSAke190cmlwbGV0fSB0 YXJnZXRzIChiaW51dGlscy9nY2MvZ2xpYmMpIgorYnVpbGRfc3R5bGU9dm9pZC1jcm9zcworaG9z dG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgorbWFr ZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBt cGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtfdHJpcGxldH0iCiBt YWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKLWhvbWVwYWdlPSJodHRwczov L3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAt b3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0k e19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192 ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egpAQCAtMjQsMzU0ICsyNSwyMyBAQCBj aGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdmODk2NDQ2 YzgyZThiMzZlNDczZWUwNAogIGUyYzQxMTRlNTY5YWZiZTdlZGJjMjkxMzFhNDNiZTgzMzg1MGFi OWE0NTlkODFiZWIyNTg4MDE2ZDJiYmI4YWYKICAwYzY4ZjU2NTU1MjhhZWQ0Zjk5ZGFlNzFhNWIy NTllZGM5MzIzOWZhODk5ZTJkZjc5YzA1NTI3NWMyMTc0OWExIgogCi1saWIzMmRpc2FibGVkPXll cwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtzcmM9eWVz Ci1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwiCi1ub3N0 cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGliZ2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5h Ci0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBsaWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJn bWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK LQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiICE9ICJnbGliYyIgXTsgdGhlbgotCWJyb2tlbj0i Z2xpYmMgY3Jvc3N0b29sY2hhaW4gb25seSBhdmFpbGFibGUgb24gZ2xpYmMiCi1maQotCi1pZiBb ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiICE9ICI2NCIgXTsgdGhlbgotCWJyb2tlbj0iNjQtYml0 IGNyb3NzdG9vbGNoYWluIG9ubHkgYXZhaWxhYmxlIG9uIDY0LWJpdCBob3N0IgotZmkKK2Nyb3Nz X3RyaXBsZXQ9JHtfdHJpcGxldH0KK2Nyb3NzX2xpbnV4X2FyY2g9eDg2CisjIGV4cGxpY2l0bHkg ZW5hYmxlIGZvciBmaW5hbCBnY2MsIGdmb3J0cmFuIGRvZXMgbm90IGJ1aWxkIHdpdGhvdXQgb24g eDg2Citjcm9zc19nY2NfY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWxpYnF1YWRtYXRoIgorY3Jv c3NfZ2xpYmNfY2ZsYWdzPSItTzIiCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJ4 ODZfNjQiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9vbGNoYWluIHRvIGl0 c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQo YmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQlw YXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQotCWZpCi19Ci0KLV9i aW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmJpbnV0 aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0JbXNnX25vcm1h bCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgYmludXRp bHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0aWxzLWJ1aWxkCi0K LQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0ke190cmlwbGV0fSIK LQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJncys9IiAtLWRpc2Fi bGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS13aXRo LXN5c3RlbS16bGliIgotCi0JLi4vYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0vY29uZmln dXJlICR7X2FyZ3N9Ci0KLQltYWtlIGNvbmZpZ3VyZS1ob3N0Ci0JbWFrZSAke21ha2Vqb2JzfQot CW1ha2UgaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5iaW51dGlsc19idWlsZF9kb25lCi19 Ci0KLV9nY2NfYm9vdHN0cmFwKCkgewotCWxvY2FsIF9hcmdzCi0KLQlbIC1mICR7d3Jrc3JjfS8u Z2NjX2Jvb3RzdHJhcF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfS9nY2MtJHtf Z2NjX3ZlcnNpb259Ci0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0vZ2NjL3BhdGNoZXMvKi5w YXRjaDsgZG8KLQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JZG9uZQotCi0JbXNnX25vcm1hbCAi QnVpbGRpbmcgY3Jvc3MgZ2NjIGJvb3RzdHJhcFxuIgotCi0JWyAhIC1kIC4uL2djYy1ib290c3Ry YXAgXSAmJiBta2RpciAuLi9nY2MtYm9vdHN0cmFwCi0JY2QgLi4vZ2NjLWJvb3RzdHJhcAotCi0J X2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0J X2FyZ3MrPSIgLS13aXRob3V0LWhlYWRlcnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW5scyIKLQlf YXJncys9IiAtLWRpc2FibGUtc2hhcmVkIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJxdWFkbWF0 aCIKLQlfYXJncys9IiAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCIKLQlfYXJncys9IiAtLWRpc2Fi bGUtbGliZ29tcCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIC0tZGlz YWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYml0bSIKLQlfYXJncys9IiAtLWRpc2FibGUtbGliYXRvbWljIgotCV9hcmdz Kz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxl LW11bHRpbGliIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtbGQiCi0JX2FyZ3MrPSIgLS13aXRoLWdu dS1hcyIKLQotCS4uL2djYy0ke19nY2NfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQlt YWtlICR7bWFrZWpvYnN9Ci0JbWFrZSBpbnN0YWxsCi0KLQl0b3VjaCAke3dya3NyY30vLmdjY19i b290c3RyYXBfZG9uZQotfQotCi1fbGludXhfaGVhZGVycygpIHsKLQlbIC1mICR7d3Jrc3JjfS8u bGludXhfYnVpbGRfZG9uZSBdICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9y bWFsICJCdWlsZGluZyBMaW51eCBBUEkgaGVhZGVyc1xuIgotCi0JY2QgbGludXgtJHtfbGludXhf dmVyc2lvbn0KLQotCW1ha2UgQVJDSD14ODYgaGVhZGVyc19jaGVjawotCW1ha2UgQVJDSD14ODYg SU5TVEFMTF9IRFJfUEFUSD0ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0KLQl0b3Vj aCAke3dya3NyY30vLmxpbnV4X2J1aWxkX2RvbmUKLX0KLQotX2dsaWJjX2hlYWRlcnMoKSB7Ci0J bG9jYWwgX2FyZ3MgZgotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19oZWFkZXJzX2RvbmUgXSAmJiBy ZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259Ci0JaWYgWyAt ZCAiJHtYQlBTX1NSQ1BLR0RJUn0vZ2xpYmMvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAk e1hCUFNfU1JDUEtHRElSfS9nbGliYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlfYXBwbHlfcGF0 Y2ggLXAxICIkZiIKLQkJZG9uZQotCWZpCi0KLQljZCAke3dya3NyY30KLQltc2dfbm9ybWFsICJC dWlsZGluZyBjcm9zcyBnbGliYyBoZWFkZXJzXG4iCi0KLQlbICEgLWQgZ2xpYmMtaGVhZGVycyBd ICYmIG1rZGlyIGdsaWJjLWhlYWRlcnMKLQljZCBnbGliYy1oZWFkZXJzCi0KLQllY2hvICJsaWJj X2N2X2ZvcmNlZF91bndpbmQ9eWVzIiA+IGNvbmZpZy5jYWNoZQotCWVjaG8gImxpYmNfY3ZfY19j bGVhbnVwPXllcyIgPj4gY29uZmlnLmNhY2hlCi0KLQlleHBvcnQgQ0M9IiR7X3RyaXBsZXR9LWdj YyIgTEQ9IiR7X3RyaXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190 cmlwbGV0fS1jcHAiIFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCi0JX2FyZ3M9IiAtLXByZWZp eD0vdXNyIgotCV9hcmdzKz0iIC0taG9zdD0ke190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgt aGVhZGVycz0ke19zeXNyb290fS91c3IvaW5jbHVkZSIKLQlfYXJncys9IiAtLWNvbmZpZy1jYWNo ZSIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1ycGMiCi0JX2FyZ3MrPSIgLS1lbmFibGUt b2Jzb2xldGUtbnNsIgotCV9hcmdzKz0iIC0tZW5hYmxlLWtlcm5lbD0yLjYuMjciCi0KLQkuLi9n bGliYy0ke19nbGliY192ZXJzaW9ufS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgLWsgaW5z dGFsbC1oZWFkZXJzIGNyb3NzX2NvbXBpbGluZz15ZXMgXAotCQlpbnN0YWxsX3Jvb3Q9JHtfc3lz cm9vdH0KLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2xpYmNfaGVhZGVyc19kb25lCi19Ci0KLV9nbGli Y19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCVsgLWYgJHt3cmtzcmN9Ly5nbGliY19idWlsZF9k b25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGNyb3NzIGdsaWJjXG4iCi0KLQlbICEgLWQgZ2xpYmMtYnVpbGQgXSAmJiBta2RpciBnbGliYy1i dWlsZAotCWNkIGdsaWJjLWJ1aWxkCi0KLQllY2hvICJzbGliZGlyPS91c3IvbGliNjQiID4gY29u ZmlncGFybXMKLQotCWVjaG8gImxpYmNfY3ZfZm9yY2VkX3Vud2luZD15ZXMiID4gY29uZmlnLmNh Y2hlCi0JZWNobyAibGliY19jdl9jX2NsZWFudXA9eWVzIiA+PiBjb25maWcuY2FjaGUKLQotCWV4 cG9ydCBDQz0iJHtfdHJpcGxldH0tZ2NjIiBDWFg9IiR7X3RyaXBsZXR9LWcrKyIgTEQ9IiR7X3Ry aXBsZXR9LWxkIiBcCi0JCUFTPSIke190cmlwbGV0fS1hcyIgQ1BQPSIke190cmlwbGV0fS1jcHAi IFwKLQkJTk09IiR7X3RyaXBsZXR9LW5tIgotCWV4cG9ydCBDRkxBR1M9Ii1PMiAtcGlwZSIKLQot CV9hcmdzPSItLXByZWZpeD0vdXNyIgotCV9hcmdzKz0iIC0tbGliZGlyPS91c3IvbGliNjQiCi0J X2FyZ3MrPSIgLS1ob3N0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1oZWFkZXJzPSR7 X3N5c3Jvb3R9L3Vzci9pbmNsdWRlIgotCV9hcmdzKz0iIC0tY29uZmlnLWNhY2hlIgotCV9hcmdz Kz0iIC0tZW5hYmxlLW9ic29sZXRlLXJwYyIKLQlfYXJncys9IiAtLWVuYWJsZS1vYnNvbGV0ZS1u c2wiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXByb2ZpbGUiCi0JX2FyZ3MrPSIgLS1lbmFibGUta2Vy bmVsPTIuNi4yNyIKLQlfYXJncys9IiAtLWRpc2FibGUtd2Vycm9yIgotCi0JLi4vZ2xpYmMtJHtf Z2xpYmNfdmVyc2lvbn0vY29uZmlndXJlICR7X2FyZ3N9Ci0KLQltYWtlICR7bWFrZWpvYnN9Ci0J bWFrZSBpbnN0YWxsX3Jvb3Q9JHtfc3lzcm9vdH0gaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9 Ly5nbGliY19idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlb IC1mICR7d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtz cmN9Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQg Z2NjLWJ1aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQl1bnNldCBM RCBBUwotCi0JIyBNYWtlIHRoaXMgbGluayB0byB0YXJnZXQgbGlicy4KLQlpZiBbICEgLWYgLnNl ZF9zdWJzdF9kb25lIF07IHRoZW4KLQkJc2VkIC1lICJzLCAvbGliLywgJHtfc3lzcm9vdH0vbGli LyxnO3MsIC91c3IvbGliLywgJHtfc3lzcm9vdH0vdXNyL2xpYi8sZyIgXAotCQkJLWkgJHtfc3lz cm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYjY0LywgJHtfc3lzcm9vdH0v bGliNjQvLGc7cywgL3Vzci9saWI2NC8sICR7X3N5c3Jvb3R9L3Vzci9saWI2NC8sZyIgXAotCQkJ LWkgJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJjLnNvCi0JCXNlZCAtZSAicywgL2xpYi8sICR7X3N5 c3Jvb3R9L2xpYi8sZztzLCAvdXNyL2xpYi8sICR7X3N5c3Jvb3R9L3Vzci9saWIvLGciIFwKLQkJ CS1pICR7X3N5c3Jvb3R9L3Vzci9saWIvbGlibS5zbwotCQlzZWQgLWUgInMsIC9saWI2NC8sICR7 X3N5c3Jvb3R9L2xpYjY0LyxnO3MsIC91c3IvbGliNjQvLCAke19zeXNyb290fS91c3IvbGliNjQv LGciIFwKLQkJCS1pICR7X3N5c3Jvb3R9L3Vzci9saWIvbGlibS5zbwotCQl0b3VjaCAuc2VkX3N1 YnN0X2RvbmUKLQlmaQotCi0JX2FyZ3M9Ii0tcHJlZml4PS91c3IiCi0JX2FyZ3MrPSIgLS1saWJk aXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS1saWJleGVjZGlyPS91c3IvbGliIgotCV9hcmdzKz0i IC0tdGFyZ2V0PSR7X3RyaXBsZXR9IgotCV9hcmdzKz0iIC0td2l0aC1zeXNyb290PSR7X3N5c3Jv b3R9IgotCV9hcmdzKz0iIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssb2JqYyxvYmotYysr LGdvLGZvcnRyYW4sbHRvIgotCV9hcmdzKz0iIC0td2l0aC1nbnUtYXMiCi0JX2FyZ3MrPSIgLS13 aXRoLWdudS1sZCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJhZGEiCi0JX2FyZ3MrPSIgLS1lbmFi bGUtbHRvIgotCV9hcmdzKz0iIC0tZW5hYmxlLWRlZmF1bHQtcGllIgotCV9hcmdzKz0iIC0tZW5h YmxlLWRlZmF1bHQtc3NwIgotCV9hcmdzKz0iIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCIKLQlf YXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKLQlfYXJncys9IiAtLWVuYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCIKLQlfYXJncys9IiAtLWVu YWJsZS1saWJxdWFkbWF0aCIKLQlfYXJncys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0t ZGlzYWJsZS1saWJzYW5pdGl6ZXIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLW11bHRpbGliIgotCV9h cmdzKz0iIC0tZGlzYWJsZS1saWJtdWRmbGFwIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1saWJzdGRj eHgtcGNoIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMiCi0KLQlDQz0iZ2Nj IiBDWFg9ImcrKyIgQ0ZMQUdTPSItTzIgLXBpcGUiIFwKLQkJLi4vZ2NjLSR7X2djY192ZXJzaW9u fS9jb25maWd1cmUgJHtfYXJnc30KLQotCW1ha2UgJHttYWtlam9ic30KLQotCXRvdWNoICR7d3Jr c3JjfS8uZ2NjX2J1aWxkX2RvbmUKLX0KLQotZG9fYnVpbGQoKSB7Ci0JdW5zZXQgTERGTEFHUwot CWV4cG9ydCBDRkxBR1M9Ii1PcyAtZlBJQyIgQ1hYRkxBR1M9Ii1PcyAtZlBJQyIKLQotCWZvciBm IGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0JCWlmIFsgISAtZCAke19zeXNy b290fS91c3IvJHtmfSBdOyB0aGVuCi0JCQlta2RpciAtcCAke19zeXNyb290fS91c3IvJHtmfQot CQlmaQotCQlpZiBbICEgLWggJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7 X3N5c3Jvb3R9L3Vzci8ke2Z9ICR7X3N5c3Jvb3R9LyR7Zn0KLQkJZmkKLQlkb25lCi0JbG4gLXNm IGxpYiAke19zeXNyb290fS91c3IvbGliNjQKLQlsbiAtc2YgdXNyL2xpYiAke19zeXNyb290fS9s aWI2NAotCi0JX2JpbnV0aWxzX2J1aWxkCi0JX2djY19ib290c3RyYXAKLQlfbGludXhfaGVhZGVy cwotCV9nbGliY19oZWFkZXJzCi0JX2dsaWJjX2J1aWxkCi0JX2djY19idWlsZAotfQotCi1kb19p bnN0YWxsKCkgewotCWZvciBmIGluIGluY2x1ZGUgbGliIGxpYmV4ZWMgYmluIHNiaW47IGRvCi0J CWlmIFsgISAtZCAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1r ZGlyIC1wICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0KLQkJZmkKLQkJaWYgWyAhIC1o ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtmfSBdOyB0aGVuCi0JCQlsbiAtc2ZyICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXAotCQkJCSR7REVTVERJUn0vJHtfc3lzcm9vdH0vJHtm fQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGliICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xp YjY0Ci0JbG4gLXNmIHVzci9saWIgJHtERVNURElSfS8ke19zeXNyb290fS9saWI2NAotCi0JIyBp bnN0YWxsIGxpbnV4IEFQSSBoZWFkZXJzIGZvciB4ODYKLQljZCAke3dya3NyY30vbGludXgtJHtf bGludXhfdmVyc2lvbn0KLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9JHtERVNURElS fS8ke19zeXNyb290fS91c3IgaGVhZGVyc19pbnN0YWxsCi0Jcm0gLWYgJChmaW5kICR7REVTVERJ Un0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUgLW5hbWUgLmluc3RhbGwgLW9yIC1uYW1lIC4uaW5z dGFsbC5jbWQpCi0Jcm0gLXJmICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2luY2x1ZGUvZHJt Ci0KLQkjIGluc3RhbGwgY3Jvc3MgYmludXRpbHMKLQljZCAke3dya3NyY30vYmludXRpbHMtYnVp bGQKLQltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsCi0KLQkjIGluc3RhbGwgY3Jvc3Mg Z2NjCi0JY2QgJHt3cmtzcmN9L2djYy1idWlsZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGlu c3RhbGwKLQotCSMgbW92ZSBsaWJjYzEuc28qIHRvIHRoZSBzeXNyb290Ci0JbXYgJHtERVNURElS fS91c3IvbGliL2xpYmNjMS5zbyogJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0KLQkj IGluc3RhbGwgZ2xpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9nbGliYy1idWlsZAotCW1h a2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0vJHtfc3lzcm9vdH0gaW5zdGFsbCBpbnN0YWxsLWhl YWRlcnMKLQotCSMgc3ltbGlua3MgZm9yIGduYXJsIGFuZCBnbmF0IHNoYXJlZCBsaWJyYXJpZXMK LQlfbWFqb3J2ZXI9JHtfZ2NjX3ZlcnNpb24lLiouKn0KLQlfYWRhbGliPXVzci9saWIvZ2NjLyR7 X3RyaXBsZXR9LyR7X2djY192ZXJzaW9ufS9hZGFsaWIKLQltdiAtdiAke0RFU1RESVJ9LyR7X2Fk YWxpYn0vbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNy L2xpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF0LSR7X21ham9ydmVyfS5z byAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQlsbiAtc3ZmIGxpYmduYXJsLSR7X21h am9ydmVyfS5zbyBsaWJnbmFybC5zbwotCWxuIC1zdmYgbGliZ25hdC0ke19tYWpvcnZlcn0uc28g bGliZ25hdC5zbwotCXJtIC12ZiAke0RFU1RESVJ9LyR7X2FkYWxpYn0vbGliZ25he3JsLHR9LnNv Ci0KLQkjIFdlIG5lZWQgdG8gYnVpbGQgbGliYXRvbWljIGluIHRhcmdldCBnY2MgYXMgZ2NjZ28g bmVlZHMgaXQgdG8KLQkjIGJ1aWxkLi4uIGJ1dCBpdCdzIG5vdCBuZWVkZWQgYXQgcnVudGltZSwg c28gcmVtb3ZlIGl0IGZyb20gdGhlCi0JIyBkZXN0ZGlyIHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qg d2l0aCB0aGUgbGliYXRvbWljIHBhY2thZ2UKLQlybSAtZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9 L3Vzci9saWIvbGliYXRvbWljLioKLQotCSMgUmVtb3ZlIHVubmVjZXNzYXJ5IHN0dWZmCi0Jcm0g LWYgJHtERVNURElSfS91c3IvbGliKi9saWJpYmVydHkuYQotCXJtIC1yZiAke0RFU1RESVJ9L3Vz ci9zaGFyZQotCXJtIC1yZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3tldGMsdmFyfQotCXJtIC1y ZiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci97c2JpbixzaGFyZSxsaWJleGVjfQotCXJtIC1m ICR7REVTVERJUn0vJHtfc3lzcm9vdH0vbGliZXhlYwotCXJtIC1mICR7REVTVERJUn0vJHtfc3lz cm9vdH0ve3NiaW4sbGlifQotfQotCi1kb19jbGVhbigpIHsKLQkjIFJlbW92ZSB0ZW1wb3Jhcnkg c3R1ZmYgZnJvbSBtYXN0ZXJkaXIKLQlybSAtcmYgJHtfc3lzcm9vdH0KLQlybSAtZiAvdXNyL2Jp bi8ke190cmlwbGV0fSoKLQlybSAtcmYgL3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9Ci0Jcm0gLXJm IC91c3IvbGliZXhlYy9nY2MvJHtfdHJpcGxldH0KLX0KLQogY3Jvc3MteDg2XzY0LWxpbnV4LWdu dS1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGdsaWJjIGZpbGVzIgogCW5vc3Ry aXA9eWVzCiAJbm92ZXJpZnlyZGVwcz15ZXMKIAlub3NobGlicHJvdmlkZXM9eWVzCisKIAlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgJHtfc3lzcm9vdH0KKwkJdm1vdmUgdXNyLyR7Y3Jvc3NfdHJp cGxldH0KIAl9CiB9CgpGcm9tIDQyYzRkZjllZjAxNTA0MTFiNzgxYjdjZjJjOGRhM2MzNzY5YzMy OTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFNhdCwgMjYgRGVjIDIwMjAgMTk6MTU6MjQgKzAxMDAKU3ViamVjdDogW1BBVENI IDI2LzI2XSBjcm9zcy14ODZfNjQtbGludXgtbXVzbDogcmV3b3JrIHdpdGggdm9pZC1jcm9zcwoK LS0tCiBzcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMzA1ICsrLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjkx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11 c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlCmlu ZGV4IDYzN2ZiZDJlNDM5Li41OGIxYjZkNDMzMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy14 ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51 eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDE4ICsxLDE4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj cm9zcy14ODZfNjQtbGludXgtbXVzbCcKLSMKK190cmlwbGV0PXg4Nl82NC1saW51eC1tdXNsCiBf YmludXRpbHNfdmVyc2lvbj0yLjMyCiBfZ2NjX3ZlcnNpb249OS4zLjAKIF9tdXNsX3ZlcnNpb249 MS4xLjI0CiBfbGludXhfdmVyc2lvbj00LjE5CiBfbGlidWNvbnRleHRfdmVyc2lvbj0wLjkuMAot Ci1fdHJpcGxldD14ODZfNjQtbGludXgtbXVzbAotX3N5c3Jvb3Q9Ii91c3IvJHtfdHJpcGxldH0i Ci0KIHBrZ25hbWU9Y3Jvc3MtJHtfdHJpcGxldH0KIHZlcnNpb249MC4zMwogcmV2aXNpb249NAot c2hvcnRfZGVzYz0iQ3Jvc3MgdG9vbGNoYWluIGZvciB4ODZfNjQgd2l0aCBtdXNsIgorYnVpbGRf c3R5bGU9dm9pZC1jcm9zcworaG9zdG1ha2VkZXBlbmRzPSJ0YXIgZ2NjLW9iamMgZ2NjLWdvIGZs ZXggcGVybCBweXRob24zIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6 bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1saWJj LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFp biBmb3IgJHtfdHJpcGxldH0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51 eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlUIgpAQCAtMjgsMzAxICsyOCwy NCBAQCBjaGVja3N1bT0iMGFiNmM1NWRkODZhOTJlZDU2MTk3MmJhMTViOWI3MGE4YjlmNzU1NTdm ODk2NDQ2YzgyZThiMzZlNDczZWUwNAogIDBjNjhmNTY1NTUyOGFlZDRmOTlkYWU3MWE1YjI1OWVk YzkzMjM5ZmE4OTllMmRmNzljMDU1Mjc1YzIxNzQ5YTEKICAwZDUzYTQxNWEzMDdlZjE3NTE1M2Ji ZTYwYTU3MmM5NDBhOTIyY2I3MzZjZTEzNTMwYjY2NmU3ZWMyNzk1ZDY4IgogCi1saWIzMmRpc2Fi bGVkPXllcwotbm9jcm9zcz15ZXMKLW5vcGllPXllcwotbm9kZWJ1Zz15ZXMKLWNyZWF0ZV93cmtz cmM9eWVzCi1ob3N0bWFrZWRlcGVuZHM9InRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMiCi1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCBsaWJt cGMtZGV2ZWwgaXNsMTUtZGV2ZWwiCi1ub3N0cmlwX2ZpbGVzPSJsaWJjYWZfc2luZ2xlLmEgbGli Z2NjLmEgbGliZ2Nvdi5hIGxpYmdjY19laC5hCi0gbGliZ25hcmxfcGljLmEgbGliZ25hcmwuYSBs aWJnbmF0X3BpYy5hIGxpYmduYXQuYSBsaWJnbWVtLmEiCi1kZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQotaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpF IiAhPSAiNjQiIF07IHRoZW4KLQlicm9rZW49IjY0LWJpdCBjcm9zc3Rvb2xjaGFpbiBvbmx5IGF2 YWlsYWJsZSBvbiA2NC1iaXQgaG9zdCIKLWZpCitjcm9zc190cmlwbGV0PSR7X3RyaXBsZXR9Citj cm9zc19saWJ1Y29udGV4dF9hcmNoPXg4Nl82NAorY3Jvc3NfbGludXhfYXJjaD14ODYKKyMgZXhw bGljaXRseSBlbmFibGUgZm9yIGZpbmFsIGdjYywgZ2ZvcnRyYW4gZG9lcyBub3QgYnVpbGQgd2l0 aG91dCBvbiB4ODYKK2Nyb3NzX2djY19jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbGlicXVhZG1h dGgiCitjcm9zc19tdXNsX2NmbGFncz0iLU8yIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTUFDSElO RSIgPSAieDg2XzY0LW11c2wiIF07IHRoZW4KIAlicm9rZW49IkNhbid0IGJ1aWxkIGNyb3NzdG9v bGNoYWluIHRvIGl0c2VsZiIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIk MSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIg XTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQot CWZpCi19Ci0KLV9iaW51dGlsc19idWlsZCgpIHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dy a3NyY30vLmJpbnV0aWxzX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9 Ci0JbXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgYmludXRpbHMgYm9vdHN0cmFwXG4iCi0KLQlb ICEgLWQgYmludXRpbHMtYnVpbGQgXSAmJiBta2RpciBiaW51dGlscy1idWlsZAotCWNkIGJpbnV0 aWxzLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVmaXg9L3VzciIKLQlfYXJncys9IiAtLXRhcmdldD0k e190cmlwbGV0fSIKLQlfYXJncys9IiAtLXdpdGgtc3lzcm9vdD0ke19zeXNyb290fSIKLQlfYXJn cys9IiAtLWRpc2FibGUtbmxzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1tdWx0aWxpYiIKLQlfYXJn cys9IiAtLWRpc2FibGUtd2Vycm9yIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2Fy Z3MrPSIgLS13aXRoLXN5c3RlbS16bGliIgotCV9hcmdzKz0iICR7X2ZwdWZsYWdzfSIKLQotCS4u L2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCi0JbWFr ZSBjb25maWd1cmUtaG9zdAotCW1ha2UgJHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRv dWNoICR7d3Jrc3JjfS8uYmludXRpbHNfYnVpbGRfZG9uZQotfQotCi1fZ2NjX2Jvb3RzdHJhcCgp IHsKLQlsb2NhbCBfYXJncwotCi0JWyAtZiAke3dya3NyY30vLmdjY19ib290c3RyYXBfZG9uZSBd ICYmIHJldHVybiAwCi0KLQljZCAke3dya3NyY30vZ2NjLSR7X2djY192ZXJzaW9ufQotCWZvciBm IGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9w YXRjaCAtcDAgIiRmIgotCWRvbmUKLQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElSfS9nY2MvZmls ZXMvKi1tdXNsLnBhdGNoOyBkbwotCQlfYXBwbHlfcGF0Y2ggLXAxICIkZiIKLQlkb25lCi0KLQlt c2dfbm9ybWFsICJCdWlsZGluZyBjcm9zcyBnY2MgYm9vdHN0cmFwXG4iCi0KLQlbICEgLWQgLi4v Z2NjLWJvb3RzdHJhcCBdICYmIG1rZGlyIC4uL2djYy1ib290c3RyYXAKLQljZCAuLi9nY2MtYm9v dHN0cmFwCi0JZXhwb3J0IGFjX2N2X2NfY29tcGlsZXJfZ251PXllcwotCi0JX2FyZ3M9Ii0tcHJl Zml4PS91c3IiCi0JX2FyZ3MrPSIgLS10YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13 aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMi Ci0JX2FyZ3MrPSIgLS13aXRoLW5ld2xpYiIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlic3NwIgot CV9hcmdzKz0iIC0tZGlzYWJsZS1ubHMiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnF1YWRtYXRo IgotCV9hcmdzKz0iIC0tZGlzYWJsZS10aHJlYWRzIgotCV9hcmdzKz0iIC0tZGlzYWJsZS1kZWNp bWFsLWZsb2F0IgotCV9hcmdzKz0iIC0tZGlzYWJsZS1zaGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNh YmxlLWxpYm11ZGZsYXAiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYmdvbXAiCi0JX2FyZ3MrPSIg LS1kaXNhYmxlLWxpYmF0b21pYyIKLQlfYXJncys9IiAtLWRpc2FibGUtc3ltdmVycyIKLQlfYXJn cys9IiAtLWRpc2FibGUtbGlibXB4IgotCV9hcmdzKz0iIGxpYmF0X2N2X2hhdmVfaWZ1bmM9bm8i Ci0JX2FyZ3MrPSIgJHtfZnB1ZmxhZ3N9IgotCi0JLi4vZ2NjLSR7X2djY192ZXJzaW9ufS9jb25m aWd1cmUgJHtfYXJnc30KLQlmaW5kIC1uYW1lIE1ha2VmaWxlIC1leGVjIHNlZCAtaSAie30iIC1l ICJzO15DRkxBR1MuKjsmIC1mUElDIC1EX19XQ0hBUl9UWVBFX189aW50OyIgXDsKLQotCW1ha2Ug JHttYWtlam9ic30KLQltYWtlIGluc3RhbGwKLQotCXRvdWNoICR7d3Jrc3JjfS8uZ2NjX2Jvb3Rz dHJhcF9kb25lCi19Ci0KLV9saW51eF9oZWFkZXJzKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lIF0gJiYgcmV0dXJuIDAKLQotCWNkICR7d3Jrc3JjfQotCW1zZ19ub3JtYWwg IkJ1aWxkaW5nIExpbnV4IEFQSSBoZWFkZXJzXG4iCi0KLQljZCBsaW51eC0ke19saW51eF92ZXJz aW9ufQotCi0JZm9yIGYgaW4gJHtYQlBTX1NSQ1BLR0RJUn0va2VybmVsLWxpYmMtaGVhZGVycy9w YXRjaGVzLyoucGF0Y2g7IGRvCi0JCV9hcHBseV9wYXRjaCAtcDAgJGYKLQlkb25lCi0KLQltYWtl IEFSQ0g9eDg2IGhlYWRlcnNfY2hlY2sKLQltYWtlIEFSQ0g9eDg2IElOU1RBTExfSERSX1BBVEg9 JHtfc3lzcm9vdH0vdXNyIGhlYWRlcnNfaW5zdGFsbAotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saW51 eF9idWlsZF9kb25lCi19Ci0KLV9tdXNsX2J1aWxkKCkgewotCVsgLWYgJHt3cmtzcmN9Ly5tdXNs X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9L211c2wtJHtfbXVzbF92 ZXJzaW9ufQotCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGNyb3NzIG11c2wgbGliY1xuIgotCi0JIyBB cHBseSBtdXNsIHBhdGNoZXMgaWYgdGhlcmUgYXJlIGFueQotCWlmIFsgLWQgIiR7WEJQU19TUkNQ S0dESVJ9L211c2wvcGF0Y2hlcyIgXTsgdGhlbgotCQlmb3IgZiBpbiAke1hCUFNfU1JDUEtHRElS fS9tdXNsL3BhdGNoZXMvKi5wYXRjaDsgZG8KLQkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgotCQlk b25lCi0JZmkKLQotCUNDPSIke190cmlwbGV0fS1nY2MiIENGTEFHUz0iLU9zIC1waXBlIC1mUElD ICR7X2FyY2hmbGFnc30iIFwKLQkJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzcgotCi0JbWFrZSAk e21ha2Vqb2JzfQotCW1ha2UgREVTVERJUj0ke19zeXNyb290fSBpbnN0YWxsCi0KLQl0b3VjaCAk e3dya3NyY30vLm11c2xfYnVpbGRfZG9uZQotfQotCi1fbGlidWNvbnRleHRfYnVpbGQoKSB7Ci0J WyAtZiAke3dya3NyY30vLmxpYnVjb250ZXh0X2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0J Y2QgJHt3cmtzcmN9L2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259Ci0JbXNnX25v cm1hbCAiQnVpbGRpbmcgY3Jvc3MgbGlidWNvbnRleHRcbiIKLQotCSMgaXQncyBvayBpZiB3ZSdy ZSBzdGF0aWMgb25seSBoZXJlCi0JQ0M9IiR7X3RyaXBsZXR9LWdjYyIgQVI9IiR7X3RyaXBsZXR9 LWFyIiBBUz0iJHtfdHJpcGxldH0tYXMiIFwKLQkJQ0ZMQUdTPSItT3MgLXBpcGUgJHtfYXJjaGZs YWdzfSIgXAotCQltYWtlIEFSQ0g9eDg2XzY0IGxpYnVjb250ZXh0LmEKLQotCWNwIGxpYnVjb250 ZXh0LmEgJHtfc3lzcm9vdH0vdXNyL2xpYgotCi0JdG91Y2ggJHt3cmtzcmN9Ly5saWJ1Y29udGV4 dF9idWlsZF9kb25lCi19Ci0KLV9nY2NfYnVpbGQoKSB7Ci0JbG9jYWwgX2FyZ3MKLQlbIC1mICR7 d3Jrc3JjfS8uZ2NjX2J1aWxkX2RvbmUgXSAmJiByZXR1cm4gMAotCi0JY2QgJHt3cmtzcmN9Ci0J bXNnX25vcm1hbCAiQnVpbGRpbmcgY3Jvc3MgZ2NjIGZpbmFsXG4iCi0KLQlbICEgLWQgZ2NjLWJ1 aWxkIF0gJiYgbWtkaXIgZ2NjLWJ1aWxkCi0JY2QgZ2NjLWJ1aWxkCi0KLQlfYXJncz0iLS1wcmVm aXg9L3VzciIKLQlfYXJncys9IiAtLWxpYmV4ZWNkaXI9L3Vzci9saWIiCi0JX2FyZ3MrPSIgLS10 YXJnZXQ9JHtfdHJpcGxldH0iCi0JX2FyZ3MrPSIgLS13aXRoLXN5c3Jvb3Q9JHtfc3lzcm9vdH0i Ci0JX2FyZ3MrPSIgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYWRhLGMrKyxvYmpjLG9iai1jKyssZ28s Zm9ydHJhbixsdG8iCi0JX2FyZ3MrPSIgLS1lbmFibGUtbGliYWRhIgotCV9hcmdzKz0iIC0tZW5h YmxlLWx0byIKLQlfYXJncys9IiAtLWVuYWJsZS1kZWZhdWx0LXBpZSIKLQlfYXJncys9IiAtLWVu YWJsZS1kZWZhdWx0LXNzcCIKLQlfYXJncys9IiAtLWVuYWJsZS1saWJzc3AiCi0JX2FyZ3MrPSIg LS1lbmFibGUtbGlicXVhZG1hdGgiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYnNhbml0aXplciIK LQlfYXJncys9IiAtLWRpc2FibGUtbXVsdGlsaWIiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLWxpYm1w eCIKLQlfYXJncys9IiAtLWRpc2FibGUtbGlibXVkZmxhcCIKLQlfYXJncys9IiAtLWVuYWJsZS1z aGFyZWQiCi0JX2FyZ3MrPSIgLS1kaXNhYmxlLXN5bXZlcnMiCi0JX2FyZ3MrPSIgbGliYXRfY3Zf aGF2ZV9pZnVuYz1ubyIKLQlfYXJncys9IiAke19mcHVmbGFnc30iCi0KLQkuLi9nY2MtJHtfZ2Nj X3ZlcnNpb259L2NvbmZpZ3VyZSAke19hcmdzfQotCWZpbmQgLW5hbWUgTWFrZWZpbGUgLWV4ZWMg c2VkIC1pICJ7fSIgLWUgInM7XkNGTEFHUy4qOyYgLWZQSUMgLURfX1dDSEFSX1RZUEVfXz1pbnQ7 IiBcOwotCi0JbWFrZSAke21ha2Vqb2JzfQotCi0JdG91Y2ggJHt3cmtzcmN9Ly5nY2NfYnVpbGRf ZG9uZQotfQotCi1kb19idWlsZCgpIHsKLQkjIEVuc3VyZSB3ZSB1c2Ugc2FuZSBlbnZpcm9ubWVu dAotCXVuc2V0IENDIENYWCBDUFAgTEQgQVMgQVIgUkFOTElCIE9CSkRVTVAgUkVBREVMRiBOTQot CXVuc2V0IENGTEFHUyBDWFhGTEFHUyBDUFBGTEFHUyBMREZMQUdTCi0JZXhwb3J0IENGTEFHUz0i LU9zIC1waXBlIC1mUElDIiBDWFhGTEFHUz0iLU9zIC1waXBlIC1mUElDIgotCi0JZm9yIGYgaW4g aW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJaWYgWyAhIC1kICR7X3N5c3Jvb3R9 L3Vzci8ke2Z9IF07IHRoZW4KLQkJCW1rZGlyIC1wICR7X3N5c3Jvb3R9L3Vzci8ke2Z9Ci0JCWZp Ci0JCWlmIFsgISAtaCAke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtfc3lz cm9vdH0vdXNyLyR7Zn0gJHtfc3lzcm9vdH0vJHtmfQotCQlmaQotCWRvbmUKLQlsbiAtc2YgbGli ICR7X3N5c3Jvb3R9L3Vzci9saWI2NAotCWxuIC1zZiB1c3IvbGliICR7X3N5c3Jvb3R9L2xpYjY0 Ci0KLQlfYmludXRpbHNfYnVpbGQKLQlfZ2NjX2Jvb3RzdHJhcAotCV9saW51eF9oZWFkZXJzCi0J X211c2xfYnVpbGQKLQlfbGlidWNvbnRleHRfYnVpbGQKLQlfZ2NjX2J1aWxkCi19Ci0KLWRvX2lu c3RhbGwoKSB7Ci0JZm9yIGYgaW4gaW5jbHVkZSBsaWIgbGliZXhlYyBiaW4gc2JpbjsgZG8KLQkJ aWYgWyAhIC1kICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyLyR7Zn0gXTsgdGhlbgotCQkJbWtk aXIgLXAgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvJHtmfQotCQlmaQotCQlpZiBbICEgLWgg JHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9IF07IHRoZW4KLQkJCWxuIC1zZnIgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvJHtmfSBcCi0JCQkJJHtERVNURElSfS8ke19zeXNyb290fS8ke2Z9 Ci0JCWZpCi0JZG9uZQotCWxuIC1zZiBsaWIgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGli NjQKLQlsbiAtc2YgdXNyL2xpYiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L2xpYjY0Ci0KLQkjIGlu c3RhbGwgbGludXggQVBJIGhlYWRlcnMgZm9yIHg4NgotCWNkICR7d3Jrc3JjfS9saW51eC0ke19s aW51eF92ZXJzaW9ufQotCW1ha2UgQVJDSD14ODYgSU5TVEFMTF9IRFJfUEFUSD0ke0RFU1RESVJ9 LyR7X3N5c3Jvb3R9L3VzciBoZWFkZXJzX2luc3RhbGwKLQlybSAtZiAkKGZpbmQgJHtERVNURElS fS8ke19zeXNyb290fS91c3IvaW5jbHVkZSAtbmFtZSAuaW5zdGFsbCAtb3IgLW5hbWUgLi5pbnN0 YWxsLmNtZCkKLQlybSAtcmYgJHtERVNURElSfS8ke19zeXNyb290fS91c3IvaW5jbHVkZS9kcm0K LQotCSMgaW5zdGFsbCBjcm9zcyBiaW51dGlscwotCWNkICR7d3Jrc3JjfS9iaW51dGlscy1idWls ZAotCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKLQotCSMgaW5zdGFsbCBjcm9zcyBn Y2MKLQljZCAke3dya3NyY30vZ2NjLWJ1aWxkCi0JbWFrZSBERVNURElSPSR7REVTVERJUn0gaW5z dGFsbAotCi0JIyBtb3ZlIGxpYmNjMS5zbyogdG8gdGhlIHN5c3Jvb3QKLQltdiAke0RFU1RESVJ9 L3Vzci9saWIvbGliY2MxLnNvKiAke0RFU1RESVJ9LyR7X3N5c3Jvb3R9L3Vzci9saWIKLQotCSMg aW5zdGFsbCBtdXNsIGxpYmMgZm9yIHRhcmdldAotCWNkICR7d3Jrc3JjfS9tdXNsLSR7X211c2xf dmVyc2lvbn0KLQltYWtlIERFU1RESVI9JHtERVNURElSfS8ke19zeXNyb290fSBpbnN0YWxsCi0K LQkjIFJlbW92ZSB1c2VsZXNzIGhlYWRlcnMuCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9n Y2MvJHtfdHJpcGxldH0vKi9pbmNsdWRlLWZpeGVkLwotCi0JIyBNYWtlIGxkLW11c2wteDg2XzY0 LnNvLjEgc3ltbGluayByZWxhdGl2ZSB0byBjd2QuCi0JY2QgJHtERVNURElSfS8ke19zeXNyb290 fS91c3IvbGliCi0JbG4gLXNmIGxpYmMuc28gbGQtbXVzbC14ODZfNjQuc28uMQotCi0JIyBzeW1s aW5rcyBmb3IgZ25hcmwgYW5kIGduYXQgc2hhcmVkIGxpYnJhcmllcwotCV9tYWpvcnZlcj0ke19n Y2NfdmVyc2lvbiUuKi4qfQotCV9hZGFsaWI9dXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfZ2Nj X3ZlcnNpb259L2FkYWxpYgotCW12IC12ICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmFybC0k e19tYWpvcnZlcn0uc28gJHtERVNURElSfS8ke19zeXNyb290fS91c3IvbGliCi0JbXYgLXYgJHtE RVNURElSfS8ke19hZGFsaWJ9L2xpYmduYXQtJHtfbWFqb3J2ZXJ9LnNvICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL2xpYgotCWxuIC1zdmYgbGliZ25hcmwtJHtfbWFqb3J2ZXJ9LnNvIGxpYmdu YXJsLnNvCi0JbG4gLXN2ZiBsaWJnbmF0LSR7X21ham9ydmVyfS5zbyBsaWJnbmF0LnNvCi0Jcm0g LXZmICR7REVTVERJUn0vJHtfYWRhbGlifS9saWJnbmF7cmwsdH0uc28KLQotCSMgV2UgbmVlZCB0 byBidWlsZCBsaWJhdG9taWMgaW4gdGFyZ2V0IGdjYyBhcyBnY2NnbyBuZWVkcyBpdCB0bwotCSMg YnVpbGQuLi4gYnV0IGl0J3Mgbm90IG5lZWRlZCBhdCBydW50aW1lLCBzbyByZW1vdmUgaXQgZnJv bSB0aGUKLQkjIGRlc3RkaXIgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIHRoZSBsaWJhdG9t aWMgcGFja2FnZQotCXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0vdXNyL2xpYi9saWJhdG9t aWMuKgotCi0JIyBSZW1vdmUgdW5uZWNlc3Nhcnkgc3R1ZmYKLQlybSAtZiAke0RFU1RESVJ9L3Vz ci9saWIqL2xpYmliZXJ0eS5hCi0Jcm0gLXJmICR7REVTVERJUn0vdXNyL3NoYXJlCi0Jcm0gLXJm ICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve2V0Yyx2YXJ9Ci0Jcm0gLXJmICR7REVTVERJUn0vJHtf c3lzcm9vdH0vdXNyL3tzYmluLHNoYXJlLGxpYmV4ZWN9Ci0Jcm0gLWYgJHtERVNURElSfS8ke19z eXNyb290fS9saWJleGVjCi0Jcm0gLWYgJHtERVNURElSfS8ke19zeXNyb290fS9saWIvKi5weQot CXJtIC1mICR7REVTVERJUn0vJHtfc3lzcm9vdH0ve3NiaW4sbGlifQotfQotCiBjcm9zcy14ODZf NjQtbGludXgtbXVzbC1saWJjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYmMgZmls ZXMiCiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBzPXllcwogCW5vc2hsaWJwcm92aWRlcz15 ZXMKKwogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAke19zeXNyb290fQorCQl2bW92ZSB1c3Iv JHtjcm9zc190cmlwbGV0fQogCX0KIH0K --===============6883898108392890947==--